From 86da3bcc03d9cd33945afbfc35e3181d3b53fa69 Mon Sep 17 00:00:00 2001 From: MarcelineVQ Date: Wed, 18 Mar 2026 01:12:04 -0700 Subject: [PATCH] dpslog: DPSMate CLEU adapter with per-combat A/B profiling Adds DPSMate_CLEUAdapter.lua -- replaces DPSMate's string-parsing CHAT_MSG_* system with structured COMBAT_LOG_EVENT data from our DLL. Adapter maps CLEU subevents directly to DPSMate.DB API calls: DamageDone, DamageTaken, EnemyDamage, Healing, HealingTaken, DeathHistory, Kick, Dispels, BuildBuffs, CCBreaker, etc. Eliminates all strfind pattern matching from the combat log path. Toggle: /dpscleu (on/off/status) Benchmark: /dpsbench -- always-on per-combat A/B profiling. Resets at combat start, reports at combat end, flips mode for next combat. Reports events, total ms, us/event, GC delta, and percentage comparison between CLEU and original modes. Starts in CLEU mode by default. --- src/dpslog/WeirdDPSMate/Bindings.xml | 5 + src/dpslog/WeirdDPSMate/DPSMate.lua | 970 ++ src/dpslog/WeirdDPSMate/DPSMate.toc | 259 + .../WeirdDPSMate/DPSMate_CLEUAdapter.lua | 588 ++ .../WeirdDPSMate/DPSMate_CombatPatterns.lua | 367 + .../WeirdDPSMate/DPSMate_DataBuilder.lua | 2631 +++++ src/dpslog/WeirdDPSMate/DPSMate_Frame.xml | 420 + src/dpslog/WeirdDPSMate/DPSMate_Options.lua | 2212 ++++ src/dpslog/WeirdDPSMate/DPSMate_Options.xml | 6071 +++++++++++ src/dpslog/WeirdDPSMate/DPSMate_Parser.lua | 819 ++ src/dpslog/WeirdDPSMate/DPSMate_Sync.lua | 1626 +++ .../WeirdDPSMate/Damage/DPSMate_DPS.lua | 301 + .../WeirdDPSMate/Damage/DPSMate_Damage.lua | 298 + .../Damage/DPSMate_Details_Damage.lua | 1199 +++ .../Damage/DPSMate_Details_Damage.xml | 1812 ++++ .../Damage/DPSMate_Details_DamageTotal.lua | 494 + .../Damage/DPSMate_Details_DamageTotal.xml | 761 ++ src/dpslog/WeirdDPSMate/LICENSE | 674 ++ src/dpslog/WeirdDPSMate/README.md | 97 + .../WeirdDPSMate/enUS/Babble-Boss-2.3.lua | 474 + .../WeirdDPSMate/enUS/Babble-Spell-2.3.lua | 2076 ++++ .../WeirdDPSMate/enUS/DPSMate_ParserENUS.lua | 2623 +++++ src/dpslog/WeirdDPSMate/enUS/NPCDB-1.0.lua | 3329 ++++++ src/dpslog/WeirdDPSMate/enUS/enUS.lua | 536 + .../fonts/Accidental Presidency.ttf | Bin 0 -> 41556 bytes src/dpslog/WeirdDPSMate/fonts/AlteHaas.ttf | Bin 0 -> 143896 bytes .../WeirdDPSMate/fonts/CaviarDreams.ttf | Bin 0 -> 59284 bytes src/dpslog/WeirdDPSMate/fonts/Enigma__2.ttf | Bin 0 -> 17992 bytes src/dpslog/WeirdDPSMate/fonts/Expressway.ttf | Bin 0 -> 156244 bytes .../WeirdDPSMate/fonts/ExpresswayBold.ttf | Bin 0 -> 99820 bytes src/dpslog/WeirdDPSMate/fonts/Mandarin1.ttf | Bin 0 -> 8644640 bytes src/dpslog/WeirdDPSMate/fonts/Mandarin2.ttf | Bin 0 -> 6580908 bytes src/dpslog/WeirdDPSMate/fonts/Roboto.ttf | Bin 0 -> 162636 bytes .../WeirdDPSMate/fonts/The Bad Times.ttf | Bin 0 -> 46060 bytes src/dpslog/WeirdDPSMate/fonts/Vegur.otf | Bin 0 -> 15300 bytes src/dpslog/WeirdDPSMate/fonts/VeraSe.ttf | Bin 0 -> 60280 bytes src/dpslog/WeirdDPSMate/fonts/visitor2.ttf | Bin 0 -> 37388 bytes .../WeirdDPSMate/images/ResizeGripRight.tga | Bin 0 -> 2085 bytes .../images/ResizeGripRightTop.tga | Bin 0 -> 320 bytes .../images/UI-ChatIM-SizeGrabber-Down.tga | Bin 0 -> 824 bytes .../UI-ChatIM-SizeGrabber-Highlight.tga | Bin 0 -> 862 bytes .../images/UI-ChatIM-SizeGrabber-Up.tga | Bin 0 -> 795 bytes .../images/UI-GuildButton-MOTD-Up.tga | Bin 0 -> 408 bytes .../images/UI-GuildButton-PublicNote-Up.tga | Bin 0 -> 538 bytes .../images/UI-Listbox-Highlight2.tga | Bin 0 -> 3477 bytes .../images/UI-Panel-CollapseButton-Down.tga | Bin 0 -> 906 bytes .../images/UI-Panel-CollapseButton-Up.tga | Bin 0 -> 1055 bytes .../images/UI-Panel-ExpandButton-Down.tga | Bin 0 -> 895 bytes .../images/UI-Panel-ExpandButton-Up.tga | Bin 0 -> 1025 bytes src/dpslog/WeirdDPSMate/images/class/None.tga | Bin 0 -> 16428 bytes .../WeirdDPSMate/images/class/druid.tga | Bin 0 -> 11857 bytes .../WeirdDPSMate/images/class/hunter.tga | Bin 0 -> 8397 bytes src/dpslog/WeirdDPSMate/images/class/mage.tga | Bin 0 -> 11855 bytes .../WeirdDPSMate/images/class/paladin.tga | Bin 0 -> 11413 bytes .../WeirdDPSMate/images/class/priest.tga | Bin 0 -> 9091 bytes .../WeirdDPSMate/images/class/rogue.tga | Bin 0 -> 10399 bytes .../WeirdDPSMate/images/class/shaman.tga | Bin 0 -> 11401 bytes .../WeirdDPSMate/images/class/warlock.tga | Bin 0 -> 11210 bytes .../WeirdDPSMate/images/class/warrior.tga | Bin 0 -> 11747 bytes src/dpslog/WeirdDPSMate/images/dummy.tga | Bin 0 -> 16428 bytes .../WeirdDPSMate/images/icon-config.tga | Bin 0 -> 4140 bytes src/dpslog/WeirdDPSMate/images/icon-reset.tga | Bin 0 -> 1068 bytes src/dpslog/WeirdDPSMate/images/npc.tga | Bin 0 -> 4140 bytes .../images/statusbar/Aluminium.tga | Bin 0 -> 32812 bytes .../WeirdDPSMate/images/statusbar/Armory.tga | Bin 0 -> 812 bytes .../images/statusbar/BantoBar.tga | Bin 0 -> 32812 bytes .../WeirdDPSMate/images/statusbar/Glaze2.tga | Bin 0 -> 32812 bytes .../WeirdDPSMate/images/statusbar/Gloss.tga | Bin 0 -> 32812 bytes .../images/statusbar/Graphite.tga | Bin 0 -> 65580 bytes .../WeirdDPSMate/images/statusbar/Grid.tga | Bin 0 -> 24594 bytes .../WeirdDPSMate/images/statusbar/Healbot.tga | Bin 0 -> 24594 bytes .../images/statusbar/LiteStep.tga | Bin 0 -> 32812 bytes .../images/statusbar/Minimalist.tga | Bin 0 -> 1304 bytes .../WeirdDPSMate/images/statusbar/Otravi.tga | Bin 0 -> 32812 bytes .../WeirdDPSMate/images/statusbar/Outline.tga | Bin 0 -> 664 bytes .../WeirdDPSMate/images/statusbar/Perl.tga | Bin 0 -> 2037 bytes .../WeirdDPSMate/images/statusbar/Round.tga | Bin 0 -> 4980 bytes .../WeirdDPSMate/images/statusbar/Smooth.tga | Bin 0 -> 32812 bytes .../WeirdDPSMate/images/statusbar/normTex.tga | Bin 0 -> 14690 bytes src/dpslog/WeirdDPSMate/images/sync.tga | Bin 0 -> 1068 bytes .../libs/AceLibrary/AceLibrary.lua | 841 ++ .../WeirdDPSMate/libs/ChatThrottleLib.lua | 465 + .../libs/Dewdrop-2.0/Dewdrop-2.0.lua | 2432 +++++ .../libs/GraphLib/Graph-1.0/Graph-1.0.lua | 2552 +++++ .../WeirdDPSMate/libs/GraphLib/GraphLib.toc | 14 + .../libs/GraphLib/GraphTextures/Pie/1-1.tga | Bin 0 -> 21663 bytes .../libs/GraphLib/GraphTextures/Pie/1-128.tga | Bin 0 -> 13781 bytes .../libs/GraphLib/GraphTextures/Pie/1-16.tga | Bin 0 -> 14332 bytes .../libs/GraphLib/GraphTextures/Pie/1-2.tga | Bin 0 -> 18611 bytes .../libs/GraphLib/GraphTextures/Pie/1-32.tga | Bin 0 -> 13995 bytes .../libs/GraphLib/GraphTextures/Pie/1-4.tga | Bin 0 -> 14824 bytes .../libs/GraphLib/GraphTextures/Pie/1-64.tga | Bin 0 -> 13859 bytes .../libs/GraphLib/GraphTextures/Pie/1-8.tga | Bin 0 -> 14863 bytes .../libs/GraphLib/GraphTextures/line.tga | Bin 0 -> 764 bytes .../libs/GraphLib/GraphTextures/party.tga | Bin 0 -> 4140 bytes .../libs/GraphLib/GraphTextures/sline.tga | Bin 0 -> 684 bytes .../libs/GraphLib/GraphTextures/triangle.tga | Bin 0 -> 6152 bytes .../locales/Babble-Boss-2.3_deDE.lua | 446 + .../locales/Babble-Boss-2.3_frFR.lua | 442 + .../locales/Babble-Boss-2.3_koKR.lua | 631 ++ .../locales/Babble-Boss-2.3_ruRU.lua | 364 + .../locales/Babble-Boss-2.3_zhCN.lua | 445 + .../locales/Babble-Spell-2.3_deDE.lua | 2993 ++++++ .../locales/Babble-Spell-2.3_frFR.lua | 2898 ++++++ .../locales/Babble-Spell-2.3_koKR.lua | 2101 ++++ .../locales/Babble-Spell-2.3_ruRU.lua | 3010 ++++++ .../locales/Babble-Spell-2.3_zhCN.lua | 2900 ++++++ .../locales/DPSMate_ParserDEDE.lua | 1101 ++ .../locales/DPSMate_ParserFRFR.lua | 1234 +++ .../locales/DPSMate_ParserKRKR.lua | 1091 ++ .../locales/DPSMate_ParserRURU.lua | 985 ++ .../locales/DPSMate_ParserZHCN.lua | 1144 +++ .../WeirdDPSMate/locales/NPCDB-1.0_deDE.lua | 6649 ++++++++++++ .../WeirdDPSMate/locales/NPCDB-1.0_frFR.lua | 6649 ++++++++++++ .../WeirdDPSMate/locales/NPCDB-1.0_koKR.lua | 6650 ++++++++++++ .../WeirdDPSMate/locales/NPCDB-1.0_ruRU.lua | 8965 +++++++++++++++++ .../WeirdDPSMate/locales/NPCDB-1.0_zhCN.lua | 6649 ++++++++++++ src/dpslog/WeirdDPSMate/locales/deDE.lua | 909 ++ src/dpslog/WeirdDPSMate/locales/frFR.lua | 911 ++ src/dpslog/WeirdDPSMate/locales/koKR.lua | 905 ++ src/dpslog/WeirdDPSMate/locales/ruRU.lua | 911 ++ src/dpslog/WeirdDPSMate/locales/zhCN.lua | 907 ++ .../WeirdDPSMate/modules/DPSMate_Absorbs.lua | 349 + .../modules/DPSMate_AbsorbsTaken.lua | 348 + .../WeirdDPSMate/modules/DPSMate_Activity.lua | 90 + .../modules/DPSMate_AuraUptimers.lua | 143 + .../modules/DPSMate_AurasGained.lua | 145 + .../modules/DPSMate_AurasLost.lua | 144 + .../modules/DPSMate_CCBreaker.lua | 151 + .../WeirdDPSMate/modules/DPSMate_Casts.lua | 158 + .../modules/DPSMate_CureDisease.lua | 229 + .../modules/DPSMate_CureDiseaseReceived.lua | 206 + .../modules/DPSMate_CurePoison.lua | 227 + .../modules/DPSMate_CurePoisonReceived.lua | 206 + .../WeirdDPSMate/modules/DPSMate_DTPS.lua | 191 + .../modules/DPSMate_DamageTaken.lua | 190 + .../WeirdDPSMate/modules/DPSMate_Deaths.lua | 178 + .../WeirdDPSMate/modules/DPSMate_Debug.lua | 117 + .../WeirdDPSMate/modules/DPSMate_Decurses.lua | 228 + .../modules/DPSMate_DecursesReceived.lua | 209 + .../modules/DPSMate_Details_Absorbs.lua | 676 ++ .../modules/DPSMate_Details_Absorbs.xml | 1136 +++ .../modules/DPSMate_Details_AbsorbsTaken.lua | 688 ++ .../modules/DPSMate_Details_AbsorbsTaken.xml | 1135 +++ .../DPSMate_Details_AbsorbsTakenTotal.lua | 596 ++ .../DPSMate_Details_AbsorbsTakenTotal.xml | 797 ++ .../modules/DPSMate_Details_AbsorbsTotal.lua | 593 ++ .../modules/DPSMate_Details_AbsorbsTotal.xml | 797 ++ .../modules/DPSMate_Details_Auras.lua | 522 + .../modules/DPSMate_Details_Auras.xml | 429 + .../modules/DPSMate_Details_AurasTotal.lua | 493 + .../modules/DPSMate_Details_AurasTotal.xml | 285 + .../modules/DPSMate_Details_CCBreaker.lua | 112 + .../modules/DPSMate_Details_CCBreaker.xml | 320 + .../DPSMate_Details_CCBreakerTotal.lua | 117 + .../DPSMate_Details_CCBreakerTotal.xml | 255 + .../modules/DPSMate_Details_Casts.lua | 104 + .../modules/DPSMate_Details_Casts.xml | 282 + .../modules/DPSMate_Details_CastsTotal.lua | 100 + .../modules/DPSMate_Details_CastsTotal.xml | 198 + .../modules/DPSMate_Details_CureDisease.lua | 233 + .../modules/DPSMate_Details_CureDisease.xml | 989 ++ .../DPSMate_Details_CureDiseaseReceived.lua | 250 + .../DPSMate_Details_CureDiseaseReceived.xml | 989 ++ .../DPSMate_Details_CureDiseaseTotal.lua | 136 + .../DPSMate_Details_CureDiseaseTotal.xml | 277 + .../modules/DPSMate_Details_CurePoison.lua | 232 + .../modules/DPSMate_Details_CurePoison.xml | 989 ++ .../DPSMate_Details_CurePoisonReceived.lua | 250 + .../DPSMate_Details_CurePoisonReceived.xml | 989 ++ .../DPSMate_Details_CurePoisonTotal.lua | 136 + .../DPSMate_Details_CurePoisonTotal.xml | 274 + .../modules/DPSMate_Details_DamageTaken.lua | 810 ++ .../modules/DPSMate_Details_DamageTaken.xml | 1512 +++ .../DPSMate_Details_DamageTakenTotal.lua | 477 + .../DPSMate_Details_DamageTakenTotal.xml | 778 ++ .../modules/DPSMate_Details_Deaths.lua | 161 + .../modules/DPSMate_Details_Deaths.xml | 918 ++ .../modules/DPSMate_Details_DeathsTotal.lua | 188 + .../modules/DPSMate_Details_DeathsTotal.xml | 331 + .../modules/DPSMate_Details_Decurses.lua | 232 + .../modules/DPSMate_Details_Decurses.xml | 989 ++ .../DPSMate_Details_DecursesReceived.lua | 248 + .../DPSMate_Details_DecursesReceived.xml | 989 ++ .../modules/DPSMate_Details_DecursesTotal.lua | 136 + .../modules/DPSMate_Details_DecursesTotal.xml | 277 + .../modules/DPSMate_Details_Dispels.lua | 228 + .../modules/DPSMate_Details_Dispels.xml | 989 ++ .../DPSMate_Details_DispelsReceived.lua | 248 + .../DPSMate_Details_DispelsReceived.xml | 989 ++ .../modules/DPSMate_Details_DispelsTotal.lua | 132 + .../modules/DPSMate_Details_DispelsTotal.xml | 277 + .../modules/DPSMate_Details_EDD.lua | 655 ++ .../modules/DPSMate_Details_EDD.xml | 1454 +++ .../modules/DPSMate_Details_EDDTotal.lua | 468 + .../modules/DPSMate_Details_EDDTotal.xml | 778 ++ .../modules/DPSMate_Details_EDT.lua | 655 ++ .../modules/DPSMate_Details_EDT.xml | 1455 +++ .../modules/DPSMate_Details_EDTTotal.lua | 468 + .../modules/DPSMate_Details_EDTTotal.xml | 778 ++ .../modules/DPSMate_Details_EHealing.lua | 939 ++ .../modules/DPSMate_Details_EHealing.xml | 1372 +++ .../modules/DPSMate_Details_EHealingTaken.lua | 599 ++ .../modules/DPSMate_Details_EHealingTaken.xml | 1035 ++ .../DPSMate_Details_EHealingTakenTotal.lua | 488 + .../DPSMate_Details_EHealingTakenTotal.xml | 761 ++ .../modules/DPSMate_Details_EHealingTotal.lua | 466 + .../modules/DPSMate_Details_EHealingTotal.xml | 761 ++ .../modules/DPSMate_Details_Fails.lua | 121 + .../modules/DPSMate_Details_Fails.xml | 321 + .../modules/DPSMate_Details_FailsTotal.lua | 144 + .../modules/DPSMate_Details_FailsTotal.xml | 234 + .../modules/DPSMate_Details_FriendlyFire.lua | 641 ++ .../modules/DPSMate_Details_FriendlyFire.xml | 1315 +++ .../DPSMate_Details_FriendlyFireTaken.lua | 638 ++ .../DPSMate_Details_FriendlyFireTaken.xml | 1315 +++ ...DPSMate_Details_FriendlyFireTakenTotal.lua | 511 + ...DPSMate_Details_FriendlyFireTakenTotal.xml | 761 ++ .../DPSMate_Details_FriendlyFireTotal.lua | 509 + .../DPSMate_Details_FriendlyFireTotal.xml | 761 ++ .../modules/DPSMate_Details_Healing.lua | 952 ++ .../modules/DPSMate_Details_Healing.xml | 1372 +++ .../DPSMate_Details_HealingAndAbsorbs.lua | 1297 +++ .../DPSMate_Details_HealingAndAbsorbs.xml | 1372 +++ ...DPSMate_Details_HealingAndAbsorbsTotal.lua | 680 ++ ...DPSMate_Details_HealingAndAbsorbsTotal.xml | 761 ++ .../modules/DPSMate_Details_HealingTaken.lua | 599 ++ .../modules/DPSMate_Details_HealingTaken.xml | 1035 ++ .../DPSMate_Details_HealingTakenTotal.lua | 487 + .../DPSMate_Details_HealingTakenTotal.xml | 761 ++ .../modules/DPSMate_Details_HealingTotal.lua | 465 + .../modules/DPSMate_Details_HealingTotal.xml | 761 ++ .../modules/DPSMate_Details_Interrupts.lua | 241 + .../modules/DPSMate_Details_Interrupts.xml | 990 ++ .../DPSMate_Details_InterruptsTotal.lua | 128 + .../DPSMate_Details_InterruptsTotal.xml | 277 + .../modules/DPSMate_Details_LiftMagic.lua | 232 + .../modules/DPSMate_Details_LiftMagic.xml | 989 ++ .../DPSMate_Details_LiftMagicReceived.lua | 250 + .../DPSMate_Details_LiftMagicReceived.xml | 989 ++ .../DPSMate_Details_LiftMagicTotal.lua | 136 + .../DPSMate_Details_LiftMagicTotal.xml | 278 + .../modules/DPSMate_Details_OHealingTaken.lua | 599 ++ .../modules/DPSMate_Details_OHealingTaken.xml | 1035 ++ .../modules/DPSMate_Details_Overhealing.lua | 939 ++ .../modules/DPSMate_Details_Overhealing.xml | 1372 +++ .../DPSMate_Details_OverhealingTakenTotal.lua | 487 + .../DPSMate_Details_OverhealingTakenTotal.xml | 761 ++ .../DPSMate_Details_OverhealingTotal.lua | 466 + .../DPSMate_Details_OverhealingTotal.xml | 761 ++ .../modules/DPSMate_Details_Procs.lua | 354 + .../modules/DPSMate_Details_Procs.xml | 301 + .../modules/DPSMate_Details_ProcsTotal.lua | 331 + .../modules/DPSMate_Details_ProcsTotal.xml | 215 + .../modules/DPSMate_Details_Threat.lua | 749 ++ .../modules/DPSMate_Details_Threat.xml | 1055 ++ .../modules/DPSMate_Details_ThreatTotal.lua | 479 + .../modules/DPSMate_Details_ThreatTotal.xml | 761 ++ .../WeirdDPSMate/modules/DPSMate_Dispels.lua | 202 + .../modules/DPSMate_DispelsReceived.lua | 195 + .../WeirdDPSMate/modules/DPSMate_EDD.lua | 199 + .../WeirdDPSMate/modules/DPSMate_EDT.lua | 203 + .../modules/DPSMate_EffectiveHPS.lua | 150 + .../modules/DPSMate_EffectiveHealing.lua | 159 + .../modules/DPSMate_EffectiveHealingTaken.lua | 187 + .../WeirdDPSMate/modules/DPSMate_Fails.lua | 160 + .../modules/DPSMate_FriendlyFire.lua | 215 + .../modules/DPSMate_FriendlyFireTaken.lua | 189 + .../WeirdDPSMate/modules/DPSMate_HPS.lua | 150 + .../WeirdDPSMate/modules/DPSMate_Healing.lua | 159 + .../modules/DPSMate_HealingAndAbsorbs.lua | 359 + .../modules/DPSMate_HealingTaken.lua | 187 + .../modules/DPSMate_Interrupts.lua | 298 + .../modules/DPSMate_LiftMagic.lua | 228 + .../modules/DPSMate_LiftMagicReceived.lua | 207 + .../WeirdDPSMate/modules/DPSMate_OHPS.lua | 150 + .../modules/DPSMate_OHealingTaken.lua | 187 + .../modules/DPSMate_Overhealing.lua | 159 + .../WeirdDPSMate/modules/DPSMate_Procs.lua | 177 + .../WeirdDPSMate/modules/DPSMate_TPS.lua | 173 + .../WeirdDPSMate/modules/DPSMate_Threat.lua | 171 + 281 files changed, 179217 insertions(+) create mode 100644 src/dpslog/WeirdDPSMate/Bindings.xml create mode 100644 src/dpslog/WeirdDPSMate/DPSMate.lua create mode 100644 src/dpslog/WeirdDPSMate/DPSMate.toc create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_CLEUAdapter.lua create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_CombatPatterns.lua create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_DataBuilder.lua create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_Frame.xml create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_Options.lua create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_Options.xml create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_Parser.lua create mode 100644 src/dpslog/WeirdDPSMate/DPSMate_Sync.lua create mode 100644 src/dpslog/WeirdDPSMate/Damage/DPSMate_DPS.lua create mode 100644 src/dpslog/WeirdDPSMate/Damage/DPSMate_Damage.lua create mode 100644 src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.lua create mode 100644 src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.xml create mode 100644 src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/LICENSE create mode 100644 src/dpslog/WeirdDPSMate/README.md create mode 100644 src/dpslog/WeirdDPSMate/enUS/Babble-Boss-2.3.lua create mode 100644 src/dpslog/WeirdDPSMate/enUS/Babble-Spell-2.3.lua create mode 100644 src/dpslog/WeirdDPSMate/enUS/DPSMate_ParserENUS.lua create mode 100644 src/dpslog/WeirdDPSMate/enUS/NPCDB-1.0.lua create mode 100644 src/dpslog/WeirdDPSMate/enUS/enUS.lua create mode 100644 src/dpslog/WeirdDPSMate/fonts/Accidental Presidency.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/AlteHaas.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/CaviarDreams.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/Enigma__2.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/Expressway.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/ExpresswayBold.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/Mandarin1.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/Mandarin2.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/Roboto.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/The Bad Times.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/Vegur.otf create mode 100644 src/dpslog/WeirdDPSMate/fonts/VeraSe.ttf create mode 100644 src/dpslog/WeirdDPSMate/fonts/visitor2.ttf create mode 100644 src/dpslog/WeirdDPSMate/images/ResizeGripRight.tga create mode 100644 src/dpslog/WeirdDPSMate/images/ResizeGripRightTop.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-ChatIM-SizeGrabber-Down.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-ChatIM-SizeGrabber-Highlight.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-ChatIM-SizeGrabber-Up.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-GuildButton-MOTD-Up.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-GuildButton-PublicNote-Up.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-Listbox-Highlight2.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-Panel-CollapseButton-Down.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-Panel-CollapseButton-Up.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-Panel-ExpandButton-Down.tga create mode 100644 src/dpslog/WeirdDPSMate/images/UI-Panel-ExpandButton-Up.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/None.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/druid.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/hunter.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/mage.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/paladin.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/priest.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/rogue.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/shaman.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/warlock.tga create mode 100644 src/dpslog/WeirdDPSMate/images/class/warrior.tga create mode 100644 src/dpslog/WeirdDPSMate/images/dummy.tga create mode 100644 src/dpslog/WeirdDPSMate/images/icon-config.tga create mode 100644 src/dpslog/WeirdDPSMate/images/icon-reset.tga create mode 100644 src/dpslog/WeirdDPSMate/images/npc.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Aluminium.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Armory.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/BantoBar.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Glaze2.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Gloss.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Graphite.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Grid.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Healbot.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/LiteStep.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Minimalist.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Otravi.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Outline.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Perl.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Round.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/Smooth.tga create mode 100644 src/dpslog/WeirdDPSMate/images/statusbar/normTex.tga create mode 100644 src/dpslog/WeirdDPSMate/images/sync.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/AceLibrary/AceLibrary.lua create mode 100644 src/dpslog/WeirdDPSMate/libs/ChatThrottleLib.lua create mode 100644 src/dpslog/WeirdDPSMate/libs/Dewdrop-2.0/Dewdrop-2.0.lua create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/Graph-1.0/Graph-1.0.lua create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphLib.toc create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-1.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-128.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-16.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-2.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-32.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-4.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-64.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/Pie/1-8.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/line.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/party.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/sline.tga create mode 100644 src/dpslog/WeirdDPSMate/libs/GraphLib/GraphTextures/triangle.tga create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Boss-2.3_deDE.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Boss-2.3_frFR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Boss-2.3_koKR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Boss-2.3_ruRU.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Boss-2.3_zhCN.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Spell-2.3_deDE.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Spell-2.3_frFR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Spell-2.3_koKR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Spell-2.3_ruRU.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/Babble-Spell-2.3_zhCN.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/DPSMate_ParserDEDE.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/DPSMate_ParserFRFR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/DPSMate_ParserKRKR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/DPSMate_ParserRURU.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/DPSMate_ParserZHCN.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/NPCDB-1.0_deDE.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/NPCDB-1.0_frFR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/NPCDB-1.0_koKR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/NPCDB-1.0_ruRU.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/NPCDB-1.0_zhCN.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/deDE.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/frFR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/koKR.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/ruRU.lua create mode 100644 src/dpslog/WeirdDPSMate/locales/zhCN.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Absorbs.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_AbsorbsTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Activity.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_AuraUptimers.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_AurasGained.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_AurasLost.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_CCBreaker.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Casts.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_CureDisease.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_CureDiseaseReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_CurePoison.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_CurePoisonReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_DTPS.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_DamageTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Deaths.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Debug.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Decurses.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_DecursesReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Absorbs.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Absorbs.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AbsorbsTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AbsorbsTaken.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AbsorbsTakenTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AbsorbsTakenTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AbsorbsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AbsorbsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Auras.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Auras.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AurasTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_AurasTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CCBreaker.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CCBreaker.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CCBreakerTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CCBreakerTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Casts.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Casts.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CastsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CastsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CureDisease.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CureDisease.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CureDiseaseReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CureDiseaseReceived.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CureDiseaseTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CureDiseaseTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CurePoison.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CurePoison.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CurePoisonReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CurePoisonReceived.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CurePoisonTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_CurePoisonTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DamageTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DamageTaken.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DamageTakenTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DamageTakenTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Deaths.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Deaths.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DeathsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DeathsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Decurses.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Decurses.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DecursesReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DecursesReceived.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DecursesTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DecursesTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Dispels.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Dispels.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DispelsReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DispelsReceived.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DispelsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_DispelsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDD.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDD.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDDTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDDTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDT.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDT.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDTTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EDTTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealing.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealing.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealingTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealingTaken.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealingTakenTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealingTakenTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealingTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_EHealingTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Fails.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Fails.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FailsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FailsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFire.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFire.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFireTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFireTaken.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFireTakenTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFireTakenTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFireTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_FriendlyFireTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Healing.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Healing.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingAndAbsorbs.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingAndAbsorbs.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingAndAbsorbsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingAndAbsorbsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingTaken.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingTakenTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingTakenTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_HealingTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Interrupts.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Interrupts.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_InterruptsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_InterruptsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_LiftMagic.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_LiftMagic.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_LiftMagicReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_LiftMagicReceived.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_LiftMagicTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_LiftMagicTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_OHealingTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_OHealingTaken.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Overhealing.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Overhealing.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_OverhealingTakenTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_OverhealingTakenTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_OverhealingTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_OverhealingTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Procs.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Procs.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_ProcsTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_ProcsTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Threat.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_Threat.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_ThreatTotal.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Details_ThreatTotal.xml create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Dispels.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_DispelsReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_EDD.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_EDT.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_EffectiveHPS.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_EffectiveHealing.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_EffectiveHealingTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Fails.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_FriendlyFire.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_FriendlyFireTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_HPS.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Healing.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_HealingAndAbsorbs.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_HealingTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Interrupts.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_LiftMagic.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_LiftMagicReceived.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_OHPS.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_OHealingTaken.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Overhealing.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Procs.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_TPS.lua create mode 100644 src/dpslog/WeirdDPSMate/modules/DPSMate_Threat.lua diff --git a/src/dpslog/WeirdDPSMate/Bindings.xml b/src/dpslog/WeirdDPSMate/Bindings.xml new file mode 100644 index 0000000..691d5f7 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/Bindings.xml @@ -0,0 +1,5 @@ + + DPSMate_PopUp:Show() + DPSMate.Options:ToggleVisibility() + if not DPSMate_Report:IsVisible() then DPSMate_Report:Show() else DPSMate_Report:Hide() end + diff --git a/src/dpslog/WeirdDPSMate/DPSMate.lua b/src/dpslog/WeirdDPSMate/DPSMate.lua new file mode 100644 index 0000000..5d98a36 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate.lua @@ -0,0 +1,970 @@ +-- Global Variables +DPSMate = {} +DPSMate.VERSION = 130 +DPSMate.LOCALE = GetLocale() +DPSMate.SYNCVERSION = DPSMate.VERSION..DPSMate.LOCALE +DPSMate.Parser = CreateFrame("Frame", nil, UIParent) +DPSMate.L = {} +DPSMate.DB = CreateFrame("Frame", nil, UIParent) +DPSMate.Options = CreateFrame("Frame", nil, UIParent) +DPSMate.Sync = CreateFrame("Frame", nil, UIParent) +DPSMate.Modules = {} +DPSMate.Events = { + --"CHAT_MSG_ADDON", + "PLAYER_AURAS_CHANGED", + + -- Damage + "CHAT_MSG_COMBAT_SELF_HITS", + "CHAT_MSG_COMBAT_SELF_MISSES", + "CHAT_MSG_SPELL_SELF_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_HITS", + "CHAT_MSG_SPELL_PARTY_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_MISSES", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES", + "CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE", + -- Pet Damage + "CHAT_MSG_COMBAT_PET_HITS", + "CHAT_MSG_COMBAT_PET_MISSES", + --"CHAT_MSG_SPELL_PET_BUFF", + "CHAT_MSG_SPELL_PET_DAMAGE", + + -- EDD (Enemy player) / DeathHistory + "CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS", + "CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES", + "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE", + "CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE", + + -- Damage taken (Also EDD) / DeathHistory + "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS", + "CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES", + "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", + "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS", + "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES", + "CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE", + "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS", + "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES", + "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE", + + -- Healing/Absorbs/Fail/DeathHistory/Dispels + "CHAT_MSG_SPELL_SELF_BUFF", + "CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS", + "CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF", + "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS", + "CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF", + "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS", + "CHAT_MSG_SPELL_PARTY_BUFF", + "CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS", + + -- Absorbs/Auras + "CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF", + "CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS", + "CHAT_MSG_SPELL_BREAK_AURA", + "CHAT_MSG_SPELL_AURA_GONE_SELF", + "CHAT_MSG_SPELL_AURA_GONE_OTHER", + "CHAT_MSG_SPELL_AURA_GONE_PARTY", + + -- Death/DeathHistory + "CHAT_MSG_COMBAT_FRIENDLY_DEATH", + "CHAT_MSG_COMBAT_HOSTILE_DEATH", +} +DPSMate.Registered = true +DPSMate.RegistredModules = {} +DPSMate.ModuleNames = {} +DPSMate.UserId = nil +DPSMate.AbilityId = nil +DPSMate.Key = 1 +DPSMate.DelayMsg = {} +DPSMate.BabbleSpell = BabbleSpell +DPSMate.BabbleBoss = BabbleBoss + +-- Knife was wrong - 11.06.2018 + +-- Local Variables +local _G = getglobal +local classcolor = { + rogue = {r=1.0, g=0.96, b=0.41}, + priest = {r=1,g=1,b=1}, + druid = {r=1,g=0.49,b=0.04}, + warrior = {r=0.78,g=0.61,b=0.43}, + warlock = {r=0.58,g=0.51,b=0.79}, + mage = {r=0.41,g=0.8,b=0.94}, + hunter = {r=0.67,g=0.83,b=0.45}, + paladin = {r=0.96,g=0.55,b=0.73}, + shaman = {r=0,g=0.44,b=0.87}, +} +local t = {} +local tinsert = table.insert +local strgsub = string.gsub +local func = function(c) tinsert(t, c) end +local strformat = string.format +local strgfind = string.gfind +local pairs = pairs +local strlen = strlen +local strsub = strsub +local tonumber = tonumber +local getn = getn +local tconcat = table.concat +local SendChatMessage = function(prio, prefix, text, chattype, language, destination) + ChatThrottleLib:SendChatMessage(prio, prefix, text, chattype, language, destination) +end + +local DPSSettings = {} +local DPSHist = {} +local fontRefreshAt = nil +local savedFontSettings = nil +local GT = GetTime + +-- Begin functions + +function DPSMate:OnLoad() + SLASH_DPSMate1 = "/dps" + SlashCmdList["DPSMate"] = function(msg) DPSMate:SlashCMDHandler(msg) end + + DPSMate:UpdatePointer() + + -- Snapshot font settings before skinning addons can overwrite them + savedFontSettings = {} + for k, w in pairs(DPSSettings["windows"]) do + savedFontSettings[k] = { + barfont = w["barfont"], + barfontsize = w["barfontsize"], + barfontflag = w["barfontflag"], + titlebarfont = w["titlebarfont"], + titlebarfontsize = w["titlebarfontsize"], + titlebarfontflag = w["titlebarfontflag"], + } + end + + DPSMate:InitializeFrames() + DPSMate.Options:InitializeConfigMenu() + + if DPSMate.L.UpdateFrameTexts then + DPSMate.L.UpdateFrameTexts() + end + + -- Schedule a deferred font refresh so that font settings survive + -- skinning addons (e.g. pfUI) that override fonts after load. + fontRefreshAt = GT() + 1 +end + +function DPSMate:UpdatePointer() + DPSSettings = DPSMateSettings + DPSHist = DPSMateHistory +end + +function DPSMate:SlashCMDHandler(msg) + if (msg) then + local cmd = msg + if cmd == "lock" then + DPSMate.Options:Lock() + elseif cmd == "unlock" then + DPSMate.Options:Unlock() + elseif cmd == "config" then + DPSMate_ConfigMenu:Show() + elseif cmd == "reset" then + DPSMate:SendMessage(DPSMate.L["resetconfirm"]) + elseif cmd == "resetconfirm" then + DPSMateUser = {} + DPSMateAbility = {} + DPSMate.DB.abilitylen = 1 + DPSMate.DB.userlen = 1 + DPSMate.UserId = {} + DPSMate.Options:PopUpAccept(true, true) + DPSMate:SendMessage(DPSMate.L["resetdone"]) + elseif cmd == "showAll" then + for _, val in DPSSettings["windows"] do DPSMate.Options:Show(getglobal("DPSMate_"..val["name"])) end + elseif cmd == "hideAll" then + for _, val in DPSSettings["windows"] do DPSMate.Options:Hide(getglobal("DPSMate_"..val["name"])) end + elseif strsub(cmd, 1, 4) == "show" then + local frame = _G("DPSMate_"..strsub(cmd, 6)) + if frame then + DPSMate.Options:Show(frame) + else + DPSMate:SendMessage(DPSMate.L["framesavailable"]) + for _, val in pairs(DPSSettings["windows"]) do + DPSMate:SendMessage("|c3ffddd80- "..val["name"].."|r") + end + end + elseif strsub(cmd, 1, 4) == "hide" then + local frame = _G("DPSMate_"..strsub(cmd, 6)) + if frame then + DPSMate.Options:Hide(frame) + else + DPSMate:SendMessage(DPSMate.L["framesavailable"]) + for _, val in pairs(DPSSettings["windows"]) do + DPSMate:SendMessage("|c3ffddd80- "..val["name"].."|r") + end + end + else + DPSMate:SendMessage(DPSMate.L["slashabout"]) + DPSMate:SendMessage(DPSMate.L["slashusage"]) + DPSMate:SendMessage(DPSMate.L["slashlock"]) + DPSMate:SendMessage(DPSMate.L["slashunlock"]) + DPSMate:SendMessage(DPSMate.L["slashshowAll"]) + DPSMate:SendMessage(DPSMate.L["slashhideAll"]) + DPSMate:SendMessage(DPSMate.L["slashshow"]) + DPSMate:SendMessage(DPSMate.L["slashhide"]) + DPSMate:SendMessage(DPSMate.L["slashconfig"]) + DPSMate:SendMessage(DPSMate.L["slashreset"]) + end + end +end + +function DPSMate:InitializeFrames() + if not DPSSettings["windows"][1] then return end + for k, val in pairs(DPSSettings["windows"]) do + if not _G("DPSMate_"..val["name"]) then + local f=CreateFrame("Frame", "DPSMate_"..val["name"], UIParent, "DPSMate_Statusframe") + f.Key=k + end + local frame = _G("DPSMate_"..val["name"]) + frame.fborder = _G("DPSMate_"..val["name"].."_Border") + frame:SetToplevel(true) + + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total_Name"):SetText(self.L["total"]) + + if (val["position"] and val["position"][1]) then + frame:ClearAllPoints() + frame:SetPoint(val["position"][1], UIParent, val["position"][1], val["position"][2], val["position"][3]) + end + if (val["savsize"] and val["savsize"][1]) then + frame:SetWidth(val["savsize"][1]) + frame:SetHeight(val["savsize"][2]) + end + + DPSMate.Options:ToggleDrewDrop(1, DPSMate.DB:GetOptionsTrue(1, k), frame) + DPSMate.Options:ToggleDrewDrop(2, DPSMate.DB:GetOptionsTrue(2, k), frame) + + frame.fborder:SetAlpha(val["borderopacity"] or 0) + frame.fborder:SetFrameStrata(DPSMate.Options.stratas[val["borderstrata"] or 1]) + frame.fborder:SetBackdrop({ + bgFile = "", + edgeFile = DPSMate.Options.bordertextures[val["bordertexture"] or "UI-Tooltip-Border"], tile = true, tileSize = 12, edgeSize = 10, + insets = { left = 5, right = 5, top = 3, bottom = 1 } + }) + frame.fborder:SetBackdropBorderColor(val["contentbordercolor"][1], val["contentbordercolor"][2], val["contentbordercolor"][3]) + + local head = _G("DPSMate_"..val["name"].."_Head") + head.font = _G("DPSMate_"..val["name"].."_Head_Font") + head.bg = _G("DPSMate_"..val["name"].."_Head_Background") + head.sync = _G("DPSMate_"..val["name"].."_Head_Sync") + + if DPSSettings["sync"] then + head.sync:GetNormalTexture():SetVertexColor(0.67,0.83,0.45,1) + else + head.sync:GetNormalTexture():SetVertexColor(1,0,0,1) + end + + if DPSSettings["lock"] then + _G("DPSMate_"..val["name"].."_Resize"):Hide() + end + if not val["titlebar"] then + head:Hide() + end + frame:SetAlpha(val["opacity"]) + head.font:SetTextColor(val["titlebarfontcolor"][1],val["titlebarfontcolor"][2],val["titlebarfontcolor"][3]) + head.bg:SetTexture(DPSMate.Options.statusbars[val["titlebartexture"]]) + head.bg:SetVertexColor(val["titlebarbgcolor"][1], val["titlebarbgcolor"][2], val["titlebarbgcolor"][3]) + head.bg:SetAlpha(val["titlebaropacity"] or 1) + head.font:SetFont(DPSMate.Options.fonts[val["titlebarfont"]], val["titlebarfontsize"], DPSMate.Options.fontflags[val["titlebarfontflag"]]) + head:SetHeight(val["titlebarheight"]) + _G("DPSMate_"..val["name"].."_ScrollFrame_Background"):SetTexture(DPSMate.Options.bgtexture[val["contentbgtexture"]]) + _G("DPSMate_"..val["name"].."_ScrollFrame_Background"):SetVertexColor(val["contentbgcolor"][1], val["contentbgcolor"][2], val["contentbgcolor"][3]) + _G("DPSMate_"..val["name"].."_ScrollFrame_Background"):SetAlpha(val["bgopacity"] or 1) + frame:SetScale(val["scale"]) + _G("DPSMate_"..val["name"].."_Head_Enable"):SetChecked(DPSSettings["enable"]) + + -- Styles // Bars + local child = _G("DPSMate_"..val["name"].."_ScrollFrame_Child") + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetPoint("TOPLEFT", child, "TOPLEFT") + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetPoint("TOPRIGHT", child, "TOPRIGHT") + if DPSSettings["showtotals"] then + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetHeight(val["barheight"]) + else + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetHeight(0.00001) + end + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetStatusBarTexture(DPSMate.Options.statusbars[val["bartexture"]]) + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetStatusBarColor(1,1,1,val["totopacity"] or 1) + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total_BG"):SetTexture(DPSMate.Options.statusbars[val["bartexture"]]) + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total_BG"):SetAlpha(val["totopacity"] or 1) + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total_Name"):SetFont(DPSMate.Options.fonts[val["barfont"]], val["barfontsize"], DPSMate.Options.fontflags[val["barfontflag"]]) + _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total_Value"):SetFont(DPSMate.Options.fonts[val["barfont"]], val["barfontsize"], DPSMate.Options.fontflags[val["barfontflag"]]) + for i=1, 40 do + local bar = _G("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar"..i) + bar.name = _G("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name") + bar.value = _G("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar"..i.."_Value") + bar.icon = _G("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar"..i.."_Icon") + bar.bg = _G("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar"..i.."_BG") + + -- Postition + bar:SetPoint("TOPLEFT", child, "TOPLEFT") + bar:SetPoint("TOPRIGHT", child, "TOPRIGHT") + if i>1 then + bar:SetPoint("TOPLEFT", _G("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar"..(i-1)), "BOTTOMLEFT", 0, -1*val["barspacing"]) + else + if DPSSettings["showtotals"] then + bar:SetPoint("TOPLEFT", _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"), "BOTTOMLEFT", 0, -1*val["barspacing"]) + else + bar:SetPoint("TOPLEFT", _G("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"), "BOTTOMLEFT", 0, -1) + end + end + if val["classicons"] then + bar.name:ClearAllPoints() + bar.name:SetPoint("TOPLEFT", bar, "TOPLEFT", val["barheight"], 0) + bar.name:SetPoint("BOTTOMRIGHT", bar, "BOTTOMRIGHT") + bar.icon:SetWidth(val["barheight"]) + bar.icon:SetHeight(val["barheight"]) + bar.icon:Show() + end + + -- Styles + bar.name:SetFont(DPSMate.Options.fonts[val["barfont"]], val["barfontsize"], DPSMate.Options.fontflags[val["barfontflag"]]) + bar.name:SetTextColor(val["barfontcolor"][1],val["barfontcolor"][2],val["barfontcolor"][3]) + bar.value:SetFont(DPSMate.Options.fonts[val["barfont"]], val["barfontsize"], DPSMate.Options.fontflags[val["barfontflag"]]) + bar.value:SetTextColor(val["barfontcolor"][1],val["barfontcolor"][2],val["barfontcolor"][3]) + bar:SetStatusBarTexture(DPSMate.Options.statusbars[val["bartexture"]]) + bar.bg:SetTexture(DPSMate.Options.statusbars[val["bartexture"]]) + bar:SetHeight(val["barheight"]) + if val["barbg"] then + bar.bg:SetVertexColor(val["bgbarcolor"][1],val["bgbarcolor"][2],val["bgbarcolor"][3], 0) + else + bar.bg:SetVertexColor(val["bgbarcolor"][1],val["bgbarcolor"][2],val["bgbarcolor"][3], 0.5) + end + + end + DPSMate.Options:SelectRealtime(frame, val["realtime"]) + + if (val["hidden"] == true) then + frame:Hide() + end + end + DPSMate.Options:ToggleTitleBarButtonState() + DPSMate.Options:HideWhenSolo() + if not DPSSettings["enable"] then + self:Disable() + else + self:Enable() + end + + + -- Report delay button + DPSMate_Report_Delay:SetChecked(DPSSettings["reportdelay"]) + + DPSMate_MiniMap:SetToplevel(true) + DPSMate_PopUp:SetToplevel(true) + DPSMate_Vote:SetToplevel(true) + DPSMate_Logout:SetToplevel(true) + DPSMate_Report:SetToplevel(true) + DPSMate_ConfigMenu:SetToplevel(true) +end + +function DPSMate:ProbZero(val) + if (val==0) then + return 1; + end + return val; +end + +function DPSMate:TMax(t) + local max = 0 + for _,val in pairs(t) do + if val>max then + max=val + end + end + return max +end + +function DPSMate:TableLength(t) + local count = 0 + if (t) then + count = getn(t) + if count<=1 then + count = 0 + for _,_ in pairs(t) do + count = count + 1 + end + end + end + return count +end + +function DPSMate:TContains(t, value) + if (t) then + for cat, val in pairs(t) do + if val == value or cat==value then + return true + end + end + end + return false +end + +function DPSMate:GetKeyByVal(t, value) + for cat, val in pairs(t) do + if val == value then + return cat + end + end +end + +function DPSMate:GetKeyByValInTT(t, x, y) + for cat, val in pairs(t) do + if (type(val) == "table") then + if (x==val[y]) then + return cat + end + end + end +end + +function DPSMate:InvertTable(t) + local s={} + for cat, val in pairs(t) do + s[val]=cat + end + return s +end + +function DPSMate:CopyTable(t) + local s={} + for cat, val in pairs(t) do + if type(val) == "table" then + s[cat] = self:CopyTable(val) + else + s[cat] = val + end + end + return s +end + +function DPSMate:CopyTableStripInstant(t, depth) + local s={} + depth = depth or 0 + for cat, val in pairs(t) do + if depth >= 2 and cat == "i" then + -- Skip ["i"] instant-damage dictionaries at ability level + elseif type(val) == "table" then + s[cat] = self:CopyTableStripInstant(val, depth + 1) + else + s[cat] = val + end + end + return s +end + +function DPSMate:PruneStaleUsers() + -- Collect all user IDs referenced in active metric data and history + local activeIds = {} + local metrics = {DPSMateDamageDone, DPSMateDamageTaken, DPSMateEDD, DPSMateEDT, DPSMateTHealing, DPSMateEHealing, DPSMateOverhealing, DPSMateHealingTaken, DPSMateEHealingTaken, DPSMateOverhealingTaken, DPSMateAbsorbs, DPSMateDispels, DPSMateDeaths, DPSMateInterrupts, DPSMateAurasGained, DPSMateThreat, DPSMateFails, DPSMateCCBreaker} + -- Check active data (mode [1] and [2]) + for _, metric in pairs(metrics) do + if metric then + for mode = 1, 2 do + if metric[mode] then + for uid, _ in pairs(metric[mode]) do + activeIds[uid] = true + end + end + end + end + end + -- Check history segments + for cat, segments in pairs(DPSMateHistory) do + if cat ~= "names" and type(segments) == "table" then + for _, segment in pairs(segments) do + if type(segment) == "table" then + for uid, _ in pairs(segment) do + activeIds[uid] = true + end + end + end + end + end + -- Remove users whose IDs aren't referenced anywhere + local removed = 0 + for name, data in pairs(DPSMateUser) do + if data[1] and not activeIds[data[1]] then + DPSMateUser[name] = nil + removed = removed + 1 + end + end + if removed > 0 then + self.UserId = nil + end +end + +-- Strip ["i"] sub-tables from all modes of all metrics that use them. +-- Covers damage/healing/threat (per-second time buckets) as well as dispels, +-- interrupts, and absorbs (event log arrays stored under ["i"]). +-- Called on login and on logout to keep SavedVariables compact. +-- +-- A recursive walk is used: wherever ["i"] is a table it is cleared to {}. +-- Numbers stored under ["i"] are left untouched. +-- Using {} rather than nil keeps combat event writers safe. +local function stripInstantRecursive(t) + for k, v in pairs(t) do + if k == "i" and type(v) == "table" then + t[k] = {} + elseif k ~= "i" and type(v) == "table" then + stripInstantRecursive(v) + end + end +end + +function DPSMate:StripInstantFromMode1() + local metrics = {DPSMateDamageDone, DPSMateDamageTaken, DPSMateEDD, DPSMateEDT, + DPSMateTHealing, DPSMateEHealing, DPSMateOverhealing, DPSMateHealingTaken, + DPSMateEHealingTaken, DPSMateOverhealingTaken, DPSMateThreat, + DPSMateDispels, DPSMateInterrupts, DPSMateAbsorbs} + for _, metric in pairs(metrics) do + if metric then + if metric[1] then stripInstantRecursive(metric[1]) end + if metric[2] then stripInstantRecursive(metric[2]) end + end + end +end + +-- Collapse AurasGained timestamp arrays in Mode [1] and [2] into compact uptime totals. +-- path[1] (gain times) and path[2] (loss times) grow unboundedly with each buff +-- application. The pre-computed total is stored in path[7] so EvalTable can still +-- display accurate uptime percentages across sessions. +function DPSMate:CollapseAuraTimestamps() + if not DPSMateAurasGained then return end + for mode = 1, 2 do + local modeData = DPSMateAurasGained[mode] + if modeData then + for uid, abilities in pairs(modeData) do + for abilityId, path in pairs(abilities) do + if type(path) == "table" and type(path[1]) == "table" then + local total = path[7] or 0 + for i, gainTime in pairs(path[1]) do + if path[2] and path[2][i] then + total = total + (path[2][i] - gainTime) + end + end + path[7] = total + path[1] = {} + path[2] = {} + end + end + end + end + end +end + + +function DPSMate:GetUserById(id) + if not self.UserId or not self.UserId[id] then + self.UserId = {} + for cat, val in DPSMateUser do + self.UserId[val[1]] = cat + end + end + return self.UserId[id] +end + +function DPSMate:GetPetsByOwner(arr) + local lookup = {} + for cat, _ in pairs(arr) do + local name = self:GetUserById(cat) + if name and DPSMateUser[name] and DPSMateUser[name][4] and DPSMateUser[name][6] then + local oid = DPSMateUser[name][6] + if not lookup[oid] then + lookup[oid] = {} + end + table.insert(lookup[oid], cat) + end + end + return lookup +end + +function DPSMate:GetAbilityById(id) + if not self.AbilityId or not self.AbilityId[id] then + self.AbilityId = {} + for cat, val in DPSMateAbility do + self.AbilityId[val[1]] = cat + end + end + return self.AbilityId[id] +end + +function DPSMate:GetMaxValue(arr, key) + local max = 0 + for _, val in arr do + if val[key]>max then + max=val[key] + end + end + return max +end + +function DPSMate:GetMinValue(arr, key) + local min + for _, val in arr do + if not min or val[key]= fontRefreshAt then + fontRefreshAt = nil + self:RefreshFonts() + end + local arr, cbt, ecbt, user, val, perc, strt, statusbar, r, g, b, img, len + for k,c in pairs(DPSSettings.windows) do + arr, cbt, ecbt = self:GetMode(k) + user, val, perc, strt = self:GetSettingValues(arr,cbt,k,ecbt) + + -- Caching the global lookups + if not framePointerCache[k] then + framePointerCache[k] = {} + framePointerCache[k][1] = _G("DPSMate_"..c["name"].."_ScrollFrame_Child_Total_Value") + framePointerCache[k][2] = _G("DPSMate_"..c["name"].."_Head_Font") + framePointerCache[k][3] = _G("DPSMate_"..c["name"].."_ScrollFrame_Child") + framePointerCache[k][4] = _G("DPSMate_"..c["name"].."_ScrollFrame_Child_Total") + for i=1, 40 do + framePointerCache[k][4+i] = {} + framePointerCache[k][4+i][1] = _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i) + framePointerCache[k][4+i][2] = _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name") + framePointerCache[k][4+i][3] = _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i.."_Value") + framePointerCache[k][4+i][4] = _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i.."_Icon") + end + end + + local FPC = framePointerCache[k]; + + if DPSSettings["showtotals"] then + FPC[1]:SetText(strt[1]..strt[2]) + end + if not c["cbtdisplay"] then + FPC[2]:SetText(self.Options.Options[1]["args"][c["CurMode"]].name.." ["..self.Options:FormatTime(cbt).."]") + end + len = 0 + for i=1, 40 do + statusbar = FPC[4+i][1] + if user[i] then + r,g,b,img = self:GetClassColor(user[i]) + statusbar:SetStatusBarColor(r,g,b, 1) + + local displayName = user[i] + if not DPSMateSettings["mergepets"] and DPSMateUser[user[i]] and DPSMateUser[user[i]][4] then + local ownerID = DPSMateUser[user[i]][6] + if ownerID then + local ownerName = self:GetUserById(ownerID) + if ownerName then displayName = user[i].." ("..ownerName..")" end + end + end + if c["ranks"] then + FPC[4+i][2]:SetText(i..". "..displayName) + else + FPC[4+i][2]:SetText(displayName) + end + FPC[4+i][3]:SetText(val[i]) + FPC[4+i][4]:SetTexture("Interface\\AddOns\\DPSMate\\images\\class\\"..img) + statusbar:SetValue(perc[i]) + + statusbar.user = user[i] + statusbar:Show() + len = len + 1 + else + statusbar:Hide() + end + end + FPC[3]:SetHeight((len+1)*(c["barheight"]+c["barspacing"])) + FPC[4]:Show() + if len == 0 then + FPC[4]:Hide() + end + end +end + +function DPSMate:strrev(str) + local res, len = {}, strlen(str) + for i=1, len do + res[i] = strsub(str, len-i+1, len-i+1) + end + return tconcat(res); +end + +function DPSMate:Commas(n,k) + if DPSSettings["windows"][k]["numberformat"] == 3 then + n = strformat("%.0f", n) + for left, num, right in strgfind(n, '([^%d]*%d)(%d+)') do + return left and left..self:strrev(strgsub(self:strrev(num), '(%d%d%d)','%1,')) + end + end + return n; +end + +function DPSMate:FormatNumbers(dmg,total,sort,k) + local oldd, oldt, olds = dmg, total, sort + if DPSSettings["windows"][k]["numberformat"] == 2 then + if dmg>10000 then + dmg = strformat("%.0f", (dmg/1000)) + end + if total>10000 then + total = strformat("%.0f", (total/1000)) + end + if sort>10000 then + sort = strformat("%.0f", (sort/1000)) + end + elseif DPSSettings["windows"][k]["numberformat"] == 4 then + if dmg>10000 then + dmg = strformat("%.1f", (dmg/1000)) + end + if total>10000 then + total = strformat("%.1f", (total/1000)) + end + if sort>10000 then + sort = strformat("%.1f", (sort/1000)) + end + end + return dmg, total, sort, oldd, oldt, olds +end + +function DPSMate:ApplyFilter(key, name) + if not name or not DPSMateUser[name] then return false end + if not key then return true end + local class = DPSMateUser[name][2] or "warrior" + local path = DPSSettings["windows"][key] + if path["grouponly"] then + if not DPSMate.Parser.TargetParty[name] and next(DPSMate.Parser.TargetParty) ~= nil then + return false + end + end + + if path["filterpeople"] and path["filterpeople"] ~= "" then + -- Certain people + t = {} + strgsub(path["filterpeople"]..",", "(.-),", func) + for cat, val in pairs(t) do + if name == val then + return true + end + end + end + + -- classes + for cat, val in pairs(path["filterclasses"]) do + if not val then + if cat == class then + return false + end + end + end + return true +end + +function DPSMate:GetSettingValues(arr, cbt, k, ecbt) + k = k or 1 + return self.RegistredModules[DPSSettings["windows"][k]["CurMode"]]:GetSettingValues(arr, cbt, k, ecbt) +end + +function DPSMate:EvalTable(k) + k = k or 1 + return self.RegistredModules[DPSSettings["windows"][k]["CurMode"]]:EvalTable(DPSMateUser[UnitName("player")], k) +end + +function DPSMate:GetClassColor(class) + if not class then + class = "warrior" + end + if DPSMateUser[class] then + class = DPSMateUser[class][2] or "warrior" + end + if classcolor[class] then + return classcolor[class].r, classcolor[class].g, classcolor[class].b, class + end + return classcolor["warrior"].r, classcolor["warrior"].g, classcolor["warrior"].b, "warrior" +end + +function DPSMate:GetMode(k) + k = k or 1 + local Handler = DPSMate.RegistredModules[DPSSettings["windows"][k]["CurMode"]] + local opts = DPSSettings["windows"][k]["options"][2] + -- Check in deterministic order: total first, then currentfight, then segments + if opts["total"] then + return Handler.DB[1], DPSMateCombatTime["total"], DPSMateCombatTime["effective"][1] + end + if opts["currentfight"] then + return Handler.DB[2], DPSMateCombatTime["current"], DPSMateCombatTime["effective"][2] + end + local num + for cat, val in pairs(opts) do + if val and strfind(cat, "segment") then + num = tonumber(strsub(cat, 8)) + if (Handler.Hist) and DPSHist[Handler.Hist] and self:TableLength(DPSHist[Handler.Hist]) >= num then + return DPSHist[Handler.Hist][num], DPSMateCombatTime["segments"][num][1], DPSMateCombatTime["segments"][num][2] + else + return {}, 0, 0 + end + end + end + -- Fallback: default to total + return Handler.DB[1], DPSMateCombatTime["total"], DPSMateCombatTime["effective"][1] +end + +function DPSMate:GetModeByArr(arr, k, Hist) + local opts = DPSSettings["windows"][k]["options"][2] + -- Check in deterministic order: total first, then currentfight, then segments + if opts["total"] then + return arr[1], DPSMateCombatTime["total"], DPSMateCombatTime["effective"][1] + end + if opts["currentfight"] then + return arr[2], DPSMateCombatTime["current"], DPSMateCombatTime["effective"][2] + end + local num + for cat, val in pairs(opts) do + if val and strfind(cat, "segment") then + num = tonumber(strsub(cat, 8)) + if (Hist or arr.Hist) and DPSHist[Hist or arr.Hist] and self:TableLength(DPSHist[Hist or arr.Hist]) >= num then + return DPSHist[Hist or arr.Hist][num], DPSMateCombatTime["segments"][num][1], DPSMateCombatTime["segments"][num][2] + else + return {}, 0, 0 + end + end + end + -- Fallback: default to total + return arr[1], DPSMateCombatTime["total"], DPSMateCombatTime["effective"][1] +end + +function DPSMate:GetModeName(k) + k = k or 1 + local opts = DPSSettings["windows"][k]["options"][2] + if opts["total"] then return "Total" end + if opts["currentfight"] then return "Current fight" end + local num + for cat, val in pairs(opts) do + if val and strfind(cat, "segment") then + num = tonumber(strsub(cat, 8)) + return DPSHist["names"][num] + end + end + return "Total" +end + +function DPSMate:Disable() + if self.Registered then + self.Sync:UnregisterEvent("CHAT_MSG_ADDON") + for _, event in pairs(self.Events) do + self.Parser:UnregisterEvent(event) + end + self.Registered = false + end +end + +function DPSMate:Enable() + if not self.Registered then + self.Sync:RegisterEvent("CHAT_MSG_ADDON") + for _, val in pairs(self.RegistredModules) do + if val.Events then + for _, event in pairs(val.Events) do + self.Parser:RegisterEvent(event) + end + end + end + self.Registered = true + end +end + +function DPSMate:Broadcast(type, who, what, with, value, failtype) + if DPSSettings["broadcasting"] then + if IsRaidLeader() or IsRaidOfficer() then + local ch = "RAID" + if DPSSettings["bcrw"] then + ch = "RAID_WARNING" + end + if DPSSettings["bccd"] and type == 1 then + SendChatMessage("BULK", "DPSMateChat", self.L["bccdo"](who, what), ch, nil, nil) + return + elseif DPSSettings["bccd"] and type == 6 then + SendChatMessage("BULK", "DPSMateChat", self.L["bccdt"](who, what), ch, nil, nil) + return + elseif DPSSettings["bcress"] and type == 2 then + SendChatMessage("BULK", "DPSMateChat", self.L["bcress"](who, what), ch, nil, nil) + return + elseif DPSSettings["bckb"] and type == 4 then + SendChatMessage("BULK", "DPSMateChat", self.L["bckb"](who, what, with, value), ch, nil, nil) + return + elseif DPSSettings["bcfail"] and type == 3 then + if failtype == 1 then + SendChatMessage("BULK", "DPSMateChat", self.L["bcfailo"](what, who, value, with), ch, nil, nil) + elseif failtype == 3 then + SendChatMessage("BULK", "DPSMateChat", self.L["bcfailt"](who, with), ch, nil, nil) + else + SendChatMessage("BULK", "DPSMateChat", self.L["bcfailth"](who, value, with, what), ch, nil, nil) + end + return + end + end + end +end + +function DPSMate:SendMessage(msg) + DEFAULT_CHAT_FRAME:AddMessage("|cFFFF8080"..self.L["name"].."|r: "..msg) +end + +function DPSMate:Register(prefix, table, name) + self.ModuleNames[name] = prefix + self.RegistredModules[prefix] = table +end \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/DPSMate.toc b/src/dpslog/WeirdDPSMate/DPSMate.toc new file mode 100644 index 0000000..29ae089 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate.toc @@ -0,0 +1,259 @@ +## Interface: 11200 +## Title: DPSMate |cFFFF8080-Enhanced-|r +## Notes: DPSMate is an advanced combat analyzation tool, providing helpful graphs and statistics to evaluate the fight. +## Notes-deDE: DPSMate ist ein Analysewerkzeug, das hilfreiche Graphen und Statistiken bereitstellt, um den Kampf zu evaluieren. +## Notes-ruRU: DPSMate это продвинутый инструмент анализа боя, предоставляет полезные графики и статистики для оценки боя. +## Author: Shino - Kronos, Torio +## OptionalDeps: KLHThreatMeter +## SavedVariables: DPSMateSettings + +libs\AceLibrary\AceLibrary.lua +libs\Dewdrop-2.0\Dewdrop-2.0.lua +libs\GraphLib\Graph-1.0\Graph-1.0.lua +libs\ChatThrottleLib.lua +enUS\Babble-Spell-2.3.lua +enUS\Babble-Boss-2.3.lua +enUS\NPCDB-1.0.lua + +DPSMate.lua +DPSMate_CombatPatterns.lua + +enUS\enUS.lua + +DPSMate_Parser.lua +enUS\DPSMate_ParserENUS.lua + +locales\Babble-Spell-2.3_deDE.lua +locales\Babble-Boss-2.3_deDE.lua +locales\NPCDB-1.0_deDE.lua +locales\deDE.lua +locales\DPSMate_ParserDEDE.lua + +locales\Babble-Spell-2.3_frFR.lua +locales\Babble-Boss-2.3_frFR.lua +locales\NPCDB-1.0_frFR.lua +locales\frFR.lua +locales\DPSMate_ParserFRFR.lua + +locales\Babble-Spell-2.3_koKR.lua +locales\Babble-Boss-2.3_koKR.lua +locales\NPCDB-1.0_koKR.lua +locales\koKR.lua +locales\DPSMate_ParserKRKR.lua + +locales\Babble-Spell-2.3_ruRU.lua +locales\Babble-Boss-2.3_ruRU.lua +locales\NPCDB-1.0_ruRU.lua +locales\ruRU.lua +locales\DPSMate_ParserRURU.lua + +locales\Babble-Spell-2.3_zhCN.lua +locales\Babble-Boss-2.3_zhCN.lua +locales\NPCDB-1.0_zhCN.lua +locales\zhCN.lua +locales\DPSMate_ParserZHCN.lua + +DPSMate_Options.lua +DPSMate_Sync.lua +DPSMate_DataBuilder.lua + +Damage\DPSMate_DPS.lua +Damage\DPSMate_Damage.lua +Damage\DPSMate_Details_Damage.lua +Damage\DPSMate_Details_Damage.xml +Damage\DPSMate_Details_DamageTotal.lua +Damage\DPSMate_Details_DamageTotal.xml + +modules\DPSMate_Absorbs.lua +modules\DPSMate_Details_Absorbs.lua +modules\DPSMate_Details_Absorbs.xml +modules\DPSMate_Details_AbsorbsTotal.lua +modules\DPSMate_Details_AbsorbsTotal.xml + +modules\DPSMate_AbsorbsTaken.lua +modules\DPSMate_Details_AbsorbsTaken.lua +modules\DPSMate_Details_AbsorbsTaken.xml +modules\DPSMate_Details_AbsorbsTakenTotal.lua +modules\DPSMate_Details_AbsorbsTakenTotal.xml + +modules\DPSMate_Activity.lua + +modules\DPSMate_AurasGained.lua +modules\DPSMate_AurasLost.lua +modules\DPSMate_AuraUptimers.lua +modules\DPSMate_Details_Auras.lua +modules\DPSMate_Details_Auras.xml +modules\DPSMate_Details_AurasTotal.lua +modules\DPSMate_Details_AurasTotal.xml + +modules\DPSMate_Casts.lua +modules\DPSMate_Details_Casts.lua +modules\DPSMate_Details_Casts.xml +modules\DPSMate_Details_CastsTotal.lua +modules\DPSMate_Details_CastsTotal.xml + +modules\DPSMate_CCBreaker.lua +modules\DPSMate_Details_CCBreaker.lua +modules\DPSMate_Details_CCBreaker.xml +modules\DPSMate_Details_CCBreakerTotal.lua +modules\DPSMate_Details_CCBreakerTotal.xml + +modules\DPSMate_CureDisease.lua +modules\DPSMate_CureDiseaseReceived.lua +modules\DPSMate_Details_CureDisease.lua +modules\DPSMate_Details_CureDisease.xml +modules\DPSMate_Details_CureDiseaseReceived.lua +modules\DPSMate_Details_CureDiseaseReceived.xml +modules\DPSMate_Details_CureDiseaseTotal.lua +modules\DPSMate_Details_CureDiseaseTotal.xml + +modules\DPSMate_CurePoison.lua +modules\DPSMate_CurePoisonReceived.lua +modules\DPSMate_Details_CurePoison.lua +modules\DPSMate_Details_CurePoison.xml +modules\DPSMate_Details_CurePoisonReceived.lua +modules\DPSMate_Details_CurePoisonReceived.xml +modules\DPSMate_Details_CurePoisonTotal.lua +modules\DPSMate_Details_CurePoisonTotal.xml + +modules\DPSMate_DamageTaken.lua +modules\DPSMate_DTPS.lua +modules\DPSMate_Details_DamageTaken.lua +modules\DPSMate_Details_DamageTaken.xml +modules\DPSMate_Details_DamageTakenTotal.lua +modules\DPSMate_Details_DamageTakenTotal.xml + +modules\DPSMate_Deaths.lua +modules\DPSMate_Details_Deaths.lua +modules\DPSMate_Details_Deaths.xml +modules\DPSMate_Details_DeathsTotal.lua +modules\DPSMate_Details_DeathsTotal.xml + +modules\DPSMate_Debug.lua + +modules\DPSMate_Decurses.lua +modules\DPSMate_DecursesReceived.lua +modules\DPSMate_Details_Decurses.lua +modules\DPSMate_Details_Decurses.xml +modules\DPSMate_Details_DecursesReceived.lua +modules\DPSMate_Details_DecursesReceived.xml +modules\DPSMate_Details_DecursesTotal.lua +modules\DPSMate_Details_DecursesTotal.xml + +modules\DPSMate_Dispels.lua +modules\DPSMate_DispelsReceived.lua +modules\DPSMate_Details_Dispels.lua +modules\DPSMate_Details_Dispels.xml +modules\DPSMate_Details_DispelsReceived.lua +modules\DPSMate_Details_DispelsReceived.xml +modules\DPSMate_Details_DispelsTotal.lua +modules\DPSMate_Details_DispelsTotal.xml + +modules\DPSMate_EDD.lua +modules\DPSMate_Details_EDD.lua +modules\DPSMate_Details_EDD.xml +modules\DPSMate_Details_EDDTotal.lua +modules\DPSMate_Details_EDDTotal.xml + +modules\DPSMate_EDT.lua +modules\DPSMate_Details_EDT.lua +modules\DPSMate_Details_EDT.xml +modules\DPSMate_Details_EDTTotal.lua +modules\DPSMate_Details_EDTTotal.xml + +modules\DPSMate_EffectiveHealing.lua +modules\DPSMate_EffectiveHPS.lua +modules\DPSMate_Details_EHealing.lua +modules\DPSMate_Details_EHealing.xml +modules\DPSMate_Details_EHealingTotal.lua +modules\DPSMate_Details_EHealingTotal.xml + +modules\DPSMate_EffectiveHealingTaken.lua +modules\DPSMate_Details_EHealingTaken.lua +modules\DPSMate_Details_EHealingTaken.xml +modules\DPSMate_Details_EHealingTakenTotal.lua +modules\DPSMate_Details_EHealingTakenTotal.xml + +modules\DPSMate_Fails.lua +modules\DPSMate_Details_Fails.lua +modules\DPSMate_Details_Fails.xml +modules\DPSMate_Details_FailsTotal.lua +modules\DPSMate_Details_FailsTotal.xml + +modules\DPSMate_FriendlyFire.lua +modules\DPSMate_Details_FriendlyFire.lua +modules\DPSMate_Details_FriendlyFire.xml +modules\DPSMate_Details_FriendlyFireTotal.lua +modules\DPSMate_Details_FriendlyFireTotal.xml + +modules\DPSMate_FriendlyFireTaken.lua +modules\DPSMate_Details_FriendlyFireTaken.lua +modules\DPSMate_Details_FriendlyFireTaken.xml +modules\DPSMate_Details_FriendlyFireTakenTotal.lua +modules\DPSMate_Details_FriendlyFireTakenTotal.xml + +modules\DPSMate_Healing.lua +modules\DPSMate_HPS.lua +modules\DPSMate_Details_Healing.lua +modules\DPSMate_Details_Healing.xml +modules\DPSMate_Details_HealingTotal.lua +modules\DPSMate_Details_HealingTotal.xml + +modules\DPSMate_HealingAndAbsorbs.lua +modules\DPSMate_Details_HealingAndAbsorbs.lua +modules\DPSMate_Details_HealingAndAbsorbs.xml +modules\DPSMate_Details_HealingAndAbsorbsTotal.lua +modules\DPSMate_Details_HealingAndAbsorbsTotal.xml + +modules\DPSMate_HealingTaken.lua +modules\DPSMate_Details_HealingTaken.lua +modules\DPSMate_Details_HealingTaken.xml +modules\DPSMate_Details_HealingTakenTotal.lua +modules\DPSMate_Details_HealingTakenTotal.xml + +modules\DPSMate_Interrupts.lua +modules\DPSMate_Details_Interrupts.lua +modules\DPSMate_Details_Interrupts.xml +modules\DPSMate_Details_InterruptsTotal.lua +modules\DPSMate_Details_InterruptsTotal.xml + +modules\DPSMate_LiftMagic.lua +modules\DPSMate_LiftMagicReceived.lua +modules\DPSMate_Details_LiftMagic.lua +modules\DPSMate_Details_LiftMagic.xml +modules\DPSMate_Details_LiftMagicReceived.lua +modules\DPSMate_Details_LiftMagicReceived.xml +modules\DPSMate_Details_LiftMagicTotal.lua +modules\DPSMate_Details_LiftMagicTotal.xml + +modules\DPSMate_OHealingTaken.lua +modules\DPSMate_Details_OHealingTaken.lua +modules\DPSMate_Details_OHealingTaken.xml +modules\DPSMate_Details_OverhealingTakenTotal.lua +modules\DPSMate_Details_OverhealingTakenTotal.xml + +modules\DPSMate_Overhealing.lua +modules\DPSMate_OHPS.lua +modules\DPSMate_Details_Overhealing.lua +modules\DPSMate_Details_Overhealing.xml +modules\DPSMate_Details_OverhealingTotal.lua +modules\DPSMate_Details_OverhealingTotal.xml + +modules\DPSMate_Procs.lua +modules\DPSMate_Details_Procs.lua +modules\DPSMate_Details_Procs.xml +modules\DPSMate_Details_ProcsTotal.lua +modules\DPSMate_Details_ProcsTotal.xml + +modules\DPSMate_Threat.lua +modules\DPSMate_TPS.lua +modules\DPSMate_Details_Threat.lua +modules\DPSMate_Details_Threat.xml +modules\DPSMate_Details_ThreatTotal.lua +modules\DPSMate_Details_ThreatTotal.xml + +DPSMate_Frame.xml +DPSMate_Options.xml +Bindings.xml + +DPSMate_CLEUAdapter.lua diff --git a/src/dpslog/WeirdDPSMate/DPSMate_CLEUAdapter.lua b/src/dpslog/WeirdDPSMate/DPSMate_CLEUAdapter.lua new file mode 100644 index 0000000..20a50c9 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_CLEUAdapter.lua @@ -0,0 +1,588 @@ +-- DPSMate CLEU Adapter +-- Replaces the string-parsing CHAT_MSG_* event system with structured COMBAT_LOG_EVENT +-- data from the DPSLog module. Registers for COMBAT_LOG_EVENT and calls DPSMate.DB +-- functions directly with extracted values. +-- +-- Toggle: /dpscleu (switches between CLEU adapter and original string parser) +-- Requires: DPSLog module (provides COMBAT_LOG_EVENT + GetSpellInfo) + +if not DPSMate or not DPSMate.DB then return end + +local DB = DPSMate.DB +local Parser = DPSMate.Parser +local GT = GetTime +local AAttack = DPSMate.L and DPSMate.L["autoattack"] or "Attack" + +-- ============================================================================ +-- Chat event list (original parser registers these) +-- ============================================================================ + +local chatEvents = { + "CHAT_MSG_COMBAT_PET_HITS", "CHAT_MSG_COMBAT_PET_MISSES", + "CHAT_MSG_SPELL_PET_DAMAGE", + "CHAT_MSG_COMBAT_SELF_HITS", "CHAT_MSG_COMBAT_SELF_MISSES", + "CHAT_MSG_SPELL_SELF_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE", + "CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_HITS", "CHAT_MSG_SPELL_PARTY_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_MISSES", + "CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES", + "CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS", + "CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES", + "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS", + "CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES", + "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", + "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS", + "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES", + "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", + "CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE", + "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS", + "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES", + "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", + "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", + "CHAT_MSG_SPELL_SELF_BUFF", + "CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS", + "CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF", + "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS", + "CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF", + "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS", + "CHAT_MSG_SPELL_PARTY_BUFF", + "CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS", + "CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF", + "CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS", + "CHAT_MSG_SPELL_BREAK_AURA", + "CHAT_MSG_SPELL_AURA_GONE_SELF", + "CHAT_MSG_SPELL_AURA_GONE_OTHER", + "CHAT_MSG_SPELL_AURA_GONE_PARTY", + "CHAT_MSG_COMBAT_FRIENDLY_DEATH", + "CHAT_MSG_COMBAT_HOSTILE_DEATH", +} + +-- ============================================================================ +-- Toggle state +-- ============================================================================ + +local cleuActive = false +local cleuFrame = CreateFrame("Frame") + +local function enableCLEU() + -- Disable string parser + for _, ev in ipairs(chatEvents) do + Parser:UnregisterEvent(ev) + end + -- Enable CLEU + cleuFrame:RegisterEvent("COMBAT_LOG_EVENT") + cleuActive = true + DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00DPSMate CLEU Adapter|r: |cff00ff00ON|r (structured events)") +end + +local function enableOriginal() + -- Disable CLEU + cleuFrame:UnregisterEvent("COMBAT_LOG_EVENT") + -- Re-enable string parser + for _, ev in ipairs(chatEvents) do + Parser:RegisterEvent(ev) + end + cleuActive = false + DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00DPSMate CLEU Adapter|r: |cffff4444OFF|r (string parser)") +end + +local function toggle() + if cleuActive then + enableOriginal() + else + enableCLEU() + end +end + +SLASH_DPSCLEU1 = "/dpscleu" +SlashCmdList["DPSCLEU"] = function(msg) + if msg == "on" then + if not cleuActive then enableCLEU() end + elseif msg == "off" then + if cleuActive then enableOriginal() end + elseif msg == "status" then + DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00DPSMate CLEU Adapter|r: " .. (cleuActive and "|cff00ff00ON|r" or "|cffff4444OFF|r")) + else + toggle() + end +end + +-- ============================================================================ +-- Helper +-- ============================================================================ + +local function isGroupMember(name) + if not name or name == "" then return false end + if name == UnitName("player") then return true end + for i = 1, GetNumRaidMembers() do + if name == UnitName("raid" .. i) then return true end + end + for i = 1, GetNumPartyMembers() do + if name == UnitName("party" .. i) then return true end + end + return false +end + +-- ============================================================================ +-- CLEU event handler +-- ============================================================================ + +cleuFrame:SetScript("OnEvent", function() + local sub = arg1 + if not sub then return end + + local srcGUID = arg2 + local srcName = arg3 + local dstGUID = arg4 + local dstName = arg5 + + if not srcName or srcName == "" then srcName = "Unknown" end + if not dstName or dstName == "" then dstName = "Unknown" end + + -- ======================================================================== + -- DAMAGE events + -- ======================================================================== + + if sub == "SWING_DAMAGE" then + local amount = arg6 or 0 + local critical = arg12 == 1 and 1 or 0 + local glancing = arg13 == 1 and 1 or 0 + local crushing = arg14 == 1 and 1 or 0 + local hit = (critical == 0 and glancing == 0 and crushing == 0) and 1 or 0 + + DB:DamageDone(srcName, AAttack, hit, critical, 0, 0, 0, 0, amount, glancing, 0) + DB:DamageTaken(dstName, AAttack, hit, critical, 0, 0, 0, 0, amount, srcName, crushing, 0) + DB:EnemyDamage(1, DPSMateEDT, dstName, AAttack, hit, critical, 0, 0, 0, 0, amount, srcName, 0, crushing) + DB:EnemyDamage(2, DPSMateEDD, srcName, AAttack, hit, critical, 0, 0, 0, 0, amount, dstName, 0, 0) + DB:DeathHistory(dstName, srcName, AAttack, amount, hit, critical, "hit", crushing) + + elseif sub == "SWING_MISSED" then + local missType = arg6 + local miss = (missType == "MISS") and 1 or 0 + local parry = (missType == "PARRY") and 1 or 0 + local dodge = (missType == "DODGE") and 1 or 0 + local resist = (missType == "RESIST" or missType == "IMMUNE") and 1 or 0 + local block = (missType == "BLOCK") and 1 or 0 + local absorb = (missType == "ABSORB") and 1 or 0 + + DB:DamageDone(srcName, AAttack, 0, 0, miss + absorb, parry, dodge, resist, 0, 0, block) + DB:DamageTaken(dstName, AAttack, 0, 0, miss + absorb, parry, dodge, resist, 0, srcName, 0, block) + + elseif sub == "SPELL_DAMAGE" or sub == "RANGE_DAMAGE" or sub == "SPELL_PERIODIC_DAMAGE" + or sub == "DAMAGE_SHIELD" or sub == "DAMAGE_SPLIT" then + local spellName = arg7 or "Unknown" + local amount = arg9 or 0 + local school = arg11 + local critical = arg15 == 1 and 1 or 0 + local glancing = arg16 == 1 and 1 or 0 + local crushing = arg17 == 1 and 1 or 0 + local hit = (critical == 0 and glancing == 0 and crushing == 0) and 1 or 0 + + DB:DamageDone(srcName, spellName, hit, critical, 0, 0, 0, 0, amount, glancing, 0) + DB:DamageTaken(dstName, spellName, hit, critical, 0, 0, 0, 0, amount, srcName, crushing, 0) + DB:EnemyDamage(1, DPSMateEDT, dstName, spellName, hit, critical, 0, 0, 0, 0, amount, srcName, 0, crushing) + DB:EnemyDamage(2, DPSMateEDD, srcName, spellName, hit, critical, 0, 0, 0, 0, amount, dstName, 0, 0) + DB:DeathHistory(dstName, srcName, spellName, amount, hit, critical, "hit", crushing) + if school then DB:AddSpellSchool(spellName, school) end + + elseif sub == "SPELL_MISSED" or sub == "RANGE_MISSED" + or sub == "SPELL_PERIODIC_MISSED" or sub == "DAMAGE_SHIELD_MISSED" then + local spellName = arg7 or "Unknown" + local missType = arg9 + local miss = (missType == "MISS") and 1 or 0 + local parry = (missType == "PARRY") and 1 or 0 + local dodge = (missType == "DODGE") and 1 or 0 + local resist = (missType == "RESIST" or missType == "IMMUNE") and 1 or 0 + local block = (missType == "BLOCK") and 1 or 0 + local absorb = (missType == "ABSORB") and 1 or 0 + + DB:DamageDone(srcName, spellName, 0, 0, miss + absorb, parry, dodge, resist, 0, 0, block) + DB:DamageTaken(dstName, spellName, 0, 0, miss + absorb, parry, dodge, resist, 0, srcName, 0, block) + + elseif sub == "ENVIRONMENTAL_DAMAGE" then + local envType = arg6 + local amount = arg7 or 0 + DB:DamageTaken(dstName, envType or "Environment", 1, 0, 0, 0, 0, 0, amount, envType or "Environment", 0, 0) + DB:DeathHistory(dstName, envType or "Environment", envType or "Environment", amount, 1, 0, "hit", 0) + + -- ======================================================================== + -- HEAL events + -- ======================================================================== + + elseif sub == "SPELL_HEAL" or sub == "SPELL_PERIODIC_HEAL" then + local spellName = arg7 or "Unknown" + local amount = arg9 or 0 + local overheal = arg10 or 0 + local critical = arg12 == 1 and 1 or 0 + local hit = critical == 0 and 1 or 0 + local effective = amount - overheal + if effective < 0 then effective = 0 end + + DB:Healing(1, DPSMateHealingTaken, srcName, spellName, hit, critical, effective) + DB:Healing(2, DPSMateOverhealing, srcName, spellName, hit, critical, overheal) + DB:HealingTaken(1, DPSMateHealingTaken, srcName, spellName, hit, critical, effective, dstName) + DB:DeathHistory(dstName, srcName, spellName, effective, hit, critical, "heal", 0) + + -- ======================================================================== + -- AURA events + -- ======================================================================== + + elseif sub == "SPELL_AURA_APPLIED" then + local spellName = arg7 or "Unknown" + local auraType = arg9 + if auraType == "DEBUFF" then + DB:BuildBuffs(srcName, dstName, spellName, false) + if Parser.CC[spellName] then + DB:BuildActiveCC(dstName, spellName) + end + else + DB:BuildBuffs(srcName, dstName, spellName, true) + end + + elseif sub == "SPELL_AURA_REMOVED" then + local spellName = arg7 or "Unknown" + DB:DestroyBuffs(dstName, spellName) + local auraType = arg9 + if auraType == "DEBUFF" then + DB:RemoveActiveCC(dstName, spellName) + end + + elseif sub == "SPELL_AURA_BROKEN_SPELL" or sub == "SPELL_AURA_BROKEN" then + local spellName = arg7 or "Unknown" + DB:RemoveActiveCC(dstName, spellName) + if Parser.CC[spellName] then + DB:CCBreaker(dstName, spellName, srcName) + end + + -- ======================================================================== + -- CAST events + -- ======================================================================== + + elseif sub == "SPELL_CAST_SUCCESS" then + local spellName = arg7 or "Unknown" + if Parser.Kicks and Parser.Kicks[spellName] then + DB:RegisterPotentialKick(srcName, spellName, GT()) + end + + -- ======================================================================== + -- INTERRUPT / DISPEL events + -- ======================================================================== + + elseif sub == "SPELL_INTERRUPT" then + local spellName = arg7 or "Unknown" + local extraSpellName = arg10 or "Unknown" + DB:Kick(srcName, dstName, spellName, extraSpellName) + + elseif sub == "SPELL_DISPEL" then + local spellName = arg7 or "Unknown" + local extraSpellName = arg10 or "Unknown" + if isGroupMember(srcName) then + DB:Dispels(srcName, spellName, dstName, extraSpellName) + end + + -- ======================================================================== + -- DEATH events + -- ======================================================================== + + elseif sub == "UNIT_DIED" or sub == "UNIT_DESTROYED" then + DB:UnregisterDeath(dstName) + + elseif sub == "SPELL_SUMMON" then + local spellName = arg7 or "Unknown" + if not Parser.petToOwnerMap then Parser.petToOwnerMap = {} end + if not Parser.petToOwnerMap[dstName] then Parser.petToOwnerMap[dstName] = {} end + Parser.petToOwnerMap[dstName][srcName] = true + end +end) + +-- ============================================================================ +-- Performance profiling +-- ============================================================================ + +-- debugprofilestop() returns ms since last debugprofilestart(). +-- We call debugprofilestart() once at combat start, then use debugprofilestop() +-- as a monotonic clock — taking deltas between before/after each handler call. +-- gcinfo() returns KB. + +local profiling = false +local profCLEU = { events = 0, totalMs = 0, gcStart = 0 } +local profOrig = { events = 0, totalMs = 0, gcStart = 0 } +local profCurrent = nil + +-- Hook the parser's OnEvent to measure original mode +local origOnEvent = DPSMate.Parser:GetScript("OnEvent") +local function measuredOrigOnEvent() + if profiling and profCurrent == profOrig then + local before = debugprofilestop() + origOnEvent() + local after = debugprofilestop() + profOrig.totalMs = profOrig.totalMs + (after - before) + profOrig.events = profOrig.events + 1 + else + origOnEvent() + end +end +DPSMate.Parser:SetScript("OnEvent", measuredOrigOnEvent) + +-- Wrap the CLEU handler similarly +local cleuHandler -- forward decl + +local function measuredCLEUHandler() + if profiling and profCurrent == profCLEU then + local before = debugprofilestop() + cleuHandler() + local after = debugprofilestop() + profCLEU.totalMs = profCLEU.totalMs + (after - before) + profCLEU.events = profCLEU.events + 1 + else + cleuHandler() + end +end + +local function profReset(tbl) + tbl.events = 0 + tbl.totalMs = 0 + tbl.gcStart = gcinfo() +end + +-- debugprofilestop() returns microseconds on this client +local lastCLEUAvg = nil +local lastOrigAvg = nil + +local function profReport(label, tbl) + local gcEnd = gcinfo() + local gcDelta = gcEnd - tbl.gcStart + local totalMs = tbl.totalMs / 1000 + local avgUs = tbl.events > 0 and (tbl.totalMs / tbl.events) or 0 + + -- Store for comparison + if label == "CLEU" then + lastCLEUAvg = avgUs + else + lastOrigAvg = avgUs + end + + DEFAULT_CHAT_FRAME:AddMessage(string.format( + "|cff00ff00[%s]|r %d events, %.1fms total, %.1f us/event, %+.1f KB gc", + label, tbl.events, totalMs, avgUs, gcDelta)) + + -- If we have both measurements, show comparison + if lastCLEUAvg and lastOrigAvg and lastOrigAvg > 0 then + local pct = ((lastCLEUAvg - lastOrigAvg) / lastOrigAvg) * 100 + local sign = pct < 0 and "" or "+" + local color = pct < 0 and "|cff00ff00" or "|cffff4444" + DEFAULT_CHAT_FRAME:AddMessage(string.format( + "%s[CLEU vs ORIGINAL]|r %.1f vs %.1f us/event = %s%.1f%%|r %s", + color, lastCLEUAvg, lastOrigAvg, sign, pct, + pct < 0 and "(CLEU faster)" or "(ORIGINAL faster)")) + end +end + +-- /dpsbench -- enables per-combat A/B profiling. Each combat: measure, report, flip. +local benchActive = true + +local benchFrame = CreateFrame("Frame") + +local function benchCombatStart() + if not benchActive then return end + profCurrent = cleuActive and profCLEU or profOrig + profReset(profCurrent) + debugprofilestart() -- start the monotonic clock for this combat + profiling = true + local label = cleuActive and "CLEU" or "ORIGINAL" + DEFAULT_CHAT_FRAME:AddMessage(string.format("|cff00ff00[DPS Bench]|r combat started, measuring %s", label)) +end + +local function benchCombatEnd() + if not benchActive or not profiling then return end + profiling = false + local label = cleuActive and "CLEU" or "ORIGINAL" + profReport(label, profCurrent) + toggle() + DEFAULT_CHAT_FRAME:AddMessage(string.format( + "|cff00ff00[DPS Bench]|r next combat will use: %s", cleuActive and "CLEU" or "ORIGINAL")) +end + +benchFrame:RegisterEvent("PLAYER_REGEN_DISABLED") +benchFrame:RegisterEvent("PLAYER_REGEN_ENABLED") +benchFrame:SetScript("OnEvent", function() + if event == "PLAYER_REGEN_DISABLED" then + benchCombatStart() + elseif event == "PLAYER_REGEN_ENABLED" then + benchCombatEnd() + end +end) + +SLASH_DPSBENCH1 = "/dpsbench" +SlashCmdList["DPSBENCH"] = function() + benchActive = not benchActive + if benchActive then + DEFAULT_CHAT_FRAME:AddMessage(string.format( + "|cff00ff00[DPS Bench]|r enabled. Current mode: %s. Enter combat to begin.", + cleuActive and "CLEU" or "ORIGINAL")) + else + profiling = false + DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00[DPS Bench]|r disabled.") + end +end + +-- ============================================================================ +-- Wire up CLEU handler with measurement +-- ============================================================================ + +-- Replace the raw SetScript with the measured wrapper +cleuFrame:SetScript("OnEvent", function() + -- This outer function gets replaced below +end) + +-- The actual CLEU handler (extracted so we can call it directly or measured) +cleuHandler = function() + local sub = arg1 + if not sub then return end + + local srcGUID = arg2 + local srcName = arg3 + local dstGUID = arg4 + local dstName = arg5 + + if not srcName or srcName == "" then srcName = "Unknown" end + if not dstName or dstName == "" then dstName = "Unknown" end + + if sub == "SWING_DAMAGE" then + local amount = arg6 or 0 + local critical = arg12 == 1 and 1 or 0 + local glancing = arg13 == 1 and 1 or 0 + local crushing = arg14 == 1 and 1 or 0 + local hit = (critical == 0 and glancing == 0 and crushing == 0) and 1 or 0 + DB:DamageDone(srcName, AAttack, hit, critical, 0, 0, 0, 0, amount, glancing, 0) + DB:DamageTaken(dstName, AAttack, hit, critical, 0, 0, 0, 0, amount, srcName, crushing, 0) + DB:EnemyDamage(1, DPSMateEDT, dstName, AAttack, hit, critical, 0, 0, 0, 0, amount, srcName, 0, crushing) + DB:EnemyDamage(2, DPSMateEDD, srcName, AAttack, hit, critical, 0, 0, 0, 0, amount, dstName, 0, 0) + DB:DeathHistory(dstName, srcName, AAttack, amount, hit, critical, "hit", crushing) + + elseif sub == "SWING_MISSED" then + local missType = arg6 + local miss = (missType == "MISS") and 1 or 0 + local parry = (missType == "PARRY") and 1 or 0 + local dodge = (missType == "DODGE") and 1 or 0 + local resist = (missType == "RESIST" or missType == "IMMUNE") and 1 or 0 + local block = (missType == "BLOCK") and 1 or 0 + local absorb = (missType == "ABSORB") and 1 or 0 + DB:DamageDone(srcName, AAttack, 0, 0, miss + absorb, parry, dodge, resist, 0, 0, block) + DB:DamageTaken(dstName, AAttack, 0, 0, miss + absorb, parry, dodge, resist, 0, srcName, 0, block) + + elseif sub == "SPELL_DAMAGE" or sub == "RANGE_DAMAGE" or sub == "SPELL_PERIODIC_DAMAGE" + or sub == "DAMAGE_SHIELD" or sub == "DAMAGE_SPLIT" then + local spellName = arg7 or "Unknown" + local amount = arg9 or 0 + local school = arg11 + local critical = arg15 == 1 and 1 or 0 + local glancing = arg16 == 1 and 1 or 0 + local crushing = arg17 == 1 and 1 or 0 + local hit = (critical == 0 and glancing == 0 and crushing == 0) and 1 or 0 + DB:DamageDone(srcName, spellName, hit, critical, 0, 0, 0, 0, amount, glancing, 0) + DB:DamageTaken(dstName, spellName, hit, critical, 0, 0, 0, 0, amount, srcName, crushing, 0) + DB:EnemyDamage(1, DPSMateEDT, dstName, spellName, hit, critical, 0, 0, 0, 0, amount, srcName, 0, crushing) + DB:EnemyDamage(2, DPSMateEDD, srcName, spellName, hit, critical, 0, 0, 0, 0, amount, dstName, 0, 0) + DB:DeathHistory(dstName, srcName, spellName, amount, hit, critical, "hit", crushing) + if school then DB:AddSpellSchool(spellName, school) end + + elseif sub == "SPELL_MISSED" or sub == "RANGE_MISSED" + or sub == "SPELL_PERIODIC_MISSED" or sub == "DAMAGE_SHIELD_MISSED" then + local spellName = arg7 or "Unknown" + local missType = arg9 + local miss = (missType == "MISS") and 1 or 0 + local parry = (missType == "PARRY") and 1 or 0 + local dodge = (missType == "DODGE") and 1 or 0 + local resist = (missType == "RESIST" or missType == "IMMUNE") and 1 or 0 + local block = (missType == "BLOCK") and 1 or 0 + local absorb = (missType == "ABSORB") and 1 or 0 + DB:DamageDone(srcName, spellName, 0, 0, miss + absorb, parry, dodge, resist, 0, 0, block) + DB:DamageTaken(dstName, spellName, 0, 0, miss + absorb, parry, dodge, resist, 0, srcName, 0, block) + + elseif sub == "ENVIRONMENTAL_DAMAGE" then + local envType = arg6 + local amount = arg7 or 0 + DB:DamageTaken(dstName, envType or "Environment", 1, 0, 0, 0, 0, 0, amount, envType or "Environment", 0, 0) + DB:DeathHistory(dstName, envType or "Environment", envType or "Environment", amount, 1, 0, "hit", 0) + + elseif sub == "SPELL_HEAL" or sub == "SPELL_PERIODIC_HEAL" then + local spellName = arg7 or "Unknown" + local amount = arg9 or 0 + local overheal = arg10 or 0 + local critical = arg12 == 1 and 1 or 0 + local hit = critical == 0 and 1 or 0 + local effective = amount - overheal + if effective < 0 then effective = 0 end + DB:Healing(1, DPSMateHealingTaken, srcName, spellName, hit, critical, effective) + DB:Healing(2, DPSMateOverhealing, srcName, spellName, hit, critical, overheal) + DB:HealingTaken(1, DPSMateHealingTaken, srcName, spellName, hit, critical, effective, dstName) + DB:DeathHistory(dstName, srcName, spellName, effective, hit, critical, "heal", 0) + + elseif sub == "SPELL_AURA_APPLIED" then + local spellName = arg7 or "Unknown" + local auraType = arg9 + if auraType == "DEBUFF" then + DB:BuildBuffs(srcName, dstName, spellName, false) + if Parser.CC[spellName] then + DB:BuildActiveCC(dstName, spellName) + end + else + DB:BuildBuffs(srcName, dstName, spellName, true) + end + + elseif sub == "SPELL_AURA_REMOVED" then + local spellName = arg7 or "Unknown" + DB:DestroyBuffs(dstName, spellName) + if arg9 == "DEBUFF" then + DB:RemoveActiveCC(dstName, spellName) + end + + elseif sub == "SPELL_AURA_BROKEN_SPELL" or sub == "SPELL_AURA_BROKEN" then + local spellName = arg7 or "Unknown" + DB:RemoveActiveCC(dstName, spellName) + if Parser.CC[spellName] then + DB:CCBreaker(dstName, spellName, srcName) + end + + elseif sub == "SPELL_CAST_SUCCESS" then + local spellName = arg7 or "Unknown" + if Parser.Kicks and Parser.Kicks[spellName] then + DB:RegisterPotentialKick(srcName, spellName, GT()) + end + + elseif sub == "SPELL_INTERRUPT" then + local spellName = arg7 or "Unknown" + local extraSpellName = arg10 or "Unknown" + DB:Kick(srcName, dstName, spellName, extraSpellName) + + elseif sub == "SPELL_DISPEL" then + local spellName = arg7 or "Unknown" + local extraSpellName = arg10 or "Unknown" + if isGroupMember(srcName) then + DB:Dispels(srcName, spellName, dstName, extraSpellName) + end + + elseif sub == "UNIT_DIED" or sub == "UNIT_DESTROYED" then + DB:UnregisterDeath(dstName) + + elseif sub == "SPELL_SUMMON" then + if not Parser.petToOwnerMap then Parser.petToOwnerMap = {} end + if not Parser.petToOwnerMap[dstName] then Parser.petToOwnerMap[dstName] = {} end + Parser.petToOwnerMap[dstName][srcName] = true + end +end + +-- Set the measured wrapper as the actual handler +cleuFrame:SetScript("OnEvent", measuredCLEUHandler) + +-- ============================================================================ +-- Start in CLEU mode by default +-- ============================================================================ + +enableCLEU() diff --git a/src/dpslog/WeirdDPSMate/DPSMate_CombatPatterns.lua b/src/dpslog/WeirdDPSMate/DPSMate_CombatPatterns.lua new file mode 100644 index 0000000..b934ccd --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_CombatPatterns.lua @@ -0,0 +1,367 @@ +-- DPSMate_CombatPatterns.lua +-- Pattern-based combat log matching using WoW global format strings. +-- Automatically adapts to server-specific combat log format changes (e.g., TWoW). +-- Field mappings are auto-detected from format string context, not hardcoded. + +DPSMate.CombatPatterns = {} +local CP = DPSMate.CombatPatterns + +local strfind = string.find +local strsub = string.sub +local tonumber = tonumber +local tinsert = table.insert + +-- Convert a WoW format string (e.g., "You hit %s for %d.") to a Lua pattern +-- e.g., "You hit %s for %d." -> "^You hit (.+) for (%d+)%.$" +function CP:Sanitize(str) + if not str then return nil end + -- Replace format specifiers with placeholders before escaping + str = string.gsub(str, "%%s", "\001") + str = string.gsub(str, "%%d", "\002") + -- Escape Lua pattern magic characters + str = string.gsub(str, "([%(%)%.%%%+%-%*%?%[%]%^%$])", "%%%1") + -- Replace placeholders with capture groups + str = string.gsub(str, "\001", "(.+)") + str = string.gsub(str, "\002", "(%d+)") + return "^" .. str .. "$" +end + +-- Strip combat log trailers: (X absorbed), (blocked), (glancing), (crushing), (X resisted) +-- Returns: cleaned_msg, absorbed_amount, blocked(0/1), glancing(bool), crushing(bool) +function CP:StripTrailers(msg) + local absorbed, blocked, glancing, crushing = 0, 0, false, false + local i, j, amt + + i, j, amt = strfind(msg, " %((%d+) absorbed%)") + if i then absorbed = tonumber(amt); msg = strsub(msg, 1, i-1) .. strsub(msg, j+1) end + + i, j, amt = strfind(msg, " %((%d+) blocked%)") + if i then blocked = 1; msg = strsub(msg, 1, i-1) .. strsub(msg, j+1) end + if blocked == 0 then + i, j = strfind(msg, " %(blocked%)") + if i then blocked = 1; msg = strsub(msg, 1, i-1) .. strsub(msg, j+1) end + end + + i, j = strfind(msg, " %(glancing%)") + if i then glancing = true; msg = strsub(msg, 1, i-1) .. strsub(msg, j+1) end + + i, j = strfind(msg, " %(crushing%)") + if i then crushing = true; msg = strsub(msg, 1, i-1) .. strsub(msg, j+1) end + + -- Strip resisted trailer to prevent pattern mismatch + i, j = strfind(msg, " %((%d+) resisted%)") + if i then msg = strsub(msg, 1, i-1) .. strsub(msg, j+1) end + + return msg, absorbed, blocked, glancing, crushing +end + +-- Try matching a message against a list of pattern entries +-- Each entry: {pattern_string, hitType_string, {field=captureIndex, ...}} +-- Returns: hitType, result_table (with named fields) on match, or nil +function CP:TryMatch(msg, patterns) + if not patterns then return nil end + for _, entry in ipairs(patterns) do + local pattern = entry[1] + if pattern then + local c = {strfind(msg, pattern)} + if c[1] then + local result = {} + local fields = entry[3] + for field, idx in pairs(fields) do + result[field] = c[idx + 2] -- +2 to skip start/end positions + end + if result.amount then result.amount = tonumber(result.amount) end + return entry[2], result + end + end + end + return nil +end + +-- Auto-detect field names for each format specifier based on surrounding text context. +-- Returns a table mapping field_name -> capture_index, or nil if format is empty/invalid. +-- overrides: optional table mapping detected_name -> desired_name (e.g., {target="source"}) +function CP:DetectFields(fmt, overrides) + if not fmt then return nil end + + -- Parse specifiers and the text segments between them + local specs = {} + local n = 0 + local pos = 1 + while true do + local i, j, specType = strfind(fmt, "%%([sd])", pos) + if not i then break end + n = n + 1 + specs[n] = { + type = specType, + before = strsub(fmt, pos, i - 1), + } + pos = j + 1 + end + if n == 0 then return nil end + + -- Set "after" text for each spec (text between this spec and the next, or trailing) + for i = 1, n - 1 do + specs[i].after = specs[i + 1].before + end + specs[n].after = strsub(fmt, pos) + + -- Detect field name for each specifier based on surrounding text + local fields = {} + + for i = 1, n do + local s = specs[i] + local field + + if s.type == "d" then + field = "amount" + else + local before = s.before + local after = s.after + + -- Rule 1: After "Your/your " -> ability (e.g., "Your %s hits") + if strfind(before, "Your ?$") or strfind(before, "your ?$") then + field = "ability" + -- Rule 2: After "'s " -> ability (e.g., "Source's %s hits") + elseif strfind(before, "'s ?$") or strfind(before, "' s ?$") then + field = "ability" + -- Rule 3: Before "'s" -> source (e.g., "%s's Ability", "%s 's Ability") + elseif strfind(after, "^'s") or strfind(after, "^' s") or strfind(after, "^ 's") then + field = "source" + -- Rule 4: Before " damage" -> school (e.g., "%d %s damage") + elseif strfind(after, "^ damage") then + field = "school" + -- Rule 5: Before " suffers" -> target (e.g., "%s suffers %d") + elseif strfind(after, "^ suffers") then + field = "target" + -- Rule 6: Before action verbs -> source (e.g., "%s hits", "%s critically hits") + elseif strfind(after, "^ hits") or strfind(after, "^ crits") or + strfind(after, "^ misses") or strfind(after, "^ attacks") or + strfind(after, "^ reflects") or strfind(after, "^ critically") then + field = "source" + -- Rule 7: Before reaction verbs -> target (e.g., "%s parries", "%s is immune") + elseif strfind(after, "^ parries") or strfind(after, "^ dodges") or + strfind(after, "^ blocks") or strfind(after, "^ absorbs") or + strfind(after, "^ is immune") then + field = "target" + -- Rule 8: Before " for " -> target (e.g., "hits %s for %d") + elseif strfind(after, "^ for ") then + field = "target" + -- Rule 9: After " to " -> target (e.g., "damage to %s") + elseif strfind(before, " to ?$") then + field = "target" + -- Rule 10: After " by " -> target (e.g., "dodged by %s") + elseif strfind(before, " by ?$") then + field = "target" + -- Rule 11: After " from " -> source (e.g., "damage from %s") + elseif strfind(before, " from ?$") then + field = "source" + -- Rule 12: "You %s" -> target (e.g., "You miss %s") + elseif strfind(before, "^You %a+ ?$") then + field = "target" + -- Rule 13: End of message -> target (fallback for last %s) + elseif strfind(after, "^%.?$") then + field = "target" + else + field = "target" + end + end + + -- Apply overrides (e.g., env damage: detected "target" -> call it "source") + if overrides and overrides[field] then + field = overrides[field] + end + + fields[field] = i + end + + return fields +end + +-- Flag indicating patterns have been built +CP.ready = false + +-- Helper: add a pattern entry from a WoW global string name. +-- Field mappings are auto-detected from format string content. +-- overrides: optional table mapping detected_name -> desired_name +local function addP(tbl, globalName, hitType, overrides) + local str = getglobal(globalName) + if str then + local fields = CP:DetectFields(str, overrides) + if fields then + tinsert(tbl, {CP:Sanitize(str), hitType, fields}) + end + end +end + +-- Build all patterns from WoW globals. +-- MUST be called AFTER InitParser modifies the globals (adds space before 's). +function CP:BuildPatterns() + -- =================== SELF MELEE HITS =================== + -- "You hit Target for Amount [School damage]." + self.selfMeleeHit = {} + addP(self.selfMeleeHit, "COMBATHITCRITSCHOOLSELFOTHER", "crit") + addP(self.selfMeleeHit, "COMBATHITSCHOOLSELFOTHER", "hit") + addP(self.selfMeleeHit, "COMBATHITCRITSELFOTHER", "crit") + addP(self.selfMeleeHit, "COMBATHITSELFOTHER", "hit") + + -- =================== OTHER MELEE HITS =================== + -- "Source hits Target for Amount [School damage]." + self.otherMeleeHit = {} + addP(self.otherMeleeHit, "COMBATHITCRITSCHOOLOTHEROTHER", "crit") + addP(self.otherMeleeHit, "COMBATHITSCHOOLOTHEROTHER", "hit") + addP(self.otherMeleeHit, "COMBATHITCRITOTHEROTHER", "crit") + addP(self.otherMeleeHit, "COMBATHITOTHEROTHER", "hit") + + -- =================== SELF SPELL HITS =================== + -- "Your Ability hits Target for Amount [School damage]." + self.selfSpellHit = {} + addP(self.selfSpellHit, "SPELLLOGCRITSCHOOLSELFOTHER", "crit") + addP(self.selfSpellHit, "SPELLLOGSCHOOLSELFOTHER", "hit") + addP(self.selfSpellHit, "SPELLLOGCRITSELFOTHER", "crit") + addP(self.selfSpellHit, "SPELLLOGSELFOTHER", "hit") + addP(self.selfSpellHit, "SPELLLOGCRITSCHOOLSELFSELF", "crit") + addP(self.selfSpellHit, "SPELLLOGSCHOOLSELFSELF", "hit") + addP(self.selfSpellHit, "SPELLLOGCRITSELFSELF", "crit") + addP(self.selfSpellHit, "SPELLLOGSELFSELF", "hit") + + -- =================== OTHER SPELL HITS =================== + -- "Source's Ability hits Target for Amount [School damage]." + self.otherSpellHit = {} + addP(self.otherSpellHit, "SPELLLOGCRITSCHOOLOTHEROTHER", "crit") + addP(self.otherSpellHit, "SPELLLOGSCHOOLOTHEROTHER", "hit") + addP(self.otherSpellHit, "SPELLLOGCRITOTHEROTHER", "crit") + addP(self.otherSpellHit, "SPELLLOGOTHEROTHER", "hit") + + -- =================== PERIODIC DAMAGE =================== + -- "Target suffers Amount School damage from Source's Ability." + self.periodicDmg = {} + addP(self.periodicDmg, "PERIODICAURADAMAGEOTHEROTHER", "dot") + addP(self.periodicDmg, "PERIODICAURADAMAGESELFOTHER", "dot") + addP(self.periodicDmg, "PERIODICAURADAMAGEOTHERSELF", "dot") + addP(self.periodicDmg, "PERIODICAURADAMAGESELFSELF", "dot") + + -- =================== DAMAGE SHIELDS =================== + self.dmgShield = {} + addP(self.dmgShield, "DAMAGESHIELDSELFOTHER", "shield") + addP(self.dmgShield, "DAMAGESHIELDOTHERSELF", "shield") + addP(self.dmgShield, "DAMAGESHIELDOTHEROTHER", "shield") + + -- =================== ENVIRONMENTAL DAMAGE =================== + -- Entity "suffering" env damage is called "source" in the data model + local envOverride = {target = "source"} + + self.envDmgSelf = {} + addP(self.envDmgSelf, "VSENVIRONMENTALDAMAGE_FALLING_SELF", "falling") + addP(self.envDmgSelf, "VSENVIRONMENTALDAMAGE_DROWNING_SELF", "drowning") + addP(self.envDmgSelf, "VSENVIRONMENTALDAMAGE_LAVA_SELF", "lava") + addP(self.envDmgSelf, "VSENVIRONMENTALDAMAGE_SLIME_SELF", "slime") + addP(self.envDmgSelf, "VSENVIRONMENTALDAMAGE_FIRE_SELF", "fire") + addP(self.envDmgSelf, "VSENVIRONMENTALDAMAGE_FATIGUE_SELF", "fatigue") + + self.envDmgOther = {} + addP(self.envDmgOther, "VSENVIRONMENTALDAMAGE_FALLING_OTHER", "falling", envOverride) + addP(self.envDmgOther, "VSENVIRONMENTALDAMAGE_DROWNING_OTHER", "drowning", envOverride) + addP(self.envDmgOther, "VSENVIRONMENTALDAMAGE_LAVA_OTHER", "lava", envOverride) + addP(self.envDmgOther, "VSENVIRONMENTALDAMAGE_SLIME_OTHER", "slime", envOverride) + addP(self.envDmgOther, "VSENVIRONMENTALDAMAGE_FIRE_OTHER", "fire", envOverride) + addP(self.envDmgOther, "VSENVIRONMENTALDAMAGE_FATIGUE_OTHER", "fatigue", envOverride) + + -- =================== SELF SPELL MISSES =================== + self.selfSpellMiss = {} + addP(self.selfSpellMiss, "SPELLMISSSELFOTHER", "miss") + addP(self.selfSpellMiss, "SPELLRESISTSELFOTHER", "resist") + addP(self.selfSpellMiss, "SPELLPARRIEDSELFOTHER", "parry") + addP(self.selfSpellMiss, "SPELLDODGEDSELFOTHER", "dodge") + addP(self.selfSpellMiss, "SPELLLOGABSORBSELFOTHER", "absorb") + addP(self.selfSpellMiss, "SPELLBLOCKEDSELFOTHER", "block") + addP(self.selfSpellMiss, "SPELLIMMUNESELFOTHER", "immune") + + -- =================== OTHER SPELL MISSES =================== + self.otherSpellMiss = {} + addP(self.otherSpellMiss, "SPELLMISSOTHEROTHER", "miss") + addP(self.otherSpellMiss, "SPELLRESISTOTHEROTHER", "resist") + addP(self.otherSpellMiss, "SPELLPARRIEDOTHEROTHER", "parry") + addP(self.otherSpellMiss, "SPELLDODGEDOTHEROTHER", "dodge") + addP(self.otherSpellMiss, "SPELLLOGABSORBOTHEROTHER", "absorb") + addP(self.otherSpellMiss, "SPELLBLOCKEDOTHEROTHER", "block") + addP(self.otherSpellMiss, "SPELLIMMUNEOTHEROTHER", "immune") + addP(self.otherSpellMiss, "SPELLEVADEDOTHEROTHER", "evade") + + -- =================== SELF MELEE MISSES =================== + self.selfMeleeMiss = {} + addP(self.selfMeleeMiss, "MISSEDSELFOTHER", "miss") + addP(self.selfMeleeMiss, "VSPARRYSELFOTHER", "parry") + addP(self.selfMeleeMiss, "VSDODGESELFOTHER", "dodge") + addP(self.selfMeleeMiss, "VSBLOCKSELFOTHER", "block") + addP(self.selfMeleeMiss, "VSABSORBSELFOTHER", "absorb") + + -- =================== OTHER MELEE MISSES =================== + self.otherMeleeMiss = {} + addP(self.otherMeleeMiss, "MISSEDOTHEROTHER", "miss") + addP(self.otherMeleeMiss, "VSPARRYOTHEROTHER", "parry") + addP(self.otherMeleeMiss, "VSDODGEOTHEROTHER", "dodge") + addP(self.otherMeleeMiss, "VSBLOCKOTHEROTHER", "block") + addP(self.otherMeleeMiss, "VSABSORBOTHEROTHER", "absorb") + + self.ready = true +end + +-- Debug: dump all detected patterns and their field mappings to chat. +-- Usage in-game: /script DPSMate.CombatPatterns:DebugDump() +function CP:DebugDump() + local function dump(name, tbl) + if not tbl or not tbl[1] then return end + DEFAULT_CHAT_FRAME:AddMessage("|cFF00FF00=== " .. name .. " ===|r") + for i, entry in ipairs(tbl) do + local hitType = entry[2] or "nil" + local fields = entry[3] + local fieldStr = "" + if fields then + for k, v in pairs(fields) do + if fieldStr ~= "" then fieldStr = fieldStr .. ", " end + fieldStr = fieldStr .. k .. "=" .. v + end + end + DEFAULT_CHAT_FRAME:AddMessage(" " .. hitType .. ": {" .. fieldStr .. "}") + end + end + + DEFAULT_CHAT_FRAME:AddMessage("|cFFFFFF00--- CombatPatterns Debug Dump ---|r") + dump("selfMeleeHit", self.selfMeleeHit) + dump("otherMeleeHit", self.otherMeleeHit) + dump("selfSpellHit", self.selfSpellHit) + dump("otherSpellHit", self.otherSpellHit) + dump("periodicDmg", self.periodicDmg) + dump("dmgShield", self.dmgShield) + dump("envDmgSelf", self.envDmgSelf) + dump("envDmgOther", self.envDmgOther) + dump("selfSpellMiss", self.selfSpellMiss) + dump("otherSpellMiss", self.otherSpellMiss) + dump("selfMeleeMiss", self.selfMeleeMiss) + dump("otherMeleeMiss", self.otherMeleeMiss) + DEFAULT_CHAT_FRAME:AddMessage("|cFF00FF00CP.ready = " .. tostring(self.ready) .. "|r") +end + +-- Debug: test auto-detection on a specific WoW global and show the result. +-- Usage: /script DPSMate.CombatPatterns:DebugGlobal("PERIODICAURADAMAGEOTHERSELF") +function CP:DebugGlobal(globalName, overrides) + local str = getglobal(globalName) + if not str then + DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000" .. globalName .. " = nil|r") + return + end + DEFAULT_CHAT_FRAME:AddMessage("|cFFFFFF00" .. globalName .. "|r = \"" .. str .. "\"") + local fields = self:DetectFields(str, overrides) + if fields then + local fieldStr = "" + for k, v in pairs(fields) do + if fieldStr ~= "" then fieldStr = fieldStr .. ", " end + fieldStr = fieldStr .. k .. "=" .. v + end + DEFAULT_CHAT_FRAME:AddMessage(" Fields: {" .. fieldStr .. "}") + else + DEFAULT_CHAT_FRAME:AddMessage(" |cFFFF0000No fields detected|r") + end + DEFAULT_CHAT_FRAME:AddMessage(" Pattern: " .. (self:Sanitize(str) or "nil")) +end diff --git a/src/dpslog/WeirdDPSMate/DPSMate_DataBuilder.lua b/src/dpslog/WeirdDPSMate/DPSMate_DataBuilder.lua new file mode 100644 index 0000000..7b111dc --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_DataBuilder.lua @@ -0,0 +1,2631 @@ +-- Events +DPSMate.DB:RegisterEvent("VARIABLES_LOADED") +DPSMate.DB:RegisterEvent("PLAYER_LOGIN") +DPSMate.DB:RegisterEvent("PLAYER_REGEN_DISABLED") +DPSMate.DB:RegisterEvent("PLAYER_REGEN_ENABLED") +DPSMate.DB:RegisterEvent("PLAYER_AURAS_CHANGED") +DPSMate.DB:RegisterEvent("PLAYER_TARGET_CHANGED") +DPSMate.DB:RegisterEvent("PLAYER_PET_CHANGED") +DPSMate.DB:RegisterEvent("PET_STABLE_CLOSED") +DPSMate.DB:RegisterEvent("ZONE_CHANGED_NEW_AREA") +DPSMate.DB:RegisterEvent("PARTY_MEMBERS_CHANGED") +DPSMate.DB:RegisterEvent("RAID_ROSTER_UPDATE") +DPSMate.DB:RegisterEvent("PLAYER_ENTERING_WORLD") + +-- Global Variables +DPSMate.DB.loaded = false +DPSMate.DB.ShieldFlags = { + ["Power Word: Shield"] = 0, -- All + ["Ice Barrier"] = 0, -- All + ["The Burrower's Shell"] = 0, -- All + ["Aura of Protection"] = 0, -- All + ["Damage Absorb"] = 0, -- All + ["Physical Protection"] = 1, -- Meele + ["Harm Prevention Belt"] = 0, -- All + ["Mana Shield"] = 1, -- Meele + ["Frost Protection"] = 2, -- Frost + ["Frost Resistance"] = 2, -- Frost + ["Frost Ward"] = 2, -- Frost + ["Fire Protection"] = 3, -- Fire + ["Fire Ward"] = 3, -- Fire + ["Nature Protection"] = 4, -- Nature + ["Shadow Protection"] = 5, -- Shadow + ["Arcane Protection"] = 6, -- Arcane + ["Holy Protection"] = 7, -- Holy +} +DPSMate.DB.FixedShieldAmounts = { + ["Power Word: Shield"] = 1000, -- All + ["Ice Barrier"] = 818, -- All + ["The Burrower's Shell"] = 900, -- All + ["Aura of Protection"] = 1000, -- All + ["Damage Absorb"] = 550, -- All + ["Physical Protection"] = 500, -- Meele + ["Harm Prevention Belt"] = 500, -- All + ["Mana Shield"] = 570, -- Meele + ["Frost Protection"] = 2500, -- Frost + ["Frost Resistance"] = 600, -- Frost + ["Frost Ward"] = 920, -- Frost + ["Fire Protection"] = 2500, -- Fire + ["Fire Ward"] = 920, -- Fire + ["Nature Protection"] = 2500, -- Nature + ["Shadow Protection"] = 2500, -- Shadow + ["Arcane Protection"] = 2500, -- Arcane + ["Holy Protection"] = 2500, -- Holy +} +local AbilityFlags = { + ["fire"] = 3, + ["holy"] = 7, + ["arcane"] = 6, + ["shadow"] = 5, + ["nature"] = 4, + ["frost"] = 2, + ["physical"] = 1, + + ["feuer"] = 3, + ["heilig"] = 7, + ["arkan"] = 6, + ["schatten"] = 5, + ["natur"] = 4, + ["frost"] = 2, + ["physisch"] = 1, + + ["火焰"] = 3, + ["神圣"] = 7, + ["奥术"] = 6, + ["暗影"] = 5, + ["自然"] = 4, + ["冰霜"] = 2, + ["物理"] = 1, + + ["ombre"] = 5, + ["feu"] = 3, + ["nature"] = 4, + ["givre"] = 2, + ["arcane"] = 6, + ["sacré"] = 7, + ["d'ombre"] = 5, + ["d'feu"] = 3, + ["d'nature"] = 4, + ["d'givre"] = 2, + ["d'arcane"] = 6, + ["d'sacré"] = 7, + ["de ombre"] = 5, + ["de feu"] = 3, + ["de givre"] = 2, + ["de nature"] = 4, + ["de arcane"] = 6, + ["de sacré"] = 7, + ["physique"] = 1, + ["d'physique"] = 1, + ["de physique"] = 1, + + ["огонь"] = 3, + ["обычный"] = 7, + ["тайная магия"] = 6, + ["тьма"] = 5, + ["природа"] = 4, + ["лед"] = 2, + ["физический урон"] = 1, +} +local NeedUpdate = false +DPSMate.DB.UserData = {} +DPSMate.DB.MainUpdate = 0 +DPSMate.DB.Zones = { + [DPSMate.L["mc"]] = true, + [DPSMate.L["bwl"]] = true, + [DPSMate.L["ony"]] = true, + [DPSMate.L["zg"]] = true, + [DPSMate.L["aq401"]] = true, + [DPSMate.L["aq20"]] = true, + [DPSMate.L["aq402"]] = true, + [DPSMate.L["naxx"]] = true, + [DPSMate.L["azs"]] = true, -- Azuregos + [DPSMate.L["bl"]] = true, -- Kazzak + [DPSMate.L["dw"]] = true, -- Emerald dragons, not sure if those zone names are correct. + [DPSMate.L["hintl"]] = true, + [DPSMate.L["ash"]] = true, + [DPSMate.L["fe"]] = true +} +local NextSwing = {} +local NextSwingEDD = {} +DPSMate.DB.precision = 1.0 +DPSMate.DB.userlen = 0 +DPSMate.DB.abilitylen = 0 + +-- Local Variables +local CombatState = false +local combatStartTime = 0 +local cheatCombat = 0 +local UpdateTime = 0.125 +local LastUpdate = 0 +local MainLastUpdate = 0 +local MainUpdateTime = 1.5 +local tinsert = table.insert +local tremove = table.remove +local _G = getglobal +local player = "" +local GT = GetTime +local strfind = string.find +local UL = UnitLevel +local strlower = strlower +local strformat = string.format +local UnitClass = UnitClass +local GetGuildInfo = GetGuildInfo +local GetRaidRosterInfo = GetRaidRosterInfo +local GetRealZoneText = GetRealZoneText +local GetNumPartyMembers = GetNumPartyMembers +local GetNumRaidMembers = GetNumRaidMembers +local GetGameTime = GetGameTime +local UnitName = UnitName +local UnitFactionGroup = UnitFactionGroup +local UnitAffectingCombat = UnitAffectingCombat +local UnitIsPlayer = UnitIsPlayer +local UnitIsDead = UnitIsDead +local UnitBuff = UnitBuff +local UnitInRaid = UnitInRaid +local pairs = pairs +local floor = floor +local UnitIsConnected = UnitIsConnected +local time, path, gen +local SendAddonMessage = function(prio, prefix, text, chattype) + ChatThrottleLib:SendAddonMessage(prio, prefix, text, chattype) +end + +local CBTCache = {[1] = 0, [2] = 0} +local pendingGroupUpdateTime = nil -- scheduled delayed OnGroupUpdate retry + +local DPSCBT = {} +local DPSEDD = {} +local DPSEDT = {} +local DPSCCBreaker = {} +local DPSDMG = {} +local DPSFail = {} +local DPSDeath = {} +local DPSUser = {} +local DPSAbility = {} +local DPSDMGTaken = {} +local DPSHeal = {} +local DPSEHeal = {} +local DPSOHeal = {} +local DPSHealTaken = {} +local DPSEHealTaken = {} +local DPSOHealTaken = {} +local DPSThreat = {} +local DPSAbsorb = {} +local DPSDispel = {} +local DPSInterrupt = {} +local DPSAurasGained = {} + +DPSMate.DB.windfuryab = { + ["Windfury Weapon"] = true, + ["Windfury Totem"] = true, +} +local playerfaction = UnitFactionGroup("player") +local tablemodes = {"total","current"} + +if not GameTime_GT then + GameTime_GT = function() + local hour, minutes = GetGameTime() + local suffix = "AM" + if hour >= 12 then + suffix = "PM" + end + hour = mod(hour, 12) + if hour == 0 then + hour = 12 + end + if minutes<10 then + return hour..":0"..minutes.." "..suffix + else + return hour..":"..minutes.." "..suffix + end + end +end + +-- Begin Functions + +DPSMate.DB.VARIABLES_LOADED = function() + if not this.loaded then + if DPSMateSettings == nil then + DPSMateSettings = { + windows = { + [1] = { + name = "DPSMate", + options = { + [1] = { + damage = true + }, + [2] = { + total = true + } + }, + CurMode = "damage", + hidden = false, + scale = 1, + barfont = "FRIZQT", + barfontsize = 13, + barfontflag = "Outline", + bartexture = "Minimalist", + barspacing = 1, + barheight = 17, + classicons = true, + ranks = true, + titlebar = true, + titlebarfont = "FRIZQT", + titlebarfontflag = "None", + titlebarfontsize = 12, + titlebarheight = 17, + titlebarreport = true, + titlebarreset = true, + titlebarsegments = true, + titlebarconfig = true, + titlebarsync = true, + titlebarenable = true, + titlebarfilter = true, + titlebartexture = "Minimalist", + titlebarbgcolor = {0.1568627450980392,0.1725490196078431,0.1647058823529412}, + titlebarfontcolor = {1.0,0.82,0.0}, + barfontcolor = {1.0,1.0,1.0}, + contentbgtexture = "UI-Tooltip-Background", + contentbgcolor = {0.01568627450980392,0,1}, + bgbarcolor = {1,1,1}, + numberformat = 1, + opacity = 1, + bgopacity = 0, + titlebaropacity = 1, + filterclasses = { + warrior = true, + rogue = true, + priest = true, + hunter = true, + mage = true, + warlock = true, + paladin = true, + shaman = true, + druid = true, + }, + filterpeople = "", + grouponly = true, + realtime = false, + cbtdisplay = false, + barbg = false, + totopacity = 1.0, + borderopacity = 1.0, + contentbordercolor = {0,0,0}, + borderstrata = 1, + bordertexture = "UI-Tooltip-Border", + position = {"CENTER",0,0}, + savsize = {150,100}, + } + }, + lock = false, + sync = true, + enable = true, + dataresetsworld = 2, + dataresetsjoinparty = 2, + dataresetsleaveparty = 2, + dataresetspartyamount = 2, + dataresetssync = 3, + dataresetslogout = 2, + showminimapbutton = true, + showtotals = true, + hidewhensolo = false, + hideincombat = false, + hideinpvp = false, + disablewhilehidden = false, + datasegments = 8, + mergepets = true, + columnsdps = { + [1] = false, + [2] = true, + [3] = true, + [4] = false + }, + columnsdmg = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsdmgtaken = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsdtps = { + [1] = false, + [2] = true, + [3] = true, + [4] = false + }, + columnsedd = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsedt = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnshealing = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnshealingtaken = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnshps = { + [1] = false, + [2] = true, + [3] = true, + [4] = false + }, + columnsohps = { + [1] = false, + [2] = true, + [3] = true, + [4] = false + }, + columnsoverhealing = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsohealingtaken = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsehealing = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsehealingtaken = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsehps = { + [1] = false, + [2] = true, + [3] = true, + [4] = false + }, + columnsabsorbs = { + [1] = true, + [2] = true, + [3] = false, + [4] = false + }, + columnsabsorbstaken = { + [1] = true, + [2] = true, + [3] = false, + [4] = false + }, + columnshab = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsdeaths = { + [1] = true, + [2] = true, + }, + columnsinterrupts = { + [1] = true, + [2] = true, + }, + columnsdispels = { + [1] = true, + [2] = true, + }, + columnsdispelsreceived = { + [1] = true, + [2] = true, + }, + columnsdecurses = { + [1] = true, + [2] = true, + }, + columnsdecursesreceived = { + [1] = true, + [2] = true, + }, + columnsdisease = { + [1] = true, + [2] = true, + }, + columnsdiseasereceived = { + [1] = true, + [2] = true, + }, + columnspoison = { + [1] = true, + [2] = true, + }, + columnspoisonreceived = { + [1] = true, + [2] = true, + }, + columnsmagic = { + [1] = true, + [2] = true, + }, + columnsmagicreceived = { + [1] = true, + [2] = true, + }, + columnsaurasgained = { + [1] = true, + [2] = true, + }, + columnsauraslost = { + [1] = true, + [2] = true, + }, + columnsaurauptime = { + [1] = true, + [2] = true, + }, + columnsprocs = { + [1] = true, + [2] = true, + }, + columnscasts = { + [1] = true, + [2] = true, + }, + columnsthreat = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnstps = { + [1] = false, + [2] = true, + [3] = true, + [4] = false + }, + columnsfails = { + [1] = true, + [2] = true, + }, + columnsccbreaker = { + [1] = true, + [2] = true, + }, + columnsfriendlyfire = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + columnsfriendlyfiretaken = { + [1] = true, + [2] = false, + [3] = true, + [4] = false + }, + showtooltips = true, + informativetooltips = true, + subviewrows = 4, + tooltipanchor = 5, + onlybossfights = true, + hiddenmodes = {}, + broadcasting = false, + bccd = false, + bcress = false, + bckb = false, + bcfail = false, + bcrw = false, + targetscale=0.58, + mainupdatetime = 1.5, + hideonlogin = false, + reportdelay = false + } + end + DPSMateHistory = { + names={}, timestamps={}, + DMGDone={}, DMGTaken={}, EDDone={}, EDTaken={}, + THealing={}, EHealing={}, OHealing={}, + EHealingTaken={}, THealingTaken={}, OHealingTaken={}, + Absorbs={}, Deaths={}, Interrupts={}, Dispels={}, + Auras={}, Threat={}, Fail={}, CCBreaker={}, + } + DPSMateUser = {} + DPSMateAbility = {} + DPSMateDamageDone = {[1]={},[2]={}} + DPSMateDamageTaken = {[1]={},[2]={}} + DPSMateEDD = {[1]={},[2]={}} + DPSMateEDT = {[1]={},[2]={}} + DPSMateTHealing = {[1]={},[2]={}} + DPSMateEHealing = {[1]={},[2]={}} + DPSMateOverhealing = {[1]={},[2]={}} + DPSMateHealingTaken = {[1]={},[2]={}} + DPSMateEHealingTaken = {[1]={},[2]={}} + DPSMateOverhealingTaken = {[1]={},[2]={}} + DPSMateAbsorbs = {[1]={},[2]={}} + DPSMateDispels = {[1]={},[2]={}} + DPSMateDeaths = {[1]={},[2]={}} + DPSMateInterrupts = {[1]={},[2]={}} + DPSMateAurasGained = {[1]={},[2]={}} + DPSMateThreat = {[1]={},[2]={}} + DPSMateFails = {[1]={},[2]={}} + DPSMateCCBreaker = {[1]={},[2]={}} + + if DPSMate.Modules.DPS then DPSMate.Modules.DPS.DB = DPSMateDamageDone end + if DPSMate.Modules.Damage then DPSMate.Modules.Damage.DB = DPSMateDamageDone end + if DPSMate.Modules.DamageTaken then DPSMate.Modules.DamageTaken.DB = DPSMateDamageTaken end + if DPSMate.Modules.DTPS then DPSMate.Modules.DTPS.DB = DPSMateDamageTaken end + if DPSMate.Modules.EDD then DPSMate.Modules.EDD.DB = DPSMateEDD end + if DPSMate.Modules.EDT then DPSMate.Modules.EDT.DB = DPSMateEDT end + if DPSMate.Modules.FriendlyFire then DPSMate.Modules.FriendlyFire.DB = DPSMateEDT end + if DPSMate.Modules.FriendlyFireTaken then DPSMate.Modules.FriendlyFireTaken.DB = DPSMateEDT end + if DPSMate.Modules.Healing then DPSMate.Modules.Healing.DB = DPSMateTHealing end + if DPSMate.Modules.HPS then DPSMate.Modules.HPS.DB = DPSMateTHealing end + if DPSMate.Modules.Overhealing then DPSMate.Modules.Overhealing.DB = DPSMateOverhealing end + if DPSMate.Modules.EffectiveHealing then DPSMate.Modules.EffectiveHealing.DB = DPSMateEHealing end + if DPSMate.Modules.EffectiveHPS then DPSMate.Modules.EffectiveHPS.DB = DPSMateEHealing end + if DPSMate.Modules.HealingTaken then DPSMate.Modules.HealingTaken.DB = DPSMateHealingTaken end + if DPSMate.Modules.EffectiveHealingTaken then DPSMate.Modules.EffectiveHealingTaken.DB = DPSMateEHealingTaken end + if DPSMate.Modules.Absorbs then DPSMate.Modules.Absorbs.DB = DPSMateAbsorbs end + if DPSMate.Modules.AbsorbsTaken then DPSMate.Modules.AbsorbsTaken.DB = DPSMateAbsorbs end + if DPSMate.Modules.HealingAndAbsorbs then DPSMate.Modules.HealingAndAbsorbs.DB = DPSMateAbsorbs end + if DPSMate.Modules.Deaths then DPSMate.Modules.Deaths.DB = DPSMateDeaths end + if DPSMate.Modules.Dispels then DPSMate.Modules.Dispels.DB = DPSMateDispels end + if DPSMate.Modules.DispelsReceived then DPSMate.Modules.DispelsReceived.DB = DPSMateDispels end + if DPSMate.Modules.Decurses then DPSMate.Modules.Decurses.DB = DPSMateDispels end + if DPSMate.Modules.DecursesReceived then DPSMate.Modules.DecursesReceived.DB = DPSMateDispels end + if DPSMate.Modules.CureDisease then DPSMate.Modules.CureDisease.DB = DPSMateDispels end + if DPSMate.Modules.CureDiseaseReceived then DPSMate.Modules.CureDiseaseReceived.DB = DPSMateDispels end + if DPSMate.Modules.CurePoison then DPSMate.Modules.CurePoison.DB = DPSMateDispels end + if DPSMate.Modules.CurePoisonReceived then DPSMate.Modules.CurePoisonReceived.DB = DPSMateDispels end + if DPSMate.Modules.LiftMagic then DPSMate.Modules.LiftMagic.DB = DPSMateDispels end + if DPSMate.Modules.LiftMagicReceived then DPSMate.Modules.LiftMagicReceived.DB = DPSMateDispels end + if DPSMate.Modules.Interrupts then DPSMate.Modules.Interrupts.DB = DPSMateInterrupts end + if DPSMate.Modules.AurasGained then DPSMate.Modules.AurasGained.DB = DPSMateAurasGained end + if DPSMate.Modules.AurasLost then DPSMate.Modules.AurasLost.DB = DPSMateAurasGained end + if DPSMate.Modules.AurasUptimers then DPSMate.Modules.AurasUptimers.DB = DPSMateAurasGained end + if DPSMate.Modules.Procs then DPSMate.Modules.Procs.DB = DPSMateAurasGained end + if DPSMate.Modules.Casts then DPSMate.Modules.Casts.DB = DPSMateEDT end + if DPSMate.Modules.Threat then DPSMate.Modules.Threat.DB = DPSMateThreat end + if DPSMate.Modules.TPS then DPSMate.Modules.TPS.DB = DPSMateThreat end + if DPSMate.Modules.Fails then DPSMate.Modules.Fails.DB = DPSMateFails end + if DPSMate.Modules.CCBreaker then DPSMate.Modules.CCBreaker.DB = DPSMateCCBreaker end + if DPSMate.Modules.OHPS then DPSMate.Modules.OHPS.DB = DPSMateOverhealing end + if DPSMate.Modules.OHealingTaken then DPSMate.Modules.OHealingTaken.DB = DPSMateOverhealingTaken end + if DPSMate.Modules.Activity then DPSMate.Modules.Activity.DB = DPSMateCombatTime end + if DPSMate.Modules.Debug then DPSMate.Debug = DPSMate.Modules.Debug end + DPSMate.ShowMsg = false + + if DPSMateCombatTime == nil then + DPSMateCombatTime = { + total = 0.0001, + current = 0.0001, + segments = {}, + effective = { + [1] = {}, + [2] = {} + }, + } + end + + DPSMate:OnLoad() + DPSMate.Options:InitializeSegments() + DPSMate.Options:InitializeHideShowWindow() + + this.userlen = 1 + this.abilitylen = 1 + + DPSMate.Sync:OnLoad() + + player = UnitName("player") + + local frames = {"", "_Absorbs", "_AbsorbsTaken", "_Auras", "_Casts", "_CCBreaker", "_CureDisease", "_CureDiseaseReceived", "_CurePoison", "_CurePoisonReceived", "_DamageTaken", "_DamageTakenTotal", "_DamageTotal", "_Deaths", "_Decurses", "_DecursesReceived", "_Dispels", "_DispelsReceived", "_EDD", "_EDT", "_EHealing", "_EHealingTaken", "_Fails", "_FF", "_FFT", "_Healing", "_HealingTaken", "_Interrupts", "_LiftMagic", "_LiftMagicReceived", "_OHealingTaken", "_Overhealing", "_Procs", "_AbsorbsTakenTotal", "_AbsorbsTotal", "_AurasTotal", "_CastsTotal", "_CCBreakerTotal", "_CureDisease_Total", "_CurePoison_Total", "_Deaths_Total", "_Decurses_Total", "_Dispels_Total", "_EDDTotal", "_EDTTotal", "_EHealingTakenTotal", "_EHealingTotal", "_FailsTotal", "_FFTotal", "_FFTTotal", "_HABTotal", "_HealingTakenTotal", "_HealingTotal", "_Interrupts_Total", "_LiftMagic_Total", "_OverhealingTakenTotal", "_OverhealingTotal", "_ProcsTotal"} + for cat, val in pairs(frames) do + if _G("DPSMate_Details"..val) then + _G("DPSMate_Details"..val):SetToplevel(true) + end + end + -- Saving pointer locally to reduce global lookup overhead + this:UpdatePointer(); + + DPSMate.Parser:OnLoad() + this:OnGroupUpdate() + DPSMate:SetStatusBarValue() + this.NeedUpdate = true + DPSMate.Sync:RegisterEvent("CHAT_MSG_ADDON") + DPSMate.Sync:RegisterEvent("UPDATE_MOUSEOVER_UNIT") + DPSMate.Sync:SetScript("OnEvent", function() this[event](arg1,arg2,arg3,arg4) end) + DPSMate.Sync:SetScript("OnUpdate", function() this:OnUpdate() end) + DPSMate.Options:SetScript("OnEvent", function() this[event]() end) + DPSMate.Options:SetScript("OnUpdate", function() this:OnUpdate() end) + + DPSMate:SendMessage("DPSMate build "..DPSMate.VERSION.." has been loaded!") + DPSMate:SendMessage("This is a remastered build, consider it the last one. I have focused on reducing the complexity in this update and fix the remaining bugs!") + DPSMate:SendMessage("If anyone is interested in further fixing this addon, adding features etc. feel free to make a pull request in the repo!") + -- DPSMate:SendMessage("") + this.loaded = true + DPSMate.Options.PLAYER_ENTERING_WORLD() + + + end +end + +function DPSMate.DB:UpdatePointer() + DPSCBT = DPSMateCombatTime + DPSEDD = DPSMateEDD + DPSEDT = DPSMateEDT + DPSCCBreaker = DPSMateCCBreaker + DPSDMG = DPSMateDamageDone + DPSFail = DPSMateFails + DPSDeath = DPSMateDeaths + DPSUser = DPSMateUser + DPSAbility = DPSMateAbility + DPSDMGTaken = DPSMateDamageTaken + DPSHeal = DPSMateTHealing + DPSEHeal = DPSMateEHealing + DPSOHeal = DPSMateOverhealing + DPSHealTaken = DPSMateHealingTaken + DPSEHealTaken = DPSMateEHealingTaken + DPSOHealTaken = DPSMateOverhealingTaken + DPSThreat = DPSMateThreat + DPSAbsorb = DPSMateAbsorbs + DPSDispel = DPSMateDispels + DPSInterrupt = DPSMateInterrupts + DPSAurasGained = DPSMateAurasGained + + CBTCache = {0,0} +end + +DPSMate.DB.PLAYER_LOGIN = function() + if GetCVar("CombatLogPeriodicSpells") then + SetCVar("CombatLogPeriodicSpells", 1) + else + RegisterCVar("CombatLogPeriodicSpells", 1) + end + if GetCVar("CombatLogRangeParty") then + SetCVar("CombatLogRangeParty", 200) + else + RegisterCVar("CombatLogRangeParty", 200) + end + if GetCVar("CombatLogRangePartyPet") then + SetCVar("CombatLogRangePartyPet", 200) + else + RegisterCVar("CombatLogRangePartyPet", 200) + end + if GetCVar("CombatLogRangeFriendlyPlayers") then + SetCVar("CombatLogRangeFriendlyPlayers", 200) + else + RegisterCVar("CombatLogRangeFriendlyPlayers", 200) + end + if GetCVar("CombatLogRangeFriendlyPlayersPets") then + SetCVar("CombatLogRangeFriendlyPlayersPets", 200) + else + RegisterCVar("CombatLogRangeFriendlyPlayersPets", 200) + end + if GetCVar("CombatLogRangeHostilePlayers") then + SetCVar("CombatLogRangeHostilePlayers", 200) + else + RegisterCVar("CombatLogRangeHostilePlayers", 200) + end + if GetCVar("CombatLogRangeHostilePlayersPets") then + SetCVar("CombatLogRangeHostilePlayersPets", 200) + else + RegisterCVar("CombatLogRangeHostilePlayersPets", 200) + end + if GetCVar("CombatLogRangeCreature") then + SetCVar("CombatLogRangeCreature", 200) + else + RegisterCVar("CombatLogRangeCreature", 200) + end + if GetCVar("CombatDeathLogRange") then + SetCVar("CombatDeathLogRange", 200) + else + RegisterCVar("CombatDeathLogRange", 200) + end +end + +DPSMate.DB.PLAYER_REGEN_DISABLED = function() + if DPSMateSettings["hideincombat"] then + for _, val in pairs(DPSMateSettings["windows"]) do + if not val then break end + _G("DPSMate_"..val["name"]):Hide() + end + if DPSMateSettings["disablewhilehidden"] then + DPSMate:Disable() + end + end + DPSMate.Options:HideWhenSolo() + if (not CombatState and cheatCombat0 then + DPSMateUser[name][8] = level + end + if DPSMateUser[name][4] then + DPSMateUser[name][4] = false + DPSMateUser[name][5] = "" + end + if pet and pet ~= DPSMate.L["unknown"] and pet ~= "" then + local petKey = pet .. " (" .. name .. ")" + this:BuildUser(petKey, nil) + -- BuildUser with qualified name already sets [4], [6], [5] + end + if pet and DPSMate.Parser.TargetParty[pet] then + local petKey = pet .. " (" .. name .. ")" + if DPSMateUser[petKey] then + DPSMateUser[petKey][4] = false + DPSMateUser[petKey][6] = "" + end + DPSMateUser[name][5] = "" + end + end +end + +DPSMate.DB.PLAYER_PET_CHANGED = function() + this:OnGroupUpdate() +end + +DPSMate.DB.PET_STABLE_CLOSED = function() + this:OnGroupUpdate() +end + +DPSMate.DB.ZONE_CHANGED_NEW_AREA = function() + this:OnGroupUpdate() +end + +DPSMate.DB.PARTY_MEMBERS_CHANGED = function() + this:OnGroupUpdate() + -- UnitName may return nil immediately after the event; retry after a short delay. + pendingGroupUpdateTime = GT() + 2 +end + +DPSMate.DB.RAID_ROSTER_UPDATE = function() + this:OnGroupUpdate() + pendingGroupUpdateTime = GT() + 2 +end + +DPSMate.DB.PLAYER_ENTERING_WORLD = function() + -- Roster data is fully available here (unlike VARIABLES_LOADED / PLAYER_LOGIN). + if this.loaded then + this:OnGroupUpdate() + end +end + +function DPSMate.DB:OnGroupUpdate() + if not self.loaded then return end + local type = "raid" + local num = GetNumRaidMembers() + DPSMate.Parser.TargetParty = {} + DPSMate.Parser.petToOwnerMap = {} + if num<=0 then + type = "party" + num = GetNumPartyMembers() + end + -- Collect all player names first to detect pet name conflicts. + -- UnitIsConnected is intentionally not checked here: a player who just joined + -- or has a brief connection blip still appears in the combat log by name. + local groupPlayerNames = {} + local allNamesResolved = true + for i=1, num do + local pname = UnitName(type..i) + if pname and pname ~= "" then + groupPlayerNames[pname] = true + else + allNamesResolved = false + end + end + -- If any slot had a nil name, schedule another retry in 1s to pick them up. + if not allNamesResolved then + pendingGroupUpdateTime = GT() + 1 + end + local selfName = UnitName("player") + if selfName then groupPlayerNames[selfName] = true end + for i=1, num do + local name = UnitName(type..i) + if name and name ~= "" then + local pet = UnitName(type.."pet"..i) + local classLoc, classEng = UnitClass(type..i) + local fac = UnitFactionGroup(type..i) + local gname, _, _ = GetGuildInfo(type..i) + local level = UL(type..i) + if not DPSMateUser[name] then + self.userlen = self.userlen + 1 + DPSMateUser[name] = {[1] = self.userlen} + DPSMate.UserId = nil + end + + if classEng then + DPSMateUser[name][2] = strlower(classEng) + elseif not DPSMateUser[name][2] then + allNamesResolved = false + end + DPSMateUser[name][4] = false + DPSMateUser[name][6] = nil + if pet and pet ~= DPSMate.L["unknown"] and pet ~= "" and not groupPlayerNames[pet] then + -- Use owner-qualified key so each owner's pet/totem is tracked separately + local petKey = pet .. " (" .. name .. ")" + if not DPSMateUser[petKey] then + self.userlen = self.userlen + 1 + DPSMateUser[petKey] = {[1] = self.userlen} + DPSMate.UserId = nil + end + DPSMateUser[petKey][4] = true + DPSMateUser[name][5] = petKey + DPSMateUser[petKey][6] = DPSMateUser[name][1] + DPSMate.Parser.TargetParty[petKey] = type.."pet"..i + DPSMate.Parser.TargetParty[pet] = type.."pet"..i + -- Track pet-to-owner mapping for combat log source disambiguation + if not DPSMate.Parser.petToOwnerMap[pet] then + DPSMate.Parser.petToOwnerMap[pet] = {} + end + DPSMate.Parser.petToOwnerMap[pet][name] = true + elseif pet and groupPlayerNames[pet] then + DPSMateUser[name][5] = "" + end + if fac == DPSMate.L["alliance"] then + DPSMateUser[name][3] = 1 + elseif fac == DPSMate.L["horde"] then + DPSMateUser[name][3] = -1 + end + DPSMate.Parser.TargetParty[name] = type..i + if (gname and gname ~= "") then + DPSMateUser[name][7] = gname + end + if level and level>0 then + DPSMateUser[name][8] = level + end + end + end + -- If any class data was missing, schedule a retry to resolve it. + if not allNamesResolved and not pendingGroupUpdateTime then + pendingGroupUpdateTime = GT() + 1 + end + local pet = UnitName("pet") + local name = UnitName("player") + if not name then return end + if not DPSMateUser[name] then + self.userlen = self.userlen + 1 + DPSMateUser[name] = {[1] = self.userlen} + DPSMate.UserId = nil + end + local _, playerClassEng = UnitClass("player") + if playerClassEng then + DPSMateUser[name][2] = strlower(playerClassEng) + end + if pet and pet ~= DPSMate.L["unknown"] and pet ~= "" and not groupPlayerNames[pet] then + local petKey = pet .. " (" .. name .. ")" + if not DPSMateUser[petKey] then + self.userlen = self.userlen + 1 + DPSMateUser[petKey] = {[1] = self.userlen} + DPSMate.UserId = nil + end + DPSMateUser[petKey][4] = true + DPSMateUser[name][5] = petKey + DPSMateUser[petKey][6] = DPSMateUser[name][1] + DPSMate.Parser.TargetParty[petKey] = "pet" + DPSMate.Parser.TargetParty[pet] = "pet" + if not DPSMate.Parser.petToOwnerMap[pet] then + DPSMate.Parser.petToOwnerMap[pet] = {} + end + DPSMate.Parser.petToOwnerMap[pet][name] = true + elseif pet and groupPlayerNames[pet] then + DPSMateUser[name][5] = "" + end + DPSMate.Parser.TargetParty[name] = "player" + DPSMate.Parser:AssociateShaman("None", "None", true) +end + +function DPSMate.DB:BuildUser(Dname, Dclass) + if not Dname then Dname = "?!NIL Name?!" end + -- Auto-qualify raw pet/totem names via petToOwnerMap (single-owner only) + local pom = DPSMate.Parser.petToOwnerMap + if pom and pom[Dname] then + local count, singleOwner = 0, nil + for o, _ in pairs(pom[Dname]) do + count = count + 1 + singleOwner = o + end + if count == 1 then + Dname = Dname .. " (" .. singleOwner .. ")" + end + end + local _,_, pet,owner = strfind(Dname,"(.+)%s%((.+)%)") + -- Keep full "PetName (OwnerName)" as key for per-owner disambiguation + if not DPSUser[Dname] then + self.userlen = self.userlen + 1 + DPSUser[Dname] = { + [1] = self.userlen, + [2] = Dclass, + } + DPSMate.UserId = nil + end + if owner then + local ownerId = self:BuildUser(owner) + DPSUser[Dname][4] = true + DPSUser[Dname][6] = ownerId + DPSUser[owner][5] = Dname + end + return DPSUser[Dname][1] +end + +function DPSMate.DB:BuildAbility(name, kind, school) + if not name then name = "?!NIL Ability?!" end + + if not DPSAbility[name] then + self.abilitylen = self.abilitylen + 1 + DPSAbility[name] = { + [1] = self.abilitylen, + [2] = kind, + [3] = school, + } + DPSMate.AbilityId = nil + return self.abilitylen + end + return DPSAbility[name][1] +end + +-- KTMHOOK +DPSMate.DB.specialAbTrans = { + ["heroicstrike"] = "Heroic Strike", + ["maul"] = "Maul", + ["swipe"] = "Swipe", + ["shieldslam"] = "Shield Slam", + ["revenge"] = "Revenge", + ["shieldbash"] = "Shield Bash", + ["sunder"] = "Sunder Armor", + ["cleave"] = "Cleave", + ["searingpain"] = "Searing Pain", + ["earthshock"] = "Earth Shock", + ["mindblast"] = "Mind Blast", + ["holyshield"] = "Holy Shield", + ["thunderfury"] = "Thunderfury", + ["graceofearth"] = "Grace of Earth", + ["blackamnesty"] = "Black Amnesty", + ["whitedamage"] = "AutoAttack", +} +DPSMate.DB.KTMHOOK = {} +DPSMate.DB.ktmavail = false + +function DPSMate.DB:UpdateThreat() + if next(self.KTMHOOK) ~= nil then + local str + for cat, val in pairs(self.KTMHOOK) do + local curNpc, curNpcNum = {}, 0 + if str then + str = str..',["'..cat..'"]={' + else + str = '["'..cat..'"]={' + end + for ca, va in pairs(val) do + if curNpc[va[1]] then + str = str..','..va[2] + else + if curNpcNum==0 then + str = str..'["'..va[1]..'"]={'..va[2] + else + str = str..'},["'..va[1]..'"]={'..va[2] + end + curNpc[va[1]] = true + curNpcNum = curNpcNum + 1 + end + end + str = str..'}}' + end + if str then + self.KTMHOOK = {} + SendAddonMessage("ALERT", "KLHTMHOOK", str, "RAID") + end + end +end + +function DPSMate.DB:Threat(cause, spellname, target, value, amount) + if value==0 then return end + if not DPSMate.RegistredModules["threat"] then return end + target = self:BuildUser(target) + cause = self:BuildUser(cause) + spellname = self:BuildAbility(spellname) + for cat, val in pairs(tablemodes) do + if not DPSThreat[cat] then DPSThreat[cat] = {} end + if not DPSThreat[cat][cause] then + DPSThreat[cat][cause] = {} + end + if not DPSThreat[cat][cause][target] then + DPSThreat[cat][cause][target] = {} + end + if not DPSThreat[cat][cause][target][spellname] then + DPSThreat[cat][cause][target][spellname] = { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0, + ["i"] = {} + } + end + local path = DPSThreat[cat][cause][target][spellname] + path[1] = path[1] + value + path[4] = path[4] + amount + if path[2]==0 or path[2]>value then + path[2] = value + end + if path[3]0 then + local time = floor(DPSCBT[val]) + if path["i"][time] then + path["i"][time] = path["i"][time] + value + else + path["i"][time] = value + end + end + end + NeedUpdate = true +end + +local savedValue = { + ["damage"] = 0, + ["dmgt"] = 0, + ["heal"] = 0, + ["eheal"] = 0 +} +function DPSMate.DB:GetAlpha(k) + if DPSMateSettings["windows"][k]["realtime"] then + local p = savedValue[DPSMateSettings["windows"][k]["realtime"]] or 0 + savedValue[DPSMateSettings["windows"][k]["realtime"]] = 0 + if p > 50000 then -- That may solve the freeze issue + p = 50000 + end + return p + end +end + +function DPSMate.DB:HookGraphEvents() + if not self.hooked then + self.oldDmgDone = DPSMate.DB.DamageDone + function DPSMate.DB:DamageDone(Duser, Dname, Dhit, Dcrit, Dmiss, Dparry, Ddodge, Dresist, Damount, Dglance, Dblock) + self:oldDmgDone(Duser, Dname, Dhit, Dcrit, Dmiss, Dparry, Ddodge, Dresist, Damount, Dglance, Dblock) + savedValue["damage"] = savedValue["damage"] + Damount + end + self.oldDmgTaken = DPSMate.DB.DamageTaken + function DPSMate.DB:DamageTaken(Duser, Dname, Dhit, Dcrit, Dmiss, Dparry, Ddodge, Dresist, Damount, cause, Dcrush, Dblock) + self:oldDmgTaken(Duser, Dname, Dhit, Dcrit, Dmiss, Dparry, Ddodge, Dresist, Damount, cause, Dcrush, Dblock) + savedValue["dmgt"] = savedValue["dmgt"] + Damount + end + self.oldHealing = DPSMate.DB.Healing + function DPSMate.DB:Healing(mode, arr, Duser, Dname, Dhit, Dcrit, Damount) + self:oldHealing(mode, arr, Duser, Dname, Dhit, Dcrit, Damount) + if mode == 0 then + savedValue["eheal"] = savedValue["eheal"] + Damount + elseif mode == 1 then + savedValue["heal"] = savedValue["heal"] + Damount + end + end + self.hooked = true + end +end + +function DPSMate.DB:WeightedAverage(a, b, c, d) + return ((a*c+b)/(c+d)) +end + +local spellSchoolNames = { + -- Empty + [""] = false, + + -- enUS + ["fire"] = true, + ["nature"] = true, + ["shadow"] = true, + ["holy"] = true, + ["frost"] = true, + ["arcane"] = true, + ["physical"] = true, + + ["Fire"] = true, + ["Nature"] = true, + ["Shadow"] = true, + ["Holy"] = true, + ["Frost"] = true, + ["Arcane"] = true, + ["Physical"] = true, + + -- deDE + ["feuer"] = true, + ["natur"] = true, + ["schatten"] = true, + ["arkan"] = true, + ["frost"] = true, + ["heilig"] = true, + + --frFR + ["ombre"] = true, + ["feu"] = true, + ["nature"] = true, + ["givre"] = true, + ["arcane"] = true, + ["sacré"] = true, + ["physique"] = true, + + -- ruRU + ["огонь"] = true, + ["обычный"] = true, + ["тайная магия"] = true, + ["тьма"] = true, + ["природа"] = true, + ["лед"] = true, + ["физический урон"] = true, + + -- zhCN + ["火焰"] = true, + ["神圣"] = true, + ["奥术"] = true, + ["暗影"] = true, + ["自然"] = true, + ["冰霜"] = true, + ["物理"] = true, +} +local sc +function DPSMate.DB:AddSpellSchool(ab, school) + if not school then return end + school = strlower(school) + if spellSchoolNames[school] then + if DPSAbility[ab] then + DPSAbility[ab][3] = school + else + self:BuildAbility(ab,nil,school) + end + end +end + +function DPSMate.DB:RegisterNextSwing(player, amount, ability) + player = self:BuildUser(player) + NextSwing[player] = {amount, ability} + NextSwingEDD[player] = {amount, ability} +end + +DPSMate.DB.AAttack = "AutoAttack" +local AAttack = DPSMate.DB.AAttack +local hackOrder, hackOrder2 = {}, {} +function DPSMate.DB:DamageDone(Duser, Dname, Dhit, Dcrit, Dmiss, Dparry, Ddodge, Dresist, Damount, Dglance, Dblock) + Duser = self:BuildUser(Duser) + + if (not CombatState and cheatCombat0 then + if not self.windfuryab[NextSwing[Duser][2]] or hackOrder[Duser] then + Dname = NextSwing[Duser][2] + NextSwing[Duser][1] = NextSwing[Duser][1] - 1 + else + hackOrder[Duser] = true + end + end + hackOrder[Duser] = false + + Dname = self:BuildAbility(Dname) + + for cat=1,2 do + if not DPSDMG[cat] then DPSDMG[cat] = {} end + gen = DPSDMG[cat] + if not gen[Duser] then gen[Duser] = {i=0} end + gen = gen[Duser] + if not gen[Dname] then + gen[Dname] = { + [1] = 0, -- hit + [2] = 0, -- hitlow + [3] = 0, -- hithigh + [4] = 0, -- hitaverage + [5] = 0, -- crit + [6] = 0, -- critlow + [7] = 0, -- crithigh + [8] = 0, -- critaverage + [9] = 0, -- miss + [10] = 0, -- parry + [11] = 0, -- dodge + [12] = 0, -- resist + [13] = 0, -- amount + [14] = 0, + [15] = 0, + [16] = 0, + [17] = 0, + [18] = 0, + [19] = 0, + [20] = 0, + [21] = 0, + [22] = 0, -- Casts -- Deprecated + ["i"] = {} + } + end + path = gen[Dname] + if Damount > 0 then + path[13] = path[13] + Damount + if Dhit == 1 and Dblock ~= 1 then + if (Damount < path[2] or path[2] == 0) then path[2] = Damount end + if Damount > path[3] then path[3] = Damount end + path[4] = path[4] + Damount + path[1] = path[1] + 1 + elseif Dcrit == 1 and Dblock ~= 1 then + if (Damount < path[6] or path[6] == 0) then path[6] = Damount end + if Damount > path[7] then path[7] = Damount end + path[8] = path[8] + Damount + path[5] = path[5] + 1 + elseif Dglance == 1 then + if (Damount < path[15] or path[15] == 0) then path[15] = Damount end + if Damount > path[16] then path[16] = Damount end + path[17] = path[17] + Damount + path[14] = path[14] + 1 + else + if (Damount < path[19] or path[19] == 0) then path[19] = Damount end + if Damount > path[20] then path[20] = Damount end + path[21] = path[21] + Damount + path[18] = path[18] + 1 + end + gen["i"] = gen["i"] + Damount + time = CBTCache[cat] + path["i"][time] = (path["i"][time] or 0) + Damount + else + path[9] = path[9] + Dmiss + path[10] = path[10] + Dparry + path[11] = path[11] + Ddodge + path[12] = path[12] + Dresist + path[18] = path[18] + Dblock + end + end + NeedUpdate = true +end + +function DPSMate.DB:DamageTaken(Duser, Dname, Dhit, Dcrit, Dmiss, Dparry, Ddodge, Dresist, Damount, cause, Dcrush, Dblock) + if not DPSMate.RegistredModules["damagetaken"] then return end + + Duser = self:BuildUser(Duser) + cause = self:BuildUser(cause) + Dname = self:BuildAbility(Dname) + + if not Duser then + return + end + + for cat=1,2 do + if not DPSDMGTaken[cat] then DPSDMGTaken[cat] = {} end + gen = DPSDMGTaken[cat] + if not gen[Duser] then gen[Duser] = {i=0} end + gen = gen[Duser] + if not gen[cause] then + gen[cause] = {} + end + if not gen[cause][Dname] then + gen[cause][Dname] = { + [1] = 0, -- hit + [2] = 0, -- hitlow + [3] = 0, -- hithigh + [4] = 0, -- hitaverage + [5] = 0, -- crit + [6] = 0, -- critlow + [7] = 0, -- crithigh + [8] = 0, -- critaverage + [9] = 0, -- miss + [10] = 0, -- parry + [11] = 0, -- dodge + [12] = 0, -- resist + [13] = 0, -- amount + [14] = 0, -- average + [15] = 0, + [16] = 0, + [17] = 0, + [18] = 0, + [19] = 0, + [20] = 0, + [21] = 0, + [22] = 0, + [23] = 0, + ["i"] = {} + } + end + path = gen[cause][Dname] + if Damount > 0 then + path[13] = path[13] + Damount + if Dhit == 1 then + if (Damount < path[2] or path[2] == 0) then path[2] = Damount end + if Damount > path[3] then path[3] = Damount end + path[4] = path[4]+Damount + path[1] = path[1] + 1 + elseif Dcrit == 1 and Dblock ~= 1 then + if (Damount < path[6] or path[6] == 0) then path[6] = Damount end + if Damount > path[7] then path[7] = Damount end + path[8] = path[8]+Damount + path[5] = path[5] + 1 + elseif Dcrush == 1 then + if (Damount < path[16] or path[16] == 0) then path[16] = Damount end + if Damount > path[17] then path[17] = Damount end + path[18] = path[18]+Damount + path[15] = path[15] + 1 + else + if (Damount < path[21] or path[21] == 0) then path[21] = Damount end + if Damount > path[22] then path[22] = Damount end + path[23] = path[23]+Damount + path[20] = path[20] + 1 + end + gen["i"] = gen["i"] + Damount + path[14] = path[14] + Damount + time = CBTCache[cat] + path["i"][time] = (path["i"][time] or 0) + Damount + else + path[9] = path[9] + Dmiss + path[10] = path[10] + Dparry + path[11] = path[11] + Ddodge + path[12] = path[12] + Dresist + path[20] = path[20] + Dblock + end + end + NeedUpdate = true +end + +local ActiveMob = {} +function DPSMate.DB:EnemyDamage(mode, arr, Duser, Dname, Dhit, Dcrit, Dmiss, Dparry, Ddodge, Dresist, Damount, cause, Dblock, Dcrush) + ActiveMob[cause] = true + + local saveUser = Duser + local saveCause = cause + local saveAb = Dname + + Duser = self:BuildUser(Duser) + cause = self:BuildUser(cause) + + if not mode then -- EDD + arr = DPSEDD + if not DPSMate.RegistredModules["enemydamagedone"] then + return + end + else + arr = DPSEDT + if Dname == self.AAttack and NextSwingEDD[Duser] and NextSwingEDD[Duser][1]>0 then + if not self.windfuryab[NextSwingEDD[Duser][2]] or hackOrder2[Duser] then + Dname = NextSwingEDD[Duser][2] + NextSwingEDD[Duser][1] = NextSwingEDD[Duser][1] - 1 + else + hackOrder2[Duser] = true + end + end + hackOrder2[Duser] = false + end + + Dname = self:BuildAbility(Dname) + + if Dname == nil or cause == nil or Duser == nil or Damount == nil then + local debug = DPSMate.Debug and DPSMate.Debug:Store("Ab/Cause/Duser/amount: one of them is nil: "..(saveAb or "NONE").."/"..(saveCause or "NONE").."/"..(saveUser or "NONE").."/"..(Damount or "NONE")) or DPSMate:SendMessage("Ab/Cause/Duser/amount: one of them is nil: "..(saveAb or "NONE").."/"..(saveCause or "NONE").."/"..(saveUser or "NONE").."/"..(Damount or "NONE")) + return + end + + for cat=1,2 do + gen = arr[cat] + if not gen then arr[cat] = {}; gen = arr[cat] end + if not gen[cause] then gen[cause] = {} end + gen = gen[cause] + if not gen[Duser] then + gen[Duser] = {i = 0} + end + if not gen[Duser][Dname] then + gen[Duser][Dname] = { + [1] = 0, -- hit + [2] = 0, -- hitlow + [3] = 0, -- hithigh + [4] = 0, -- hitaverage + [5] = 0, -- crit + [6] = 0, -- critlow + [7] = 0, -- crithigh + [8] = 0, -- critaverage + [9] = 0, -- miss + [10] = 0, -- parry + [11] = 0, -- dodge + [12] = 0, -- resist + [13] = 0, -- amount + [14] = 0, + [15] = 0, + [16] = 0, + [17] = 0, + [18] = 0, + [19] = 0, + [20] = 0, + [21] = 0, + [22] = 0, + ["i"] = {} + } + end + path = gen[Duser][Dname] + if Damount > 0 then + path[13] = path[13] + Damount + if Dhit == 1 then + if (Damount < path[2] or path[2] == 0) then path[2] = Damount end + if Damount > path[3] then path[3] = Damount end + path[4] = path[4] + Damount + path[1] = path[1] + 1 + elseif Dcrit == 1 then + if (Damount < path[6] or path[6] == 0) then path[6] = Damount end + if Damount > path[7] then path[7] = Damount end + path[8] = path[8] + Damount + path[5] = path[5] + 1 + elseif Dcrush == 1 then + if (Damount < path[19] or path[19] == 0) then path[19] = Damount end + if Damount > path[20] then path[20] = Damount end + path[21] = path[21] + Damount + path[18] = path[18] + 1 + else + if (Damount < path[15] or path[15] == 0) then path[15] = Damount end + if Damount > path[16] then path[16] = Damount end + path[17] = path[17] + Damount + path[14] = path[14] + 1 + end + gen[Duser]["i"] = gen[Duser]["i"] + Damount + time = CBTCache[cat] + path["i"][time] = (path["i"][time] or 0) + Damount + else + path[9] = path[9] + Dmiss + path[10] = path[10] + Dparry + path[11] = path[11] + Ddodge + path[12] = path[12] + Dresist + path[14] = path[14] + Dblock + end + end + if Damount>0 then self:CheckActiveCC(Duser, cause) end + NeedUpdate = true +end + +function DPSMate.DB:Healing(mode, arr, Duser, Dname, Dhit, Dcrit, Damount) + if ((mode==0 and not DPSMate.RegistredModules["effectivehealing"] and not DPSMate.RegistredModules["healingandabsorbs"]) or + (mode==1 and not DPSMate.RegistredModules["healing"]) or + (mode==2 and not DPSMate.RegistredModules["overhealing"])) then return end + if not CombatState then + if cheatCombat 0 then + path[1] = path[1]+Damount + gen["i"] = gen["i"]+Damount + if Dhit==1 then + path[4] = path[4] + Damount + if Damountpath[7] or path[7]==0 then + path[7] = Damount + end + path[2] = path[2]+1 + else + path[5] = path[5] + Damount + if Damountpath[9] or path[9]==0 then + path[9] = Damount + end + path[3] = path[3]+1 + end + time = CBTCache[cat] + path["i"][time] = (path["i"][time] or 0) + Damount + end + end + NeedUpdate = true +end + +function DPSMate.DB:HealingTaken(mode, arr, Duser, Dname, Dhit, Dcrit, Damount, target) + if ((mode==0 and not DPSMate.RegistredModules["healingtaken"] and not DPSMate.RegistredModules["healing"]) or (mode==1 and not DPSMate.RegistredModules["effectivehealingtaken"] and not DPSMate.RegistredModules["effectivehealing"] and not DPSMate.RegistredModules["healingandabsorbs"]) or (mode==2 and not DPSMate.RegistredModules["OHealingTaken"] and not DPSMate.RegistredModules["overhealing"])) then return end + if not CombatState then + if cheatCombat 0 then + path[1] = path[1]+Damount + if Dhit==1 then + path[4] = path[4] + Damount + if Damountpath[7] or path[7]==0 then + path[7] = Damount + end + path[2] = path[2]+1 + else + path[5] = path[5] + Damount + if Damountpath[9] or path[9]==0 then + path[9] = Damount + end + path[3] = path[3]+1 + end + gen["i"] = gen["i"]+Damount + time = CBTCache[cat] + path["i"][time] = (path["i"][time] or 0) + Damount + end + end + NeedUpdate = true +end + +-- Fire etc. Prot Potion +-- Mage: Ice Barrier, Manashield, Fire Protection, Frost Protection +-- Warlock: Shadow Protection +-- Priest: Power Word: Shield +-- Always the first shield that is applied is absorbing the damage. Depending the school it iterates through the shields. +-- Example: Manashield is applied first then Frost Protection Potion. +-- Weasel casts Frostbolt. -> Game: Can Manashield absorb Frost damage? No -> Game: Can Frost Protection Potion Absorb Frost damage? Yes -> OK go for it! +-- Example two: Frost Protection Potion and Power Word Shield +-- Weasel casts Frostbolt. -> Game: Can FPP absorb the FD? Yes -> Go for it. (The Power Word Shield is ignored until FPP fades) +-- What if a shield is refreshed +local Await = {} +DPSMate.DB.realAbility = { + ["Greater Fire Protection Potion"] = "Fire Protection", + ["Greater Frost Protection Potion"] = "Frost Protection", + ["Greater Nature Protection Potion"] = "Nature Protection", + ["Greater Holy Protection Potion"] = "Holy Protection", + ["Greater Shadow Protection Potion"] = "Shadow Protection", + ["Greater Arcane Protection Potion"] = "Arcane Protection", +} +function DPSMate.DB:AwaitingAbsorbConfirmation(owner, ability, abilityTarget, time) + tinsert(Await, {owner, self.realAbility[ability] or ability, abilityTarget, time}) +end + +function DPSMate.DB:ClearAwaitAbsorb() + local time = GT() + for cat, val in pairs(Await) do + if (time-val[4])>=10 then + tremove(Await, cat) + break + end + end +end + +function DPSMate.DB:ConfirmAbsorbApplication(ability, abilityTarget, time) + for cat, val in pairs(Await) do + if val[4]<=time and val[2]==ability then + if val[3]==abilityTarget then + self:RegisterAbsorb(val[1], ability, abilityTarget) + tremove(Await, cat) + return + end + end + end + self:RegisterAbsorb(DPSMate.L["unknown"], ability, abilityTarget) +end + +function DPSMate.DB:RegisterAbsorb(owner, ability, abilityTarget) + if not DPSMate.RegistredModules["absorbs"] and not DPSMate.RegistredModules["absorbstaken"] and not DPSMate.RegistredModules["healingandabsorbs"] then return end + owner = self:BuildUser(owner) + abilityTarget = self:BuildUser(abilityTarget) + ability = self:BuildAbility(ability) + for cat, val in pairs(tablemodes) do + if not DPSAbsorb[cat] then DPSAbsorb[cat] = {} end + if not DPSAbsorb[cat][abilityTarget] then + DPSAbsorb[cat][abilityTarget] = {} + end + gen = DPSAbsorb[cat][abilityTarget] + if not gen[owner] then gen[owner] = {i = {}} end + if not gen[owner][ability] then gen[owner][ability] = {} end + tinsert(gen[owner][ability], { + i = { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0, + }, + }) + end + NeedUpdate = true +end + +local broken = {} +function DPSMate.DB:SetUnregisterVariables(broAbsorb, ab, c) + if broAbsorb then + ab = self:BuildAbility(ab, nil) + c = self:BuildUser(c, nil) + broken = {1,broAbsorb,ab,c} + end +end + +function DPSMate.DB:UnregisterAbsorb(ability, abilityTarget) + if not DPSMate.RegistredModules["absorbs"] and not DPSMate.RegistredModules["absorbstaken"] and not DPSMate.RegistredModules["healingandabsorbs"] then return end + ability = self:BuildAbility(ability) + abilityTarget = self:BuildUser(abilityTarget) + local AbsorbingAbility + for cat, val in pairs(tablemodes) do + AbsorbingAbility = self:GetActiveAbsorbAbilityByPlayer(ability, abilityTarget, cat) + if AbsorbingAbility[1] then + path = DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]][AbsorbingAbility[3]]["i"] + if path[1] == 0 then + path[1] = broken[1] + path[2] = broken[2] + path[3] = broken[3] + path[4] = broken[4] + if (broken[2] or 0)>0 then tinsert(DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]]["i"], {DPSCBT[val], broken[4], broken[3], broken[2], AbsorbingAbility[2]}) end + end + end + end + broken = {2,0,0,0} + NeedUpdate = true +end + +function DPSMate.DB:GetActiveAbsorbAbilityByPlayer(ability, abilityTarget, cate) + local ActiveShield = {} + if DPSAbsorb[cate] and DPSAbsorb[cate][abilityTarget] then + for cat, val in pairs(DPSAbsorb[cate][abilityTarget]) do + for ca, va in pairs(val) do + if ca~="i" then + for c, v in pairs(va) do + for ce, ve in pairs(v) do + if ve[1]==0 and ca==ability then + ActiveShield = {cat, ca, c} + break + end + end + end + end + end + end + end + return ActiveShield +end + +function DPSMate.DB:GetAbsorbingShield(ability, abilityTarget, cate) + local AbsorbingAbility = {} + local activeShields = {} + if DPSAbsorb[cate] and DPSAbsorb[cate][abilityTarget] then + for cat, val in pairs(DPSAbsorb[cate][abilityTarget]) do + for ca, va in pairs(val) do + if ca~="i" then + for c, v in pairs(va) do + for ce, ve in pairs(v) do + if ve[1]==0 then + activeShields[cat] = {ca,c} + break + end + end + end + end + end + end + + local AAS, ASS = {}, {} + for cat, val in pairs(activeShields) do + if self.ShieldFlags[DPSMate:GetAbilityById(val[1])]==0 then + AAS[cat] = {val[1],val[2]} + elseif self.ShieldFlags[DPSMate:GetAbilityById(val[1])]==AbilityFlags[ability] then + ASS[cat] = {val[1],val[2]} + elseif not ability or not AbilityFlags[ability] then + ASS[cat] = {val[1],val[2]} + end + end + + if next(AAS) ~= nil or next(ASS) ~= nil then + local unit, buff = DPSMate.Parser:GetUnitByName(abilityTarget) + if unit then + for i=1, 32 do + DPSMate_Tooltip:ClearLines() + DPSMate_Tooltip:SetUnitBuff(unit, i, "HELPFUL") + buff = DPSMate_TooltipTextLeft1:GetText() + if (not buff) then break end + buff = self:BuildAbility(buff) + for cat, val in pairs(AAS) do + if val[1]==buff then + AbsorbingAbility = {cat, val[1],val[2]} + break + end + end + for cat, val in pairs(ASS) do + if val[1]==buff then + AbsorbingAbility = {cat, val[1],val[2]} + break + end + end + end + else + if next(AAS) ~= nil then + for cat, val in pairs(AAS) do + return {cat, val[1],val[2]} + end + else + for cat, val in pairs(ASS) do + return {cat, val[1],val[2]} + end + end + end + end + end + return AbsorbingAbility +end + +function DPSMate.DB:Absorb(ability, abilityTarget, incTarget) + if not DPSMate.RegistredModules["absorbs"] and not DPSMate.RegistredModules["absorbstaken"] and not DPSMate.RegistredModules["healingandabsorbs"] then return end + incTarget = self:BuildUser(incTarget) + abilityTarget = self:BuildUser(abilityTarget) + ability = self:BuildAbility(ability) + local AbsorbingAbility + for cat, val in pairs(tablemodes) do + local abilityName = DPSMate:GetAbilityById(ability) + local abilityEntry = abilityName and DPSMateAbility[abilityName] + if not abilityEntry then break end + AbsorbingAbility = self:GetAbsorbingShield(abilityEntry[3], abilityTarget, cat) + if AbsorbingAbility[1] then + if not DPSAbsorb[cat] then DPSAbsorb[cat] = {} end + if not DPSAbsorb[cat][abilityTarget] then DPSAbsorb[cat][abilityTarget] = {} end + if not DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]] then DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]] = {["i"]={}} end + if not DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]] then DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]] = {} end + if not DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]][AbsorbingAbility[3]] then DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]][AbsorbingAbility[3]] = {} end + if not DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]][AbsorbingAbility[3]][incTarget] then + DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]][AbsorbingAbility[3]][incTarget] = {} + end + path = DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]][AbsorbingAbility[2]][AbsorbingAbility[3]][incTarget] + path[ability] = (path[ability] or 0) + 1 + tinsert(DPSAbsorb[cat][abilityTarget][AbsorbingAbility[1]]["i"], {DPSCBT[val], incTarget, ability, 0, AbsorbingAbility[2]}) + end + end +end + +local AwaitDispel = {} +local NextTotemDispel = false +local TotemDispelTimer = 0 +function DPSMate.DB:AwaitDispel(ability, target, cause, time) + if not AwaitDispel[target] then AwaitDispel[target] = {} end + tinsert(AwaitDispel[target], {cause, ability, time, 2}) + self:EvaluateDispel() +end + +local AwaitHotDispel = {} +DPSMate.DB.Restor = "Restoration" +DPSMate.DB.RPotion = "Restorative Potion" +DPSMate.DB.PFication = "Purification" +DPSMate.DB.PPotion = "Purification Potion" +function DPSMate.DB:AwaitHotDispel(ability, target, cause, time) + if ability == self.RPotion then + ability = self.Restor + target = cause + end + if ability == self.PPotion then + ability = self.PFication + target = cause + end + tinsert(AwaitHotDispel, {cause, target, ability, time}) +end + +local ActiveHotDispel = {} +local lastDispel = nil; +function DPSMate.DB:RemoveActiveHotDispel(target, ability) + if ActiveHotDispel[target] then + for ca, va in pairs(ActiveHotDispel[target]) do -- Overwriting old active hot dispel + if va[2]==ability then + tremove(ActiveHotDispel[target], ca) + self:RemoveActiveHotDispel(target, ability) + break + end + end + end +end + +function DPSMate.DB:RegisterHotDispel(target, ability) + for cat, val in pairs(AwaitHotDispel) do + if val[2]==target and val[3]==ability then + if not ActiveHotDispel[val[2]] then ActiveHotDispel[val[2]] = {} end + lastDispel = target; + self:RemoveActiveHotDispel(val[2], val[3]) -- Overwrite active dispels + tinsert(ActiveHotDispel[val[2]], {val[1], val[3]}) + self:EvaluateDispel() + break + end + end +end + +function DPSMate.DB:ClearAwaitHotDispel() + local time = GT() + for cat, val in pairs(AwaitHotDispel) do + if (time-val[4])>=10 then + AwaitHotDispel[cat] = nil + end + end +end + +local ConfirmedDispel = {} +function DPSMate.DB:ConfirmRealDispel(ability, target, time) + if not ConfirmedDispel[target] then ConfirmedDispel[target] = {} end + tinsert(ConfirmedDispel[target], {ability, time}) + lastDispel = target; + self:EvaluateDispel() + NextTotemDispel = true +end + +function DPSMate.DB:ApplyRemainingDispels() + if not DPSMate.RegistredModules["decurses"] and not DPSMate.RegistredModules["curepoison"] and not DPSMate.RegistredModules["liftmagic"] and not DPSMate.RegistredModules["curedisease"] and not DPSMate.RegistredModules["dispels"] then return end + if playerfaction~="Horde" then NextTotemDispel = false; return end + local num = 0 + local time = GT() + local type = "party" + local tnum = GetNumPartyMembers() + if tnum <= 0 then + type="raid" + tnum=GetNumRaidMembers() + end + local subGRP, PSGRP, c + for cat, val in pairs(ConfirmedDispel) do + for ca, va in pairs(val) do + num = num + 1 + if (time-va[2])>10 and (time-va[2])<40 then + if type=="party" then + for i=1, tnum do + if UnitClass(type..i)==DPSMate.L["shaman"] then + self:Dispels(UnitName(type..i), DPSMate.L["poisoncleansingtotem"], cat, va[1]) + tremove(ConfirmedDispel[cat], ca) + return + end + end + else + subGRP, PSGRP = {}, nil + for i=1, tnum do + _, _, c = GetRaidRosterInfo(i) + if UnitClass(type..i)==DPSMate.L["shaman"] then + subGRP[c] = UnitName(type..i) + end + if UnitName(type..i)==cat then + PSGRP = c + end + if PSGRP and subGRP[PSGRP] then + self:Dispels(subGRP[PSGRP], DPSMate.L["poisoncleansingtotem"], cat, va[1]) + tremove(ConfirmedDispel[cat], ca) + return + end + end + end + end + end + end + if num == 0 then + NextTotemDispel = false + end +end + +function DPSMate.DB:EvaluateDispel() + if not DPSMate.RegistredModules["decurses"] and not DPSMate.RegistredModules["curepoison"] and not DPSMate.RegistredModules["liftmagic"] and not DPSMate.RegistredModules["curedisease"] and not DPSMate.RegistredModules["dispels"] then return end + local check + for cat, val in pairs(ActiveHotDispel) do + for ca, va in pairs(val) do + if ConfirmedDispel[cat] then + if va[2]~=self.Restor or (va[2]==self.Restor and va[1]==cat) then + check = nil + for q, t in pairs(ConfirmedDispel[cat]) do + if DPSMate.Parser.HotDispels[va[2]] then + if not check then + check = t[1] + tremove(ConfirmedDispel[cat], q) + end + end + end + if check then + self:Dispels(va[1], va[2], cat, check) + lastDispel = nil; + return + end + end + end + end + end + local time = GT() + for cat, val in pairs(AwaitDispel) do + for ca, va in pairs(val) do + if (time-(va[3] or 0))<=10 then + if ConfirmedDispel[cat] then + if va[2]~=self.Restor then + if ConfirmedDispel[cat][1] then + self:Dispels(va[1], va[2], cat, ConfirmedDispel[cat][1][1]) + tremove(ConfirmedDispel[cat], 1) + AwaitDispel[cat][ca][4] = AwaitDispel[cat][ca][4] - 1 + if AwaitDispel[cat][ca][4]<=0 then + tremove(AwaitDispel[cat], ca) + end + self:EvaluateDispel() + return + end + end + end + end + end + end +end + +function DPSMate.DB:UnregisterHotDispel(target, ability) + if not ActiveHotDispel[target] then return end + for cat, val in pairs(ActiveHotDispel[target]) do + if val[2]==ability then + tremove(ActiveHotDispel[target], cat) + break + end + end +end + +function DPSMate.DB:Dispels(cause, Dname, target, ability) + if not DPSMate.RegistredModules["decurses"] and not DPSMate.RegistredModules["curepoison"] and not DPSMate.RegistredModules["liftmagic"] and not DPSMate.RegistredModules["curedisease"] and not DPSMate.RegistredModules["dispels"] then return end + cause = self:BuildUser(cause) + target = self:BuildUser(target) + Dname = self:BuildAbility(Dname) + ability = self:BuildAbility(ability) + for cat, val in pairs(tablemodes) do + if not DPSDispel[cat] then DPSDispel[cat] = {} end + if not DPSDispel[cat][cause] then + DPSDispel[cat][cause] = { + i = { + [1] = 0, + [2] = {} + }, + } + end + gen = DPSDispel[cat][cause] + if not gen["i"] or not gen["i"][1] then + gen["i"] = {[1] = 0, [2] = {}} + end + if not gen[Dname] then + gen[Dname] = {} + end + if not gen[Dname][target] then + gen[Dname][target] = {} + end + path = gen[Dname][target] + if not path[ability] then + path[ability] = 0 + end + path[ability] = path[ability]+1 + gen["i"][1] = gen["i"][1]+1 + tinsert(gen["i"][2], {DPSCBT[val], ability, target, GameTime_GT()}) + end + NeedUpdate = true +end + +function DPSMate.DB:UnregisterDeath(target) + if not DPSMate.RegistredModules["deaths"] then return end + if strfind(target, "%s") then return end + target = self:BuildUser(target) + local p + for cat, val in pairs(tablemodes) do + if DPSDeath[cat] and DPSDeath[cat][target] and DPSDeath[cat][target][1] then + DPSDeath[cat][target][1]["i"][1]=1 + DPSDeath[cat][target][1]["i"][2]=GameTime_GT() + if cat==1 and DPSMate.Parser.TargetParty[DPSMate:GetUserById(target)] and DPSDeath[cat][target][1][1] then + p = DPSDeath[cat][target][1][1] + DPSMate:Broadcast(4, DPSMate:GetUserById(target), DPSMate:GetUserById(p[1]), DPSMate:GetAbilityById(p[2]), p[3]) + end + end + end +end + +function DPSMate.DB:DeathHistory(target, cause, ability, amount, hit, crit, type, crush) + if not DPSMate.RegistredModules["deaths"] then return end + target = self:BuildUser(target) + cause = self:BuildUser(cause) + ability = self:BuildAbility(ability) + local hitCritCrush + for cat, val in pairs(tablemodes) do + if not DPSDeath[cat] then DPSDeath[cat] = {} end + if not DPSDeath[cat][target] then + DPSDeath[cat][target] = {} + end + gen = DPSDeath[cat][target] + if not gen[1] then + gen[1] = { + i = { + [1] = 0, + [2] = "", + }, + } + end + if gen[1]["i"][1]==1 then + tinsert(gen, 1, {i = {0,""}}) + end + hitCritCrush = 0 + if crit==1 then hitCritCrush = 1 elseif crush==1 then hitCritCrush = 2 end + tinsert(gen[1], 1, { + [1] = cause, + [2] = ability, + [3] = amount, + [4] = hitCritCrush, + [5] = type, + [6] = DPSCBT[val], + [7] = GameTime_GT(), + }) + if gen[1][21] then + tremove(gen[1], 21) + end + end +end + +local AwaitKick = {} +local AfflictedStun = {} +function DPSMate.DB:AwaitAfflicted(cause, ability, target, time) + for cat, val in pairs(AfflictedStun) do + if val[1]==cause and (val[4]+0.5)>=time and (val[4]-0.5)<=time then + return + end + end + tinsert(AfflictedStun, {cause,ability,target,time}) +end + +function DPSMate.DB:ConfirmAfflicted(target, ability, time) + for cat, val in pairs(AfflictedStun) do + if val[2]==ability and val[3]==target and val[4]<=time then + if DPSMate.Parser.Kicks[ability] then self:AssignPotentialKick(val[1], val[2], val[3], time) end + self:EnemyDamage(true, DPSMateEDT, val[1], ability, 1, 0, 0,0,0, 0,0, target, 0, 0) + tremove(AfflictedStun, cat) + return + end + end +end + +function DPSMate.DB:RegisterPotentialKick(cause, ability, time) + tinsert(AwaitKick, {cause, ability, time}) +end + +function DPSMate.DB:UnregisterPotentialKick(cause, ability, time) + for cat, val in pairs(AwaitKick) do + if val[1]==cause and val[2]==ability and val[3]<=time then + tremove(AwaitKick, cat) + break + end + end +end + +function DPSMate.DB:AssignPotentialKick(cause, ability, target, time) + for cat, val in pairs(AwaitKick) do + if val[3]<=time then + if not val[4] and val[1]==target then + val[4] = {cause, ability} + end + end + end +end + +function DPSMate.DB:UpdateKicks() + local time = GT() + for cat, val in pairs(AwaitKick) do + if (time-val[3])>=2.5 then + if val[4] then + self:Kick(val[4][1], val[1], val[4][2], val[2]) + end + tremove(AwaitKick, cat) + end + end +end + +function DPSMate.DB:Kick(cause, target, causeAbility, targetAbility) + if not DPSMate.RegistredModules["interrupts"] then return end + target = self:BuildUser(target) + cause = self:BuildUser(cause) + causeAbility = self:BuildAbility(causeAbility) + targetAbility = self:BuildAbility(targetAbility) + for cat, val in pairs(tablemodes) do + if not DPSInterrupt[cat] then DPSInterrupt[cat] = {} end + if not DPSInterrupt[cat][cause] then + DPSInterrupt[cat][cause] = { + i = { + [1] = 0, + [2] = {} + }, + } + end + gen = DPSInterrupt[cat][cause] + if not gen["i"] then + gen["i"] = { + [1] = 0, + [2] = {} + } + end + if not gen[causeAbility] then + gen[causeAbility] = {} + end + if not gen[causeAbility][target] then + gen[causeAbility][target] = {} + end + path = gen[causeAbility][target] + if not path[targetAbility] then + path[targetAbility] = 0 + end + gen["i"][1] = gen["i"][1] + 1 + tinsert(gen["i"][2], {DPSCBT[val], GameTime_GT(), targetAbility, target}) + path[targetAbility]=path[targetAbility]+1 + end +end + +local AwaitBuff = {} +function DPSMate.DB:AwaitingBuff(cause, ability, target, time) + tinsert(AwaitBuff, {cause, ability, target, time}) +end + +function DPSMate.DB:ClearAwaitBuffs() + local time = GT() + for cat, val in pairs(AwaitBuff) do + if (time-(val[4] or 0))>=5 then + AwaitBuff[cat] = nil + end + end +end + +function DPSMate.DB:ConfirmBuff(target, ability, time) + for cat, val in pairs(AwaitBuff) do + if val[4]<=(time or 0) then + if val[2]==ability and val[3]==target then + self:BuildBuffs(val[1], target, ability, false) + return + end + end + end + self:BuildBuffs("Unknown", target, ability, false) +end + +function DPSMate.DB:BuildBuffs(cause, target, ability, bool) + if not DPSMate.RegistredModules["aurasgained"] then return end + if not DPSAurasGained[1] then return end + target = self:BuildUser(target) + cause = self:BuildUser(cause) + ability = self:BuildAbility(ability) + for cat, val in pairs(tablemodes) do + if not DPSAurasGained[cat] then DPSAurasGained[cat] = {} end + if not DPSAurasGained[cat][target] then + DPSAurasGained[cat][target] = {} + end + gen = DPSAurasGained[cat][target] + if not gen[ability] then + gen[ability] = { + [1] = {}, + [2] = {}, + [3] = {}, + [4] = bool, + [5] = 0, + [6] = 0, + } + end + path = gen[ability] + if not path[3][cause] then + path[3][cause] = 0 + end + for i=1, (path[5]-path[6]) do + tinsert(path[2], path[1][path[6]+1]) + path[6] = path[6] + 1 + end + tinsert(path[1], DPSCBT[val]) + path[5] = path[5] + 1 + path[3][cause] = path[3][cause] + 1 + end + NeedUpdate = true +end + +function DPSMate.DB:DestroyBuffs(target, ability) + if not DPSMate.RegistredModules["aurasgained"] then return end + if not DPSAurasGained[1] then return end + target = self:BuildUser(target) + ability = self:BuildAbility(ability) + local TL + for cat, val in pairs(tablemodes) do + if not DPSAurasGained[cat] then DPSAurasGained[cat] = {} end + if not DPSAurasGained[cat][target] then + DPSAurasGained[cat][target] = {} + end + gen = DPSAurasGained[cat][target] + if not gen[ability] then + gen[ability] = { + [1] = {}, + [2] = {}, + [3] = {}, + [4] = false, + [5] = 0, + [6] = 0, + } + end + path = gen[ability] + TL = path[6]+1 + if not path[1][TL] then + path[1][TL] = DPSCBT[val] + path[5] = path[5] + 1 + end + tinsert(path[2], DPSCBT[val]) + path[6] = path[6] + 1 + end + NeedUpdate = true +end + +function DPSMate.DB:GetOptionsTrue(i,k) + for cat,val in pairs(DPSMateSettings["windows"][k]["options"][i]) do + if val then + return cat + end + end +end + +function DPSMate.DB:UpdatePlayerCBT(cbt) + local notInCombat = true + local type = "raid" + local num = GetNumRaidMembers() + if not DPSCBT["effective"] then return true end + local cbt1, cbt2 = DPSCBT["effective"][1], DPSCBT["effective"][2] + if not cbt1 or not cbt2 then return true end + if num<=0 then + type = "party" + num = GetNumPartyMembers() + if UnitAffectingCombat("player") or UnitAffectingCombat("pet") then + if player and player ~= "" then + cbt1[player] = (cbt1[player] or 0) + cbt + cbt2[player] = (cbt2[player] or 0) + cbt + end + notInCombat = false + end + end + local name + for i=1, num do + if UnitAffectingCombat(type..i) or UnitAffectingCombat(type.."pet"..i) then + name = UnitName(type..i) + if name then + cbt1[name] = (cbt1[name] or 0) + cbt + cbt2[name] = (cbt2[name] or 0) + cbt + notInCombat = false + end + end + end + return notInCombat +end + +local notInCombat, cbtpt +local init=true +local initTime = 0 +function DPSMate.DB:OnUpdate() + if not self.loaded then return end + -- Delayed roster retry (handles UnitName returning nil right when PARTY_MEMBERS_CHANGED fires) + -- Clear the timer BEFORE calling OnGroupUpdate so that OnGroupUpdate can re-set it + -- if it still finds nil-name slots (keeps retrying until all names resolve). + if pendingGroupUpdateTime and GT() >= pendingGroupUpdateTime then + pendingGroupUpdateTime = nil + self:OnGroupUpdate() + end + if (CombatState) then + notInCombat = false + LastUpdate = LastUpdate + arg1 + if LastUpdate>=(DPSMateSettings["mainupdatetime"] or 1.5) then + if not DPSCBT then return end + cbtpt = DPSCBT["effective"] + DPSCBT["total"] = (DPSCBT["total"] and DPSCBT["total"] or 0 )+ LastUpdate + DPSCBT["current"] = (DPSCBT["current"] and DPSCBT["current"] or 0 )+ LastUpdate + + if not CBTCache then CBTCache = {0, 0} end + CBTCache[1] = floor(DPSCBT["total"]) + CBTCache[2] = floor(DPSCBT["current"]) + + notInCombat = self:UpdatePlayerCBT(LastUpdate) -- Slowing it down + + -- Check NPC E CBT Time (May be inaccurate) -> Can be used as active time later + if cbtpt and cbtpt[1] and cbtpt[2] then + for cat, _ in pairs(ActiveMob) do + cbtpt[1][cat] = (cbtpt[1][cat] or 0) + LastUpdate + cbtpt[2][cat] = (cbtpt[2][cat] or 0) + LastUpdate + end + end + ActiveMob = {} + + DPSMate.Parser.SendSpell = {} + LastUpdate = 0 + end + + if notInCombat and (GT() - combatStartTime) > 3 then + CombatState = false + end + + if NextTotemDispel then + TotemDispelTimer = TotemDispelTimer + arg1 + if TotemDispelTimer>2 then + self:ApplyRemainingDispels() + TotemDispelTimer = 0 + end + end + else + self.MainUpdate = self.MainUpdate + arg1 + end + if NeedUpdate or CombatState then + MainLastUpdate = MainLastUpdate + arg1 + if MainLastUpdate>=(DPSMateSettings["mainupdatetime"] or 1.5) then + self:UpdateKicks() + if self.ktmavail then + self:UpdateThreat() + end + DPSMate:SetStatusBarValue() + NeedUpdate = false + MainLastUpdate = 0 + end + end + if self.MainUpdate>=30 then + self:ClearAwaitBuffs() + self:ClearAwaitAbsorb() + self:ClearAwaitHotDispel() + self.MainUpdate = 0 + end + + -- Init delay to make sure klhtm module is loaded + if init then + initTime = initTime + arg1 + if (initTime > 5) then + if klhtm then + local oldModSpecialAttack = klhtm.combat.specialattack + klhtm.combat.specialattack = function(abilityid, target, damage, iscrit, spellschool) + oldModSpecialAttack(abilityid, target, damage, iscrit, spellschool) + if DPSMate.DB.specialAbTrans[abilityid] then + if not DPSMate.DB.KTMHOOK[DPSMate.DB.specialAbTrans[abilityid]] then + DPSMate.DB.KTMHOOK[DPSMate.DB.specialAbTrans[abilityid]] = {} + end + tinsert(DPSMate.DB.KTMHOOK[DPSMate.DB.specialAbTrans[abilityid]], {target, klhtm.combat.event.threat}) + DPSMate.DB:Threat(player, DPSMate.DB.specialAbTrans[abilityid], target, klhtm.combat.event.threat, 1) + end + end + + local oldModNormalAttack = klhtm.combat.normalattack + klhtm.combat.normalattack = function(spellname, spellid, damage, isdot, target, iscrit, spellschool) + oldModNormalAttack(spellname, spellid, damage, isdot, target, iscrit, spellschool) + if not DPSMate.DB.KTMHOOK[spellname] then + DPSMate.DB.KTMHOOK[spellname] = {} + end + tinsert(DPSMate.DB.KTMHOOK[spellname], {target, klhtm.combat.event.threat}) + DPSMate.DB:Threat(player, spellname, target, klhtm.combat.event.threat, 1) + end + + local oldModHeal = klhtm.combat.registerheal + klhtm.combat.registerheal = function(spellname, spellid, amount, target) + local ka, kb = strfind(spellname, " critically") + if (ka and kb) then spellname = strsub(spellname, 1, ka-1) end + oldModHeal(spellname, spellid, amount, target) + if not DPSMate.DB.KTMHOOK[spellname] then + DPSMate.DB.KTMHOOK[spellname] = {} + end + tinsert(DPSMate.DB.KTMHOOK[spellname], {target, klhtm.combat.event.threat}) + DPSMate.DB:Threat(player, spellname, target, klhtm.combat.event.threat, 1) + end + + local oldModPowerGain = klhtm.combat.powergain + klhtm.combat.powergain = function(amount, powertype, spellid) + oldModPowerGain(amount, powertype, spellid) + if not DPSMate.DB.KTMHOOK[powertype] then + DPSMate.DB.KTMHOOK[powertype] = {} + end + local target = UnitName("target") or player + tinsert(DPSMate.DB.KTMHOOK[powertype], {target, klhtm.combat.event.threat}) + DPSMate.DB:Threat(player, powertype, target, klhtm.combat.event.threat, 1) + end + self.ktmavail = true + end + + -- Loading player data to make sure its fetched correctly! + DPSMate.Parser:OnLoad() + -- Re-run roster sync: by 5s after load, UnitName is reliable for all party slots. + this:OnGroupUpdate() + + init = false + end + end +end + +-- Type: 1 => FriendlyFire, 2 => Damage taken, 3 => Debuff taken +function DPSMate.DB:BuildFail(type, user, cause, ability, amount) + if not DPSMate.RegistredModules["fails"] then return end + user = self:BuildUser(user) + cause = self:BuildUser(cause) + ability = self:BuildAbility(ability) + local time = GameTime_GT() + for cat, val in pairs(tablemodes) do + if not DPSFail[cat] then DPSFail[cat] = {} end + if not DPSFail[cat][cause] then + DPSFail[cat][cause] = {} + end + tinsert(DPSFail[cat][cause], 1, { + [1] = type, + [2] = user, + [3] = ability, + [4] = amount, + [5] = DPSCBT[val], + [6] = time, + }) + end + DPSMate:Broadcast(3, user, cause, ability, amount, type) + NeedUpdate = true +end + +local ActiveCC = {} +function DPSMate.DB:BuildActiveCC(target, ability) + if not ActiveCC[target] then + ActiveCC[target] = {} + end + ActiveCC[target][ability] = true +end + +function DPSMate.DB:RemoveActiveCC(target, ability) + if not ActiveCC[target] then + ActiveCC[target] = {} + end + if ActiveCC[target][ability] then + ActiveCC[target][ability] = false; + end +end + +function DPSMate.DB:CheckActiveCC(cause, target) + if ActiveCC[target] then + for cat, val in pairs(ActiveCC[target]) do + if val then + for c, v in pairs(ActiveCC[target]) do + ActiveCC[target][c] = false + end + self:CCBreaker(target, cat, cause) + return true + end + end + end + return false +end + +function DPSMate.DB:CCBreaker(target, ability, cause) + if not DPSMate.RegistredModules["ccbreaker"] then return end + local time = GameTime_GT() + ability = self:BuildAbility(ability) + cause = self:BuildUser(cause) + target = self:BuildUser(target) + for cat=1,2 do + if not DPSCCBreaker[cat] then DPSCCBreaker[cat] = {} end + if not DPSCCBreaker[cat][cause] then + DPSCCBreaker[cat][cause] = {} + end + tinsert(DPSCCBreaker[cat][cause], 1, { + [1] = ability, + [2] = target, + [3] = CBTCache[cat], + [4] = time + }) + end +end + +DPSMate.DB:SetScript("OnEvent", function() this[event]() end) +DPSMate.DB:SetScript("OnUpdate", function() this:OnUpdate() end) diff --git a/src/dpslog/WeirdDPSMate/DPSMate_Frame.xml b/src/dpslog/WeirdDPSMate/DPSMate_Frame.xml new file mode 100644 index 0000000..51525e2 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_Frame.xml @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:SetMinMaxValues(1,100) + this:SetValue(100) + getglobal(this:GetName().."_BG"):SetAlpha(0.5) + + + if arg1 == "LeftButton" then + DPSMate.Options:UpdateDetails(this) + else + DPSMate.Options:InializePlayerDewDrop(this) + DPSMate.Options:OpenMenu(4, this) + end + + + DPSMate.Options:ShowTooltip() + + + GameTooltip:Hide() + + + + + + + + GameTooltip:SetOwner(this, "TOPLEFT") + GameTooltip:AddLine(DPSMate.L["leftclickopend"]) + GameTooltip:Show() + + + GameTooltip:Hide() + + + DPSMate.Options:UpdateTotalDetails(this) + + + + + + + + + + + + + + + + this:SetClampedToScreen(true) + + + if getglobal(this:GetName().."_ScrollFrame") then + getglobal(this:GetName().."_ScrollFrame_Child"):SetWidth(this:GetWidth()) + getglobal(this:GetName().."_ScrollFrame"):SetHeight(this:GetHeight()-16) + end + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GameTooltip:SetOwner(this, "TOPLEFT") + GameTooltip:AddLine(DPSMate.L["rcchangemode"]) + GameTooltip:Show() + + + GameTooltip:Hide() + + + if arg1 == "LeftButton" and not DPSMateSettings.lock then + this:GetParent():StartMoving() + end + + + if arg1 == "RightButton" then + DPSMate.Options:OpenMenu(1, this:GetParent()) + else + this:GetParent():StopMovingOrSizing() + local point, _, _, xOfs, yOfs = this:GetParent():GetPoint() + DPSMateSettings["windows"][this:GetParent().Key]["position"] = {} + DPSMateSettings["windows"][this:GetParent().Key]["position"][1] = point + DPSMateSettings["windows"][this:GetParent().Key]["position"][2] = xOfs + DPSMateSettings["windows"][this:GetParent().Key]["position"][3] = yOfs + end + + + + + + + + + + + + + + GameTooltip:SetOwner(this, "TOPLEFT") + GameTooltip:AddLine(DPSMate.L["enabledisable"]) + GameTooltip:Show() + + + GameTooltip:Hide() + + + DPSMate.Options:ToggleState() + + + + + + + + + + + + + + + + + + + + + + + + + + + this:SetVerticalScroll(0) + + + DPSMate.Options:OnVerticalScroll(this, arg1) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/DPSMate_Options.lua b/src/dpslog/WeirdDPSMate/DPSMate_Options.lua new file mode 100644 index 0000000..a57c58b --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_Options.lua @@ -0,0 +1,2212 @@ +-- Events +DPSMate.Options:RegisterEvent("PARTY_MEMBERS_CHANGED") +DPSMate.Options:RegisterEvent("RAID_ROSTER_UPDATE") +DPSMate.Options:RegisterEvent("PLAYER_ENTERING_WORLD") + +-- Global Variables +DPSMate.Options.fonts = { + ["FRIZQT"] = UNIT_NAME_FONT, + ["ARIALN"] = "Fonts\\ARIALN.TTF", + ["MORPHEUS"] = "Fonts\\MORPHEUS.TTF", + ["visitor2"] = "Interface\\AddOns\\DPSMate\\fonts\\visitor2.TTF", + ["Accidental Presidency"] = "Interface\\AddOns\\DPSMate\\fonts\\Accidental Presidency.TTF", + ["Enigma__2"] = "Interface\\AddOns\\DPSMate\\fonts\\Enigma__2.TTF", + ["VeraSe"] = "Interface\\AddOns\\DPSMate\\fonts\\VeraSe.TTF", + ["AlteHaas"] = "Interface\\AddOns\\DPSMate\\fonts\\AlteHaas.TTF", + ["CaviarDreams"] = "Interface\\AddOns\\DPSMate\\fonts\\CaviarDreams.TTF", + ["Expressway"] = "Interface\\AddOns\\DPSMate\\fonts\\Expressway.TTF", + ["ExpresswayBold"] = "Interface\\AddOns\\DPSMate\\fonts\\ExpresswayBold.TTF", + ["Roboto"] = "Interface\\AddOns\\DPSMate\\fonts\\Roboto.TTF", + ["The Bad Times"] = "Interface\\AddOns\\DPSMate\\fonts\\The Bad Times.TTF", + ["Vegur"] = "Interface\\AddOns\\DPSMate\\fonts\\Vegur.TTF", + ["Mandarin1"] = "Interface\\AddOns\\DPSMate\\fonts\\Mandarin1.TTF", + ["Mandarin2"] = "Interface\\AddOns\\DPSMate\\fonts\\Mandarin2.TTF", +} +DPSMate.Options.fontflags = { + ["None"] = "NONE", + ["Outline"] = "OUTLINE", + ["Monochrome"] = "MONOCHROME", + ["Outlined monochrome"] = "OUTLINE, MONOCHROME", + ["Tick outlined"] = "THICKOUTLINE", +} +DPSMate.Options.statusbars = { + ["Aluminium"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Aluminium", + ["Armory"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Armory", + ["BantoBar"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\BantoBar", + ["Glaze2"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Glaze2", + ["Gloss"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Gloss", + ["Graphite"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Graphite", + ["Grid"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Grid", + ["Healbot"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Healbot", + ["LiteStep"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\LiteStep", + ["Minimalist"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Minimalist", + ["normTex"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\normTex", + ["Otravi"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Otravi", + ["Outline"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Outline", + ["Perl"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Perl", + ["Round"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Round", + ["Smooth"] = "Interface\\AddOns\\DPSMate\\images\\statusbar\\Smooth", +} +DPSMate.Options.bgtexture = { + ["Solid Background"] = "Interface\\CHATFRAME\\CHATFRAMEBACKGROUND", + ["UI-Tooltip-Background"] = "Interface\\Tooltips\\UI-Tooltip-Background", +} +DPSMate.Options.stratas = { + [1] = "BACKGROUND", + [2] = "LOW", + [3] = "HIGH", +} +DPSMate.Options.bordertextures = { + ["UI-Tooltip-Border"] = "Interface\\Tooltips\\UI-Tooltip-Border", +} +DPSMate.Options.Dewdrop = AceLibrary("DPSDewdrop-2.0") +DPSMate.Options.graph = AceLibrary("DPSGraph-1.0") +DPSMate.Options.Options = { + [1] = { + type = 'group', + args = { + }, + handler = DPSMate.Options, + }, + [2] = { + type = 'group', + args = { + total = { + order = 10, + type = 'toggle', + name = DPSMate.L["total"], + desc = DPSMate.L["totalmode"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["options"][2]["total"] end, + set = function() DPSMate.Options:ToggleDrewDrop(2, "total", DPSMate.Options.Dewdrop:GetOpenedParent()) end, + }, + currentFight = { + order = 20, + type = 'toggle', + name = DPSMate.L["mcurrent"], + desc = DPSMate.L["currentmode"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["options"][2]["currentfight"] end, + set = function() DPSMate.Options:ToggleDrewDrop(2, "currentfight", DPSMate.Options.Dewdrop:GetOpenedParent()) end, + }, + }, + handler = DPSMate.Options, + }, + [3] = { + type = 'group', + args = { + test = { + order = 5, + type = 'toggle', + name = DPSMate.L["testmode"], + desc = DPSMate.L["testmodedesc"], + get = function() return DPSMate.Options.TestMode end, + set = function() DPSMate.Options:ActivateTestMode(); DPSMate.Options.Dewdrop:Close() end, + }, + report = { + order = 10, + type = 'execute', + name = DPSMate.L["report"], + desc = DPSMate.L["reportsegment"], + func = function() DPSMate_Report:Show(); DPSMate.Options.Dewdrop:Close() end, + }, + reset = { + order = 11, + type = 'execute', + name = DPSMate.L["reset"], + desc = DPSMate.L["resetdesc"], + func = function() DPSMate_PopUp:Show(); DPSMate.Options.Dewdrop:Close() end, + }, + realtime = { + order = 12, + type = 'group', + name = DPSMate.L["mrealtime"], + desc = DPSMate.L["mrealtimedesc"], + args = { + damage = { + order = 1, + type = 'execute', + name = DPSMate.L["damagedone"], + desc = DPSMate.L["realtimedmgdone"], + func = function() DPSMate.Options:SelectRealtime(DPSMate.Options.Dewdrop:GetOpenedParent(), "damage") end + }, + dmgt = { + order = 2, + type = 'execute', + name = DPSMate.L["damagetaken"], + desc = DPSMate.L["realtimedmgtaken"], + func = function() DPSMate.Options:SelectRealtime(DPSMate.Options.Dewdrop:GetOpenedParent(), "dmgt") end + }, + heal = { + order = 3, + type = 'execute', + name = DPSMate.L["healing"], + desc = DPSMate.L["realtimehealing"], + func = function() DPSMate.Options:SelectRealtime(DPSMate.Options.Dewdrop:GetOpenedParent(), "heal") end + }, + eheal = { + order = 4, + type = 'execute', + name = DPSMate.L["effectivehealing"], + desc = DPSMate.L["realtimeehealing"], + func = function() DPSMate.Options:SelectRealtime(DPSMate.Options.Dewdrop:GetOpenedParent(), "eheal") end + } + } + }, + blank1 = { + order = 20, + type = 'header', + }, + startnewsegment = { + order = 25, + type = 'execute', + name = DPSMate.L["newsegment"], + desc = DPSMate.L["newsegmentdesc"], + func = function() DPSMate.Options:NewSegment("New segment"); DPSMate.Options.Dewdrop:Close() end, + }, + deletesegment = { + order = 30, + type = 'group', + name = DPSMate.L["removesegment"], + desc = DPSMate.L["removesegmentdesc"], + args = {}, + }, + purgeoldsegments = { + order = 31, + type = 'execute', + name = DPSMate.L["purgeoldsegments"], + desc = DPSMate.L["purgeoldsegmentsdesc"], + func = function() DPSMate.Options:PurgeOldSegments() end, + }, + blank2 = { + order = 32, + type = 'header', + }, + showAll = { + order = 32, + type = 'execute', + name = DPSMate.L["showAll"], + desc = DPSMate.L["showAllDesc"], + func = function() for _, val in DPSMateSettings["windows"] do DPSMate.Options:Show(getglobal("DPSMate_"..val["name"])) end; DPSMate.Options.Dewdrop:Close() end, + }, + hideAll = { + order = 33, + type = 'execute', + name = DPSMate.L["hideAll"], + desc = DPSMate.L["hideAllDesc"], + func = function() for _, val in DPSMateSettings["windows"] do DPSMate.Options:Hide(getglobal("DPSMate_"..val["name"])) end; DPSMate.Options.Dewdrop:Close() end, + }, + showwindow = { + order = 36, + type = 'group', + name = DPSMate.L["showwindow"], + desc = DPSMate.L["showwindowdesc"], + args = {}, + }, + hidewindow = { + order = 37, + type = 'group', + name = DPSMate.L["hidewindow"], + desc = DPSMate.L["hidewindowdesc"], + args = {}, + }, + blank3 = { + order = 38, + type = 'header', + }, + lock = { + order = 40, + type = 'toggle', + name = DPSMate.L["lock"], + desc = DPSMate.L["lockdesc"], + get = function() return DPSMateSettings["lock"] end, + set = function() DPSMate.Options:Lock(); DPSMate.Options.Dewdrop:Close() end, + }, + unlock = { + order = 50, + type = 'toggle', + name = DPSMate.L["unlock"], + desc = DPSMate.L["unlock"], + get = function() return not DPSMateSettings["lock"] end, + set = function() DPSMate.Options:Unlock(); DPSMate.Options.Dewdrop:Close() end, + }, + configure = { + order = 80, + type = 'execute', + name = DPSMate.L["config"], + desc = DPSMate.L["config"], + func = function() DPSMate_ConfigMenu:Show(); DPSMate.Options.Dewdrop:Close() end, + }, + close = { + order = 90, + type = 'execute', + name = DPSMate.L["close"], + desc = DPSMate.L["close"], + func = function() DPSMate.Options.Dewdrop:Close() end, + }, + }, + handler = DPSMate.Options, + }, + [4] = { + type = 'group', + args = { + report = { + order = 10, + type = 'group', + name = DPSMate.L["report"], + desc = DPSMate.L["reportdesc"], + args = { + whisper = { + order = 10, + type = "text", + name = DPSMate.L["whisper"], + desc = DPSMate.L["whisperdesc"], + get = function() return "" end, + set = function(name) DPSMate.Options:ReportUserDetails(DPSMate.Options.Dewdrop:GetOpenedParent(), DPSMate.L["whisper"], name); DPSMate.Options.Dewdrop:Close() end, + usage = "", + }, + }, + }, + compare = { + order = 20, + type = 'group', + name = DPSMate.L["comparewith"], + desc = DPSMate.L["comparewithdesc"], + args = { + + }, + } + }, + handler = DPSMate.Options, + }, + [5] = { + type = 'group', + args = { + classes = { + order = 10, + type = 'group', + name = DPSMate.L["classes"], + desc = DPSMate.L["classesdesc"], + args = { + warrior = { + order = 10, + type = 'toggle', + name = DPSMate.L["warrior"], + desc = DPSMate.L["warriordesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["warrior"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "warrior") end, + }, + rogue = { + order = 20, + type = 'toggle', + name = DPSMate.L["rogue"], + desc = DPSMate.L["roguedesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["rogue"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "rogue") end, + }, + priest = { + order = 30, + type = 'toggle', + name = DPSMate.L["priest"], + desc = DPSMate.L["priestdesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["priest"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "priest") end, + }, + hunter = { + order = 40, + type = 'toggle', + name = DPSMate.L["hunter"], + desc = DPSMate.L["hunterdesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["hunter"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "hunter") end, + }, + druid = { + order = 50, + type = 'toggle', + name = DPSMate.L["druid"], + desc = DPSMate.L["druiddesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["druid"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "druid") end, + }, + mage = { + order = 60, + type = 'toggle', + name = DPSMate.L["mage"], + desc = DPSMate.L["magedesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["mage"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "mage") end, + }, + warlock = { + order = 70, + type = 'toggle', + name = DPSMate.L["warlock"], + desc = DPSMate.L["warlockdesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["warlock"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "warlock") end, + }, + paladin = { + order = 80, + type = 'toggle', + name = DPSMate.L["paladin"], + desc = DPSMate.L["paladindesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["paladin"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "paladin") end, + }, + shamen = { + order = 90, + type = 'toggle', + name = DPSMate.L["shaman"], + desc = DPSMate.L["shamandesc"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterclasses"]["shaman"] end, + set = function() DPSMate.Options:ToggleFilterClass(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "shaman") end, + }, + }, + }, + people = { + order = 20, + type = 'text', + name = DPSMate.L["certainnames"], + desc = DPSMate.L["certainnamesdesc"], + get = function() if DPSMate.Options.Dewdrop:GetOpenedParent() then return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterpeople"] else return "" end end, + set = function(names) DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["filterpeople"] = names;DPSMate:SetStatusBarValue();DPSMate.Options.Dewdrop:Close() end, + usage = "", + }, + group = { + order = 30, + type = "toggle", + name = DPSMate.L["grouponly"], + desc = DPSMate.L["grouponlydesc"], + get = function() return DPSMateSettings["windows"][(DPSMate.Options.Dewdrop:GetOpenedParent() or DPSMate).Key or 1]["grouponly"] end, + set = function() DPSMate.DB:OnGroupUpdate();DPSMate.Options:SimpleToggle(DPSMate.Options.Dewdrop:GetOpenedParent().Key, "grouponly");DPSMate.Options.Dewdrop:Close() end, + } + }, + handler = DPSMate.Options, + }, +} +DPSMate.Options.TestMode = false + +-- Local Variables +local LastPopUp = 0 +local TimeToNextPopUp = 1 +local PartyNum, LastPartyNum = 0, 0 +local SelectedChannel = DPSMate.L["raid"] + +local _G = getglobal +local tinsert = table.insert +local tremove = tremove +local strformat = string.format +local strgfind = string.gfind +local SendChatMessage = function(prio, prefix, text, chattype, language, destination) + ChatThrottleLib:SendChatMessage(prio, prefix, text, chattype, language, destination) +end + +-- Begin Functions + +function DPSMate.Options:SelectRealtime(obj, kind) + if kind then + local key = obj.Key or 1 + DPSMateSettings["windows"][key]["realtime"] = kind + if not _G(obj:GetName().."_RealTime") then + local f = CreateFrame("Frame", obj:GetName().."_RealTime", obj, "DPSMate_RealTime") + local g = DPSMate.Options.graph:CreateGraphRealtime(f:GetName().."_Graph",f,"BOTTOMRIGHT","BOTTOMRIGHT",-5,5,190,150) + g:SetAutoScale(true) + g:SetGridSpacing(1.0,10.0) + g:SetYMax(120) + g:SetXAxis(-11,-1) + g:SetFilterRadius(1) + g:SetBarColors({0.2,0.0,0.0,0.4},{1.0,0.0,0.0,1.0}) + g:SetScript("OnUpdate",function() + if DPSMate.DB.loaded and DPSMateSettings["windows"][key]["realtime"] then + g:OnUpdate(g) + g:AddTimeData(DPSMate.DB:GetAlpha(key)) + end + end) + f:Show() + g:Show() + DPSMate.DB:HookGraphEvents() + else + _G(obj:GetName().."_RealTime"):Show() + end + DPSMate.Options.Dewdrop:Close() + end +end + +function DPSMate.Options:InitializeConfigMenu() + -- Inialize Extra Buttons + for cat, val in pairs(DPSMateSettings["windows"]) do + local f = CreateFrame("Button", "DPSMate_ConfigMenu_Menu_Button"..(9+cat), DPSMate_ConfigMenu_Menu, "DPSMate_Template_WindowButton") + f.Key = cat + _G("DPSMate_ConfigMenu_Menu_Button"..(9+cat).."Text"):SetText(val["name"]) + if cat>1 then + f:SetPoint("TOP", _G("DPSMate_ConfigMenu_Menu_Button"..(8+cat)), "BOTTOM") + _G("DPSMate_ConfigMenu_Menu_Button"..(8+cat)).after = f + else + f:SetPoint("TOP", DPSMate_ConfigMenu_Menu_Button1, "BOTTOM") + end + f.after = DPSMate_ConfigMenu_Menu_Button2 + DPSMate_ConfigMenu.num = 9+cat + f.func = function() + _G(this:GetParent():GetParent():GetName()..this:GetParent().selected):Hide() + _G(this:GetParent():GetParent():GetName().."_Tab_Window"):Show() + this:GetParent().selected = "_Tab_Window" + end + end + local TL = DPSMate:TableLength(DPSMateSettings["windows"]) + if TL>=1 then + DPSMate_ConfigMenu_Menu_Button2:ClearAllPoints() + DPSMate_ConfigMenu_Menu_Button2:SetPoint("TOP", _G("DPSMate_ConfigMenu_Menu_Button"..(9+TL)), "BOTTOM") + end + + -- Tab Window + DPSMate_ConfigMenu_Tab_Window_Lock:SetChecked(DPSMateSettings["lock"]) + + -- Tab Bars + if not DPSMate_ConfigMenu_Tab_Bars_BarTexture.tex then + DPSMate_ConfigMenu_Tab_Bars_BarTexture.tex = DPSMate_ConfigMenu_Tab_Bars_BarTexture:CreateTexture("BG", "ARTWORK") + DPSMate_ConfigMenu_Tab_Bars_BarTexture.tex:SetWidth(110) + DPSMate_ConfigMenu_Tab_Bars_BarTexture.tex:SetHeight(15) + DPSMate_ConfigMenu_Tab_Bars_BarTexture.tex:SetPoint("TOPLEFT", DPSMate_ConfigMenu_Tab_Bars_BarTexture, "TOPLEFT", 23, -7) + end + + -- Tab Title bar + if not DPSMate_ConfigMenu_Tab_TitleBar_BarTexture.tex then + DPSMate_ConfigMenu_Tab_TitleBar_BarTexture.tex = DPSMate_ConfigMenu_Tab_TitleBar_BarTexture:CreateTexture("BG", "ARTWORK") + DPSMate_ConfigMenu_Tab_TitleBar_BarTexture.tex:SetWidth(110) + DPSMate_ConfigMenu_Tab_TitleBar_BarTexture.tex:SetHeight(15) + DPSMate_ConfigMenu_Tab_TitleBar_BarTexture.tex:SetPoint("TOPLEFT", DPSMate_ConfigMenu_Tab_TitleBar_BarTexture, "TOPLEFT", 23, -7) + end + + -- Tab General Options + DPSMate_ConfigMenu_Tab_GeneralOptions_Minimap:SetChecked(DPSMateSettings["showminimapbutton"]) + if not DPSMateSettings["showminimapbutton"] then + DPSMate_MiniMap:Hide() + end + DPSMate_ConfigMenu_Tab_GeneralOptions_Total:SetChecked(DPSMateSettings["showtotals"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_BossFights:SetChecked(DPSMateSettings["onlybossfights"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_Solo:SetChecked(DPSMateSettings["hidewhensolo"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_Combat:SetChecked(DPSMateSettings["hideincombat"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_Login:SetChecked(DPSMateSettings["hideonlogin"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_PVP:SetChecked(DPSMateSettings["hideinpvp"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_Disable:SetChecked(DPSMateSettings["disablewhilehidden"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_MergePets:SetChecked(DPSMateSettings["mergepets"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_Segments:SetValue(DPSMateSettings["datasegments"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_TargetScale:SetValue(DPSMateSettings["targetscale"]) + DPSMate_ConfigMenu_Tab_GeneralOptions_UpdateInterval:SetValue(DPSMateSettings["mainupdatetime"] or 1.5) + DPSMate_ConfigMenu_Tab_GeneralOptions_AutoWipe:SetValue(DPSMateSettings["autowipesessions"] or 0) + + -- Tab Columns + for i=1, 4 do + _G("DPSMate_ConfigMenu_Tab_Columns_Child_DPS_Check"..i):SetChecked(DPSMateSettings["columnsdps"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Damage_Check"..i):SetChecked(DPSMateSettings["columnsdmg"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_DamageTaken_Check"..i):SetChecked(DPSMateSettings["columnsdmgtaken"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_DTPS_Check"..i):SetChecked(DPSMateSettings["columnsdtps"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_EDD_Check"..i):SetChecked(DPSMateSettings["columnsedd"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_EDT_Check"..i):SetChecked(DPSMateSettings["columnsedt"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Healing_Check"..i):SetChecked(DPSMateSettings["columnshealing"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_HealingTaken_Check"..i):SetChecked(DPSMateSettings["columnshealingtaken"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_HPS_Check"..i):SetChecked(DPSMateSettings["columnshps"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Overhealing_Check"..i):SetChecked(DPSMateSettings["columnsoverhealing"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_EffectiveHealing_Check"..i):SetChecked(DPSMateSettings["columnsehealing"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_EffectiveHealingTaken_Check"..i):SetChecked(DPSMateSettings["columnsehealingtaken"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_EffectiveHPS_Check"..i):SetChecked(DPSMateSettings["columnsehps"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_HAB_Check"..i):SetChecked(DPSMateSettings["columnshab"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_FriendlyFire_Check"..i):SetChecked(DPSMateSettings["columnsfriendlyfire"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Threat_Check"..i):SetChecked(DPSMateSettings["columnsthreat"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_TPS_Check"..i):SetChecked(DPSMateSettings["columnstps"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Absorbs_Check"..i):SetChecked(DPSMateSettings["columnsabsorbs"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_AbsorbsTaken_Check"..i):SetChecked(DPSMateSettings["columnsabsorbstaken"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_OHealingTaken_Check"..i):SetChecked(DPSMateSettings["columnsohealingtaken"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_OHPS_Check"..i):SetChecked(DPSMateSettings["columnsohps"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_FriendlyFireTaken_Check"..i):SetChecked(DPSMateSettings["columnsfriendlyfiretaken"][i]) + end + for i=1, 2 do + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Deaths_Check"..i):SetChecked(DPSMateSettings["columnsdeaths"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Interrupts_Check"..i):SetChecked(DPSMateSettings["columnsinterrupts"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Dispels_Check"..i):SetChecked(DPSMateSettings["columnsdispels"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_DispelsReceived_Check"..i):SetChecked(DPSMateSettings["columnsdispelsreceived"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Decurses_Check"..i):SetChecked(DPSMateSettings["columnsdecurses"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_DecursesReceived_Check"..i):SetChecked(DPSMateSettings["columnsdecursesreceived"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Disease_Check"..i):SetChecked(DPSMateSettings["columnsdisease"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_DiseaseReceived_Check"..i):SetChecked(DPSMateSettings["columnsdiseasereceived"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Poison_Check"..i):SetChecked(DPSMateSettings["columnspoison"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_PoisonReceived_Check"..i):SetChecked(DPSMateSettings["columnspoisonreceived"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Magic_Check"..i):SetChecked(DPSMateSettings["columnsmagic"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_MagicReceived_Check"..i):SetChecked(DPSMateSettings["columnsmagicreceived"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_AurasGained_Check"..i):SetChecked(DPSMateSettings["columnsaurasgained"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_AurasLost_Check"..i):SetChecked(DPSMateSettings["columnsauraslost"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_AuraUptime_Check"..i):SetChecked(DPSMateSettings["columnsaurauptime"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Procs_Check"..i):SetChecked(DPSMateSettings["columnsprocs"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Casts_Check"..i):SetChecked(DPSMateSettings["columnscasts"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_Fails_Check"..i):SetChecked(DPSMateSettings["columnsfails"][i]) + _G("DPSMate_ConfigMenu_Tab_Columns_Child_CCBreaker_Check"..i):SetChecked(DPSMateSettings["columnsccbreaker"][i]) + end + + -- Tab Tooltips + DPSMate_ConfigMenu_Tab_Tooltips_Tooltips:SetChecked(DPSMateSettings["showtooltips"]) + DPSMate_ConfigMenu_Tab_Tooltips_InformativeTooltips:SetChecked(DPSMateSettings["informativetooltips"]) + DPSMate_ConfigMenu_Tab_Tooltips_Rows:SetValue(DPSMateSettings["subviewrows"]) + + -- Tab Broadcasting + DPSMate_ConfigMenu_Tab_Broadcasting_Enable:SetChecked(DPSMateSettings["broadcasting"]) + DPSMate_ConfigMenu_Tab_Broadcasting_Cooldowns:SetChecked(DPSMateSettings["bccd"]) + DPSMate_ConfigMenu_Tab_Broadcasting_Ress:SetChecked(DPSMateSettings["bcress"]) + DPSMate_ConfigMenu_Tab_Broadcasting_KillingBlows:SetChecked(DPSMateSettings["bckb"]) + DPSMate_ConfigMenu_Tab_Broadcasting_Fails:SetChecked(DPSMateSettings["bcfail"]) + DPSMate_ConfigMenu_Tab_Broadcasting_RaidWarning:SetChecked(DPSMateSettings["bcrw"]) + + -- Mode menu + for cat, _ in DPSMateSettings["hiddenmodes"] do + DPSMate.Options.Options[1]["args"][cat] = nil + end + +end + +DPSMate.Options.OldLogout = Logout +function DPSMate.Options:Logout() + if DPSMateSettings["sync"] then + if UnitInRaid("player") then + DPSMate:SendMessage(DPSMate.L["syncreseterror"]) + else + DPSMate.Options:PopUpAccept(true, true) + end + else + DPSMate.Options:PopUpAccept(true, true) + end + --self:SumGraphData() + DPSMate.Options.OldLogout() +end +Logout = function() + -- Strip ["i"] event/bucket tables and collapse AurasGained timestamp arrays + -- before SavedVariables are written to disk, to keep the file size manageable. + DPSMate:StripInstantFromMode1() + DPSMate:CollapseAuraTimestamps() + if DPSMateSettings["dataresetslogout"] == 3 then + DPSMate_Logout:Show() + elseif DPSMateSettings["dataresetslogout"] == 2 then + --DPSMate.Options:SumGraphData() + DPSMate.Options.OldLogout() + else + DPSMate.Options:Logout() + end +end + +function DPSMate.Options:ToggleVisibility() + for key, val in DPSMateSettings["windows"] do + if val["hidden"] then + getglobal("DPSMate_"..val["name"]):Show() + DPSMateSettings["windows"][key]["hidden"] = false + else + getglobal("DPSMate_"..val["name"]):Hide() + DPSMateSettings["windows"][key]["hidden"] = true + end + end +end + +function DPSMate.Options:ActivateTestMode() + if self.TestMode then + self.TestMode = false + DPSMate:SetStatusBarValue() + else + self.TestMode = true + for k,c in DPSMateSettings.windows do + if DPSMateSettings["showtotals"] then + _G("DPSMate_"..c["name"].."_ScrollFrame_Child_Total_Name"):SetText("Total") + _G("DPSMate_"..c["name"].."_ScrollFrame_Child_Total_Value"):SetText("3000000") + end + for i=1, 40 do + local statusbar, name, value, texture, p = _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i), _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name"), _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i.."_Value"), _G("DPSMate_"..c["name"].."_ScrollFrame_Child_StatusBar"..i.."_Icon"), "" + _G("DPSMate_"..c["name"].."_ScrollFrame_Child"):SetHeight((i+1)*(c["barheight"]+c["barspacing"])) + + statusbar:SetStatusBarColor(0.78,0.61,0.43, 1) + + if c["ranks"] then p=i..". " else p="" end + name:SetText(p.."Test "..i) + value:SetText("100000") + texture:SetTexture("Interface\\AddOns\\DPSMate\\images\\class\\warrior") + statusbar:SetValue(100) + + statusbar.user = nil + statusbar:Show() + end + end + end +end + +function DPSMate.Options:ToggleFilterClass(key, class) + if DPSMateSettings["windows"][key]["filterclasses"][class] then + DPSMateSettings["windows"][key]["filterclasses"][class] = false + else + DPSMateSettings["windows"][key]["filterclasses"][class] = true + end + DPSMate:SetStatusBarValue() +end + +function DPSMate.Options:SimpleToggle(key, opt) + if DPSMateSettings["windows"][key][opt] then + DPSMateSettings["windows"][key][opt] = false + else + DPSMateSettings["windows"][key][opt] = true + end + DPSMate:SetStatusBarValue() +end + +function DPSMate.Options:RosterUpdate() + this:HideWhenSolo() + if this:IsInParty() then + if LastPartyNum == 0 then + if DPSMateSettings["dataresetsjoinparty"] == 3 then + if (GetTime()-LastPopUp) > TimeToNextPopUp then + this:ShowResetPopUp() + LastPopUp = GetTime() + end + elseif DPSMateSettings["dataresetsjoinparty"] == 1 then + this:PopUpAccept(true, true) + end + elseif LastPartyNum ~= PartyNum then + if DPSMateSettings["dataresetspartyamount"] == 3 then + if (GetTime()-LastPopUp) > TimeToNextPopUp then + this:ShowResetPopUp() + LastPopUp = GetTime() + end + elseif DPSMateSettings["dataresetspartyamount"] == 1 then + this:PopUpAccept(true) + end + end + else + if LastPartyNum > PartyNum then + if DPSMateSettings["dataresetsleaveparty"] == 3 then + if (GetTime()-LastPopUp) > TimeToNextPopUp then + this:ShowResetPopUp() + LastPopUp = GetTime() + end + elseif DPSMateSettings["dataresetsleaveparty"] == 1 then + this:PopUpAccept(true) + end + end + end + DPSMate.DB:OnGroupUpdate() +end + +DPSMate.Options.PARTY_MEMBERS_CHANGED = function() + this:RosterUpdate() +end + +DPSMate.Options.RAID_ROSTER_UPDATE = function() + this:RosterUpdate() +end + +DPSMate.Options.PLAYER_ENTERING_WORLD = function() + if DPSMate.DB.loaded then + if DPSMateSettings["dataresetsworld"] == 3 then + if (GetTime()-LastPopUp) > TimeToNextPopUp then + DPSMate.Options:ShowResetPopUp() + LastPopUp = GetTime() + end + elseif DPSMateSettings["dataresetsworld"] == 1 and not DPSMate.Options:IsInParty() then + DPSMate.Options:PopUpAccept(true) + end + DPSMate.Options:HideInPvP() + if DPSMateSettings["hideonlogin"] then + for _, val in pairs(DPSMateSettings["windows"]) do + DPSMate.Options:Hide(_G("DPSMate_"..val["name"])) + end + end + DPSMate.DB:OnGroupUpdate() + end +end + +function DPSMate.Options:ShowResetPopUp() + if DPSMateSettings["sync"] then + if IsPartyLeader() or IsRaidOfficer() or IsRaidLeader() then + DPSMate_PopUp:Show() + end + else + DPSMate_PopUp:Show() + end +end + +function DPSMate.Options:IsInBattleground() + for i=1, 4 do + local status, mapName, instanceID, lowestlevel, highestlevel, teamSize, registeredMatch = GetBattlefieldStatus(i) + if status == "active" and DPSMateSettings["hideinpvp"] then + return true + end + end + return false +end + +function DPSMate.Options:HideInPvP() + for _, val in pairs(DPSMateSettings["windows"]) do + local frame = _G("DPSMate_"..val["name"]) + if DPSMate.Options:IsInBattleground() then + frame:Hide() + if DPSMateSettings["disablewhilehidden"] then + DPSMate:Disable() + end + end + end + DPSMate.Options:HideWhenSolo() +end + +function DPSMate.Options:HideWhenSolo() + for _, val in pairs(DPSMateSettings["windows"]) do + local frame = _G("DPSMate_"..val["name"]) + if DPSMateSettings["hidewhensolo"] and not DPSMate.Options:IsInBattleground() then + if GetNumPartyMembers() == 0 and GetNumRaidMembers() == 0 then + frame:Hide() + if DPSMateSettings["disablewhilehidden"] then + DPSMate:Disable() + end + else + if not val["hidden"] then + frame:Show() + end + DPSMate:Enable() + end + end + end +end + +function DPSMate.Options:IsInParty() + LastPartyNum = PartyNum + if UnitInRaid("player") then + PartyNum = GetNumRaidMembers() + return true + elseif GetNumPartyMembers() > 0 then + PartyNum = GetNumPartyMembers() + return true + else + PartyNum = 0 + return false + end +end + +function DPSMate.Options:PopUpAccept(bool, bypass) + DPSMate_PopUp:Hide() + if (GetNumPartyMembers()>0 or UnitInRaid("player")) and not bypass and DPSMateSettings["sync"] and bool then + if IsPartyLeader() or IsRaidOfficer() or IsRaidLeader() then + DPSMate.Sync:StartVote() + else + DPSMate:SendMessage(DPSMate.L["resetnotofficererror"]) + return + end + else + if bool then + DPSMateDamageDone = {[1]={},[2]={}} + DPSMateDamageTaken = {[1]={},[2]={}} + DPSMateEDD = {[1]={},[2]={}} + DPSMateEDT = {[1]={},[2]={}} + DPSMateTHealing = {[1]={},[2]={}} + DPSMateEHealing = {[1]={},[2]={}} + DPSMateOverhealing = {[1]={},[2]={}} + DPSMateHealingTaken = {[1]={},[2]={}} + DPSMateEHealingTaken = {[1]={},[2]={}} + DPSMateOverhealingTaken = {[1]={},[2]={}} + DPSMateAbsorbs = {[1]={},[2]={}} + DPSMateDispels = {[1]={},[2]={}} + DPSMateDeaths = {[1]={},[2]={}} + DPSMateInterrupts = {[1]={},[2]={}} + DPSMateAurasGained = {[1]={},[2]={}} + DPSMateThreat = {[1]={},[2]={}} + DPSMateFails = {[1]={},[2]={}} + DPSMateCCBreaker = {[1]={},[2]={}} + DPSMateHistory = { + names = {}, + timestamps = {}, + DMGDone = {}, + DMGTaken = {}, + EDDone = {}, + EDTaken = {}, + THealing = {}, + EHealing = {}, + OHealing = {}, + EHealingTaken = {}, + THealingTaken = {}, + OHealingTaken = {}, + Absorbs = {}, + Deaths = {}, + Interrupts = {}, + Dispels = {}, + Auras = {}, + Threat = {}, + Fail = {}, + CCBreaker = {} + } + DPSMateCombatTime = { + total = 0.0001, + current = 0.0001, + segments = {}, + effective = { + [1] = {}, + [2] = {} + }, + } + DPSMate:UpdatePointer() + DPSMate.DB:UpdatePointer() + + -- Get buffs of people after reset + local type = "party" + local num = GetNumPartyMembers() + if num<=0 then + type = "raid" + num = GetNumRaidMembers() + end + for p=1, num do + for i=1, 32 do + GameTooltip:SetOwner(UIParent) + GameTooltip:SetUnitBuff(type..p, i) + local buff = GameTooltipTextLeft1:GetText() + GameTooltip:Hide() + if buff then + DPSMate.DB:BuildBuffs(DPSMate.L["unknown"], UnitName(type..p), buff, false) + end + end + end + if type == "party" or num <= 0 then + for i=0,31 do + GameTooltip:SetOwner(UIParent) + GameTooltip:SetPlayerBuff(i) + local buff = GameTooltipTextLeft1:GetText() + GameTooltip:Hide() + if buff then + DPSMate.DB:BuildBuffs(DPSMate.L["unknown"], UnitName("player"), buff, false) + end + end + end + else + DPSMateDamageDone[2] = {} + DPSMateDamageTaken[2] = {} + DPSMateEDD[2] = {} + DPSMateEDT[2] = {} + DPSMateTHealing[2] = {} + DPSMateEHealing[2] = {} + DPSMateOverhealing[2] = {} + DPSMateHealingTaken[2] = {} + DPSMateEHealingTaken[2] = {} + DPSMateOverhealingTaken[2] = {} + DPSMateAbsorbs[2] = {} + DPSMateDispels[2] = {} + DPSMateDeaths[2] = {} + DPSMateInterrupts[2] = {} + DPSMateAurasGained[2] = {} + DPSMateThreat[2] = {} + DPSMateFails[2] = {} + DPSMateCCBreaker[2] = {} + DPSMateCombatTime["current"] = 0.0001 + + DPSMate:UpdatePointer() + DPSMate.DB:UpdatePointer() + end + + if DPSMate.Modules.DPS then DPSMate.Modules.DPS.DB = DPSMateDamageDone end + if DPSMate.Modules.Damage then DPSMate.Modules.Damage.DB = DPSMateDamageDone end + if DPSMate.Modules.DamageTaken then DPSMate.Modules.DamageTaken.DB = DPSMateDamageTaken end + if DPSMate.Modules.DTPS then DPSMate.Modules.DTPS.DB = DPSMateDamageTaken end + if DPSMate.Modules.EDD then DPSMate.Modules.EDD.DB = DPSMateEDD end + if DPSMate.Modules.EDT then DPSMate.Modules.EDT.DB = DPSMateEDT end + if DPSMate.Modules.FriendlyFire then DPSMate.Modules.FriendlyFire.DB = DPSMateEDT end + if DPSMate.Modules.FriendlyFireTaken then DPSMate.Modules.FriendlyFireTaken.DB = DPSMateEDT end + if DPSMate.Modules.Healing then DPSMate.Modules.Healing.DB = DPSMateTHealing end + if DPSMate.Modules.HPS then DPSMate.Modules.HPS.DB = DPSMateTHealing end + if DPSMate.Modules.Overhealing then DPSMate.Modules.Overhealing.DB = DPSMateOverhealing end + if DPSMate.Modules.EffectiveHealing then DPSMate.Modules.EffectiveHealing.DB = DPSMateEHealing end + if DPSMate.Modules.EffectiveHPS then DPSMate.Modules.EffectiveHPS.DB = DPSMateEHealing end + if DPSMate.Modules.HealingTaken then DPSMate.Modules.HealingTaken.DB = DPSMateHealingTaken end + if DPSMate.Modules.EffectiveHealingTaken then DPSMate.Modules.EffectiveHealingTaken.DB = DPSMateEHealingTaken end + if DPSMate.Modules.Absorbs then DPSMate.Modules.Absorbs.DB = DPSMateAbsorbs end + if DPSMate.Modules.AbsorbsTaken then DPSMate.Modules.AbsorbsTaken.DB = DPSMateAbsorbs end + if DPSMate.Modules.HealingAndAbsorbs then DPSMate.Modules.HealingAndAbsorbs.DB = DPSMateAbsorbs end + if DPSMate.Modules.Deaths then DPSMate.Modules.Deaths.DB = DPSMateDeaths end + if DPSMate.Modules.Dispels then DPSMate.Modules.Dispels.DB = DPSMateDispels end + if DPSMate.Modules.DispelsReceived then DPSMate.Modules.DispelsReceived.DB = DPSMateDispels end + if DPSMate.Modules.Decurses then DPSMate.Modules.Decurses.DB = DPSMateDispels end + if DPSMate.Modules.DecursesReceived then DPSMate.Modules.DecursesReceived.DB = DPSMateDispels end + if DPSMate.Modules.CureDisease then DPSMate.Modules.CureDisease.DB = DPSMateDispels end + if DPSMate.Modules.CureDiseaseReceived then DPSMate.Modules.CureDiseaseReceived.DB = DPSMateDispels end + if DPSMate.Modules.CurePoison then DPSMate.Modules.CurePoison.DB = DPSMateDispels end + if DPSMate.Modules.CurePoisonReceived then DPSMate.Modules.CurePoisonReceived.DB = DPSMateDispels end + if DPSMate.Modules.LiftMagic then DPSMate.Modules.LiftMagic.DB = DPSMateDispels end + if DPSMate.Modules.LiftMagicReceived then DPSMate.Modules.LiftMagicReceived.DB = DPSMateDispels end + if DPSMate.Modules.Interrupts then DPSMate.Modules.Interrupts.DB = DPSMateInterrupts end + if DPSMate.Modules.AurasGained then DPSMate.Modules.AurasGained.DB = DPSMateAurasGained end + if DPSMate.Modules.AurasLost then DPSMate.Modules.AurasLost.DB = DPSMateAurasGained end + if DPSMate.Modules.AurasUptimers then DPSMate.Modules.AurasUptimers.DB = DPSMateAurasGained end + if DPSMate.Modules.Procs then DPSMate.Modules.Procs.DB = DPSMateAurasGained end + if DPSMate.Modules.Casts then DPSMate.Modules.Casts.DB = DPSMateEDT end + if DPSMate.Modules.Threat then DPSMate.Modules.Threat.DB = DPSMateThreat end + if DPSMate.Modules.TPS then DPSMate.Modules.TPS.DB = DPSMateThreat end + if DPSMate.Modules.Fails then DPSMate.Modules.Fails.DB = DPSMateFails end + if DPSMate.Modules.CCBreaker then DPSMate.Modules.CCBreaker.DB = DPSMateCCBreaker end + if DPSMate.Modules.OHPS then DPSMate.Modules.OHPS.DB = DPSMateOverhealing end + if DPSMate.Modules.OHealingTaken then DPSMate.Modules.OHealingTaken.DB = DPSMateOverhealingTaken end + if DPSMate.Modules.Activity then DPSMate.Modules.Activity.DB = DPSMateCombatTime end + + for _, val in pairs(DPSMateSettings["windows"]) do + if not val["options"][2]["total"] and not val["options"][2]["currentfight"] then + -- No valid mode selected; clear all entries and default to total + for cat, _ in pairs(val["options"][2]) do + val["options"][2][cat] = false + end + val["options"][2]["total"] = true + end + end + + DPSMate:UpdatePointer() + DPSMate.DB:UpdatePointer() + + DPSMate.DB:DamageDone(UnitName("player"), "Init", 0, 0, 0, 0, 0, 0, 0, 0, 0) -- Hackfix to fix the hunter issue where the player is not shown if pet damage is merged + DPSMate.Options:InitializeSegments() + DPSMate:SetStatusBarValue() + end +end + +function DPSMate.Options:OpenMenu(b, obj) + for _, val in pairs(DPSMateSettings.windows) do + if DPSMate.Options.Dewdrop:IsOpen(_G("DPSMate_"..val["name"])) then + DPSMate.Options.Dewdrop:Close() + return + end + if DPSMate.Options.Dewdrop:IsRegistered(_G("DPSMate_"..val["name"])) then DPSMate.Options.Dewdrop:Unregister(_G("DPSMate_"..val["name"])) end + end + DPSMate.Options.Dewdrop:Register(obj, + 'children', function() + DPSMate.Options.Dewdrop:FeedAceOptionsTable(DPSMate.Options.Options[b]) + end, + 'cursorX', true, + 'cursorY', true, + 'dontHook', true + ) + DPSMate.Options.Dewdrop:Open(obj) +end + +function DPSMate.Options:ToggleDrewDrop(i, obj, pa) + if not DPSMateSettings["windows"][1] then return end + for cat, _ in pairs(DPSMateSettings["windows"][pa.Key]["options"][i]) do + DPSMateSettings["windows"][pa.Key]["options"][i][cat] = false + end + DPSMateSettings["windows"][pa.Key]["options"][i][obj] = true + if i == 1 then + if not DPSMate.Options.Options[1]["args"][obj] then + obj = "damage" + end + _G(pa:GetName().."_Head_Font"):SetText(DPSMate.Options.Options[i]["args"][obj].name) + DPSMateSettings["windows"][pa.Key]["CurMode"] = obj + end + DPSMate.Options.Dewdrop:Close() + if DPSMate.DB.loaded then DPSMate:SetStatusBarValue() end + return true +end + +function DPSMate.Options:UpdateDetails(obj, bool, objname) + if objname then + obj = _G(objname) + end + local key = obj:GetParent():GetParent():GetParent().Key + if obj.user then + if not DPSMateUser[obj.user] then + DPSMate:SendMessage("Player data not found: "..obj.user) + return + end + DPSMate.RegistredModules[DPSMateSettings["windows"][key]["CurMode"]]:OpenDetails(obj, key, bool) + else + DPSMate:SendMessage(DPSMate.L["findusererror"]) + end +end + +function DPSMate.Options:UpdateTotalDetails(obj) + local key = obj:GetParent():GetParent():GetParent().Key + DPSMate.RegistredModules[DPSMateSettings["windows"][key]["CurMode"]]:OpenTotalDetails(obj, key) +end + +function DPSMate.Options:DropDownStyleReset() + for i=1, 20 do + local button = _G("DropDownList1Button"..i) + _G("DropDownList1Button"..i.."NormalText"):SetFont(STANDARD_TEXT_FONT, UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT) + button:SetScript("OnEnter", function() + if ( this.hasArrow ) then + ToggleDropDownMenu(this:GetParent():GetID() + 1, this.value); + else + CloseDropDownMenus(this:GetParent():GetID() + 1); + end + getglobal(this:GetName().."Highlight"):Show(); + UIDropDownMenu_StopCounting(this:GetParent()); + if ( this.tooltipTitle ) then + GameTooltip_AddNewbieTip(this.tooltipTitle, 1.0, 1.0, 1.0, this.tooltipText, 1); + end + end) + _G("DropDownList1Backdrop"):SetBackdrop({ + bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", + edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 32, edgeSize = 32, + insets = { left = 11, right = 12, top = 12, bottom = 11 } + }) + if button.tex then + button.tex:Hide() + end + end +end + +function DPSMate.Options:UpdateConfigModes(obj, o, p) + local line, lineplusoffset + local TL = DPSMate:TableLength(DPSMate.ModuleNames) + local path, t = obj:GetName().."_Button", {} + if p then + for cat, val in DPSMate.ModuleNames do + if not DPSMate:TContains(DPSMateSettings["hiddenmodes"], val) then + tinsert(t, 1, cat) + end + end + else + for cat, val in DPSMate.ModuleNames do + if DPSMate:TContains(DPSMateSettings["hiddenmodes"], val) then + tinsert(t, 1, cat) + end + end + end + local TL = DPSMate:TableLength(t) + obj.offset = (obj.offset or 0) - o + if obj.offset > (TL-15) then obj.offset = (TL-15) end + if obj.offset < 0 then obj.offset = 0 end + for line=1, 15 do + lineplusoffset = line + obj.offset + if t[lineplusoffset] then + _G(path..line.."Text"):SetText(t[lineplusoffset]) + _G(path..line):Show() + else + _G(path..line):Hide() + end + _G(path..line.."Texture"):Hide() + _G(path..line.."Text"):SetTextColor(1,1,1,1) + _G(path..line).selected = false + end +end + +DPSMate.Options.ShowMenu = UnitPopup_ShowMenu +function UnitPopup_ShowMenu(dropdownMenu, which, unit, name, userData) + DPSMate.Options:DropDownStyleReset() + DPSMate.Options.ShowMenu(dropdownMenu, which, unit, name, userData) +end + +DPSMate.Options.UIDDI = UIDropDownMenu_Initialize +function UIDropDownMenu_Initialize(frame, initFunction, displayMode, level) + DPSMate.Options:DropDownStyleReset() + DPSMate.Options.UIDDI(frame, initFunction, displayMode, level) +end + +function DPSMate.Options:ChannelDropDown() + local channel, i = DPSMate.L["reportchannel"], 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_Report_Channel, this.value) + end + + -- Adding dynamic channel + for i=0,25 do + local id, name = GetChannelName(i); + if name then + if not DPSMate:TContains(channel, name) then + tinsert(channel, name) + end + end + end + + -- Initializing channel + for cat, val in pairs(channel) do + UIDropDownMenu_AddButton{ + text = val, + value = val, + func = on_click, + } + end + + UIDropDownMenu_SetSelectedValue(DPSMate_Report_Channel, SelectedChannel) +end + +function DPSMate.Options:WindowDropDown() + DPSMate_ConfigMenu.Selected = "None" + + local function on_click() + UIDropDownMenu_SetSelectedValue(_G(UIDROPDOWNMENU_OPEN_MENU), this.value) + if UIDROPDOWNMENU_OPEN_MENU == "DPSMate_ConfigMenu_Tab_Window_Remove" then + DPSMate_ConfigMenu.Selected = this.value + end + end + + UIDropDownMenu_AddButton{ + text = "None", + value = "None", + func = on_click, + } + + for _, val in pairs(DPSMateSettings["windows"]) do + UIDropDownMenu_AddButton{ + text = val["name"], + value = val["name"], + func = on_click, + } + end + + if not DPSMate_ConfigMenu.vis then + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Window_Remove, "None") + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Window_ConfigFrom, "None") + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Window_ConfigTo, "None") + end + DPSMate_ConfigMenu.vis = true +end + +function DPSMate.Options:BarFontDropDown() + local i = 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Bars_BarFont, this.value) + DPSMate_ConfigMenu_Tab_Bars_BarFontText:SetFont(DPSMate.Options.fonts[this.value], 12) + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"] = this.value + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_Name"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_Value"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + for i=1, 40 do + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name"):SetFont(DPSMate.Options.fonts[this.value], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Value"):SetFont(DPSMate.Options.fonts[this.value], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + end + end + + for name, path in pairs(DPSMate.Options.fonts) do + UIDropDownMenu_AddButton{ + text = name, + value = name, + func = on_click, + } + _G("DropDownList1Button"..i.."NormalText"):SetFont(path, 16) + i=i+1 + end +end + +function DPSMate.Options:BarFontFlagsDropDown() + local i = 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Bars_BarFontFlag, this.value) + DPSMate_ConfigMenu_Tab_Bars_BarFontFlagText:SetFont(DPSMate.Options.fonts["FRIZQT"], 12, DPSMate.Options.fontflags[this.value]) + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"] = this.value + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_Name"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_Value"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + for i=1, 40 do + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Value"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + end + end + + for name, flag in pairs(DPSMate.Options.fontflags) do + UIDropDownMenu_AddButton{ + text = name, + value = name, + func = on_click, + } + _G("DropDownList1Button"..i.."NormalText"):SetFont(DPSMate.Options.fonts["FRIZQT"], 12, flag) + i=i+1 + end +end + +function DPSMate.Options:BarTextureDropDown() + local i = 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Bars_BarTexture, this.value) + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["bartexture"] = this.value + DPSMate_ConfigMenu_Tab_Bars_BarTexture.tex:SetTexture(DPSMate.Options.statusbars[this.value]) + DPSMate_ConfigMenu_Tab_Bars_BarTexture.tex:Show() + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total"):SetStatusBarTexture(DPSMate.Options.statusbars[this.value]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_BG"):SetTexture(DPSMate.Options.statusbars[this.value]) + for i=1, 40 do + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i):SetStatusBarTexture(DPSMate.Options.statusbars[this.value]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_BG"):SetTexture(DPSMate.Options.statusbars[this.value]) + end + end + + for name, path in pairs(DPSMate.Options.statusbars) do + UIDropDownMenu_AddButton{ + text = name, + value = name, + func = on_click, + } + local button = _G("DropDownList1Button"..i) + if not button.tex then + button.tex = button:CreateTexture("BG", "BACKGROUND") + button.tex:SetTexture(path) + button.tex:SetWidth(100) + button.tex:SetHeight(20) + button.tex:SetPoint("TOPLEFT", button, "TOPLEFT") + end + button.tex:Show() + i=i+1 + end +end + +function DPSMate.Options:TitleBarTextureDropDown() + local i = 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_TitleBar_BarTexture, this.value) + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebartexture"] = this.value + DPSMate_ConfigMenu_Tab_TitleBar_BarTexture.tex:SetTexture(DPSMate.Options.statusbars[this.value]) + DPSMate_ConfigMenu_Tab_TitleBar_BarTexture.tex:Show() + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head_Background"):SetTexture(DPSMate.Options.statusbars[this.value]) + end + + for name, path in pairs(DPSMate.Options.statusbars) do + UIDropDownMenu_AddButton{ + text = name, + value = name, + func = on_click, + } + local button = _G("DropDownList1Button"..i) + if not button.tex then + button.tex = button:CreateTexture("BG", "BACKGROUND") + button.tex:SetTexture(path) + button.tex:SetWidth(100) + button.tex:SetHeight(20) + button.tex:SetPoint("TOPLEFT", button, "TOPLEFT") + end + button.tex:Show() + i=i+1 + end +end + +function DPSMate.Options:TitleBarFontDropDown() + local i = 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_TitleBar_BarFont, this.value) + DPSMate_ConfigMenu_Tab_TitleBar_BarFontText:SetFont(DPSMate.Options.fonts[this.value], 12) + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfont"] = this.value + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head_Font"):SetFont(DPSMate.Options.fonts[this.value], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfontflag"]]) + end + + for name, path in pairs(DPSMate.Options.fonts) do + UIDropDownMenu_AddButton{ + text = name, + value = name, + func = on_click, + } + _G("DropDownList1Button"..i.."NormalText"):SetFont(path, 16) + i=i+1 + end +end + +function DPSMate.Options:TitleBarFontFlagsDropDown() + local i = 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_TitleBar_BarFontFlag, this.value) + DPSMate_ConfigMenu_Tab_TitleBar_BarFontFlagText:SetFont(DPSMate.Options.fonts["FRIZQT"], 12, DPSMate.Options.fontflags[this.value]) + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfontflag"] = this.value + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head_Font"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfont"]], 12, DPSMate.Options.fontflags[this.value]) + end + + for name, flag in pairs(DPSMate.Options.fontflags) do + UIDropDownMenu_AddButton{ + text = name, + value = name, + func = on_click, + } + _G("DropDownList1Button"..i.."NormalText"):SetFont(DPSMate.Options.fonts["FRIZQT"], 12, flag) + i=i+1 + end +end + +function DPSMate.Options:ContentBGTextureDropDown() + local i = 1 + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Content_BGDropDown, this.value) + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgtexture"] = this.value + _G("DPSMate_ConfigMenu_Tab_Content_BGDropDown_Texture"):SetBackdrop({ + bgFile = DPSMate.Options.bgtexture[this.value], + edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 12, edgeSize = 12, + insets = { left = 4, right = 4, top = 4, bottom = 4 } + }) + _G("DPSMate_ConfigMenu_Tab_Content_BGDropDown_Texture"):SetBackdropColor(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][1], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][2], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][3]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Background"):SetTexture(DPSMate.Options.bgtexture[this.value]) + end + + for name, path in pairs(DPSMate.Options.bgtexture) do + UIDropDownMenu_AddButton{ + text = name, + value = name, + func = on_click, + } + local button = _G("DropDownList1Button"..i) + button.path = path + button.i = i + button:SetScript("OnEnter", function() + _G(this:GetName().."Highlight"):Show() + _G("DropDownList1Backdrop"):SetBackdrop({ + bgFile = this.path, + edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 32, edgeSize = 32, + insets = { left = 11, right = 12, top = 12, bottom = 11 } + }) + _G("DropDownList1Backdrop"):SetBackdropColor(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][1], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][2], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][3]) + end) + i=i+1 + end +end + +function DPSMate.Options:SelectDataResets(obj, case) + local vars = {["DPSMate_ConfigMenu_Tab_DataResets_EnteringWorld"] = "dataresetsworld", ["DPSMate_ConfigMenu_Tab_DataResets_PartyMemberChanged"] = "dataresetspartyamount", ["DPSMate_ConfigMenu_Tab_DataResets_JoinParty"] = "dataresetsjoinparty", ["DPSMate_ConfigMenu_Tab_DataResets_LeaveParty"] = "dataresetsleaveparty", ["DPSMate_ConfigMenu_Tab_DataResets_Sync"] = "dataresetssync", ["DPSMate_ConfigMenu_Tab_DataResets_Logout"] = "dataresetslogout"} + DPSMateSettings[vars[obj:GetName()]] = case + UIDropDownMenu_SetSelectedValue(obj, case) +end + +function DPSMate.Options:DataResetsDropDown() + local btns = {DPSMate.L["yes"], DPSMate.L["no"], DPSMate.L["ask"]} + + local function on_click() + DPSMate.Options:SelectDataResets(_G(UIDROPDOWNMENU_OPEN_MENU), this.value) + end + + for val, name in pairs(btns) do + UIDropDownMenu_AddButton{ + text = name, + value = val, + func = on_click, + } + end + + local vars = { + ["DPSMate_ConfigMenu_Tab_DataResets_EnteringWorld"] = "dataresetsworld", + ["DPSMate_ConfigMenu_Tab_DataResets_JoinParty"] = "dataresetsjoinparty", + ["DPSMate_ConfigMenu_Tab_DataResets_PartyMemberChanged"] = "dataresetspartyamount", + ["DPSMate_ConfigMenu_Tab_DataResets_LeaveParty"] = "dataresetsleaveparty", + ["DPSMate_ConfigMenu_Tab_DataResets_Sync"] = "dataresetssync", + ["DPSMate_ConfigMenu_Tab_DataResets_Logout"] = "dataresetslogout", + } + local menu = UIDROPDOWNMENU_INIT_MENU + if type(menu) == "string" then menu = getglobal(menu) end + if menu then + local settingsKey = vars[menu:GetName()] + if settingsKey then + UIDropDownMenu_SetSelectedValue(menu, DPSMateSettings[settingsKey]) + end + end +end + +function DPSMate.Options:NumberFormatDropDown() + local btns = {DPSMate.L["normal"], DPSMate.L["condensed"], DPSMate.L["commas"], DPSMate.L["semicondensed"]} + + local function on_click() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["numberformat"] = this.value + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Content_NumberFormat, DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["numberformat"]) + DPSMate:SetStatusBarValue() + end + + for val, name in pairs(btns) do + UIDropDownMenu_AddButton{ + text = name, + value = val, + func = on_click, + } + end +end + +function DPSMate.Options:BorderStrataDropDown() + local btns = {"Background", "Low", "High"} + + local function on_click() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["borderstrata"] = this.value + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Content_BorderStrata, DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["borderstrata"]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Border"):SetFrameStrata(DPSMate.Options.stratas[this.value]) + end + + for val, name in pairs(btns) do + UIDropDownMenu_AddButton{ + text = name, + value = val, + func = on_click, + } + end +end + +function DPSMate.Options:BorderTextureDropDown() + local function on_click() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["bordertexture"] = this.value + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Content_BorderTexture, DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["bordertexture"]) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Border"):SetBackdrop({ + bgFile = "", + edgeFile = DPSMate.Options.bordertextures[this.value], tile = true, tileSize = 12, edgeSize = 10, + insets = { left = 5, right = 5, top = 3, bottom = 1 } + }) + _G("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Border"):SetBackdropBorderColor(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbordercolor"][1], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbordercolor"][2], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbordercolor"][3]) + end + + for val, _ in pairs(DPSMate.Options.bordertextures) do + UIDropDownMenu_AddButton{ + text = val, + value = val, + func = on_click, + } + end +end + +function DPSMate.Options:TooltipPositionDropDown() + local btns = {DPSMate.L["default"], DPSMate.L["topright"], DPSMate.L["topleft"], DPSMate.L["left"], DPSMate.L["top"]} + + local function on_click() + DPSMateSettings["tooltipanchor"] = this.value + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Tooltips_Position, DPSMateSettings["tooltipanchor"]) + end + + for val, name in pairs(btns) do + UIDropDownMenu_AddButton{ + text = name, + value = val, + func = on_click, + } + end + + if not DPSMate_ConfigMenu.visBars10 then + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Tooltips_Position, DPSMateSettings["tooltipanchor"]) + end + DPSMate_ConfigMenu.visBars10 = true +end + +function DPSMate.Options:Report() + local channel = UIDropDownMenu_GetSelectedValue(DPSMate_Report_Channel) + SelectedChannel = channel + local arr, cbt, ecbt = DPSMate:GetMode(DPSMate_Report.PaKey) + local chn, index, name, value, perc, b = nil, nil, nil, nil, nil, nil + name, value, perc, b = DPSMate:GetSettingValues(arr, cbt, DPSMate_Report.PaKey, ecbt) + if (channel == DPSMate.L["whisper"]) then + chn = "WHISPER"; index = DPSMate_Report_Editbox:GetText(); + elseif DPSMate:TContains(DPSMate.L["gchannel"], channel) then + chn = strupper(channel) + else + chn = "CHANNEL"; index = GetChannelName(channel) + end + SendChatMessage("BULK", "DPSMateChat", DPSMate.L["name"].." - "..DPSMate.L["reportfor"]..DPSMate:GetModeName(DPSMate_Report.PaKey or 1).." - ".._G("DPSMate_"..DPSMateSettings["windows"][DPSMate_Report.PaKey or 1]["name"].."_Head_Font"):GetText().." - "..b[1]..b[2], chn, nil, index) + for i=1, DPSMate_Report_Lines:GetValue() do + if (not value[i] or value[i] == 0) then break end + if DPSMateSettings["reportdelay"] then + tinsert(DPSMate.DelayMsg, {i..". "..name[i].." -"..value[i], chn, index}) + else + SendChatMessage("BULK", "DPSMateChat", i..". "..name[i].." -"..value[i], chn, nil, index) + end + end + DPSMate_Report:Hide() +end + +local AbilityModes = {"damage", "dps", "healing", "hps", "OHPS", "overhealing", "effectivehealing", "effectivehps", "deaths", "interrupts", "dispels", "decurses", "curedisease", "curepoison", "liftmagic", "aurasgained", "auraslost", "aurasuptime", "procs", "casts", "ccbreaker", "healingandabsorbs"} +function DPSMate.Options:ReportUserDetails(obj, channel, name) + local Key, user = obj:GetParent():GetParent():GetParent().Key, obj.user + if not user or not DPSMateUser[user] then return end + local _, cbt, ecbt = DPSMate:GetMode(Key) + local a,b,c + if DPSMateSettings["windows"][Key]["CurMode"] == "deaths" then + a,b,c = DPSMate.RegistredModules[DPSMateSettings["windows"][Key]["CurMode"]]:EvalTable(DPSMateUser[user], Key) + else + a,b,c = DPSMate.RegistredModules[DPSMateSettings["windows"][Key]["CurMode"]]:EvalTable(DPSMateUser[user], Key, cbt, ecbt) + end + local chn, index + if (channel == DPSMate.L["whisper"]) then + chn = "WHISPER"; index = name; + elseif DPSMate:TContains(DPSMate.L["gchannel"], channel) then + chn = strupper(channel) + else + chn = "CHANNEL"; index = GetChannelName(channel) + end + local bb = "" + if not b and not a then + return + end + if b~=0 then + bb = " - "..strformat("%.2f", b) + end + SendChatMessage("BULK", "DPSMateChat", DPSMate.L["name"].." - "..DPSMate.L["reportof"].." "..user.."'s ".._G("DPSMate_"..DPSMateSettings["windows"][Key]["name"].."_Head_Font"):GetText().." - "..DPSMate:GetModeName(Key)..bb, chn, nil, index) + for i=1, 10 do + if (not a[i]) then break end + local p + if type(c[i])=="table" then p = strformat("%.2f", c[i][1]).." ("..strformat("%.2f", 100*c[i][1]/b).."%)" else p = strformat("%.2f", c[i]).." ("..strformat("%.2f", 100*c[i]/b).."%)" end + if DPSMateSettings["windows"][Key]["CurMode"] == "aurasuptime" then p = strformat("%.2f%%", c[i]) end + if DPSMateSettings["windows"][Key]["CurMode"] == "deaths" then + local type = " (HIT)" + if c[i][3]==1 then type=" (CRIT)" elseif c[i][3]==2 then type=" (CRUSH)" end + if c[i][2]==1 then + if DPSMateSettings["reportdelay"] then + tinsert(DPSMate.DelayMsg, {i..". |cFF8cff80"..DPSMate:GetAbilityById(a[i]).." => ".."+"..c[i][1]..type.."|r", chn, index}) + else + SendChatMessage("BULK", "DPSMateChat", i..". |cFF8cff80"..DPSMate:GetAbilityById(a[i]).." => ".."+"..c[i][1]..type.."|r", chn, nil, index) + end + else + if DPSMateSettings["reportdelay"] then + tinsert(DPSMate.DelayMsg, {i..". |cFFFF8080"..DPSMate:GetAbilityById(a[i]).." => ".."-"..c[i][1]..type.."|r", chn, index}) + else + SendChatMessage("BULK", "DPSMateChat", i..". |cFFFF8080"..DPSMate:GetAbilityById(a[i]).." => ".."-"..c[i][1]..type.."|r", chn, nil, index) + end + end + else + if DPSMateSettings["windows"][Key]["CurMode"] == "fails" then + if DPSMateSettings["reportdelay"] then + tinsert(DPSMate.DelayMsg, {i..". "..DPSMate.Modules.Fails:Type(a[i]).." - "..p, chn, index}) + else + SendChatMessage("BULK", "DPSMateChat", i..". "..DPSMate.Modules.Fails:Type(a[i]).." - "..p, chn, nil, index) + end + else + if DPSMate:TContains(AbilityModes, DPSMateSettings["windows"][Key]["CurMode"]) then + if DPSMateSettings["reportdelay"] then + tinsert(DPSMate.DelayMsg, {i..". "..DPSMate:GetAbilityById(a[i]).." - "..p, chn, index}) + else + SendChatMessage("BULK", "DPSMateChat", i..". "..DPSMate:GetAbilityById(a[i]).." - "..p, chn, nil, index) + end + else + if DPSMateSettings["reportdelay"] then + tinsert(DPSMate.DelayMsg, {i..". "..DPSMate:GetUserById(a[i]).." - "..p, chn, index}) + else + SendChatMessage("BULK", "DPSMateChat", i..". "..DPSMate:GetUserById(a[i]).." - "..p, chn, nil, index) + end + end + end + end + end +end + +local hexClassColor = { + warrior = "C79C6E", + rogue = "FFF569", + priest = "FFFFFF", + druid = "FF7D0A", + warlock = "9482C9", + mage = "69CCF0", + hunter = "ABD473", + paladin = "F58CBA", + shaman = "0070DE", +} + +local CompareExcept = { + [DPSMate.L["enemydamagedone"]] = true, + [DPSMate.L["enemydamagetaken"]] = true +} +function DPSMate.Options:InializePlayerDewDrop(obj) + local channel, i = DPSMate.L["gchannel"], 1 + local path = DPSMate.Options.Options[4]["args"]["report"]["args"] + -- Name + DPSMate.Options.Options[4]["args"]["player"] = { + order = 1, + type = "header", + name = obj.user, + } + DPSMate.Options.Options[4]["args"]["details"] = { + order = 2, + type = "execute", + name = DPSMate.L["opendetails"], + desc = DPSMate.L["opendetails"], + func = function() DPSMate.Options:UpdateDetails(obj); DPSMate.Options.Dewdrop:Close() end, + } + + -- Report channel + for i=0, 25 do + local id, name = GetChannelName(i); + if name then + if not DPSMate:TContains(channel, name) then + tinsert(channel, name) + end + end + end + + for cat, val in channel do + path["a"..cat] = { + order = 10*cat+10, + type = "execute", + name = val, + desc = DPSMate.L["reportdetails"], + func = (function(v) return function() DPSMate.Options:ReportUserDetails(DPSMate.Options.Dewdrop:GetOpenedParent(), v); DPSMate.Options.Dewdrop:Close() end end)(val), + } + end + + -- Compare with player + DPSMate.Options.Options[4]["args"]["compare"]["args"] = {} + path = DPSMate.Options.Options[4]["args"]["compare"]["args"] + local Key = obj:GetParent():GetParent():GetParent().Key + local db,cbt = DPSMate:GetMode(Key) + local temp = {} + local a = DPSMate:GetSettingValues(db, cbt, Key, 0) + for cat, name in a do + if name and name ~= obj.user then + if DPSMateSettings["windows"][Key]["grouponly"] then + if DPSMate.Parser.TargetParty[name] then + tinsert(temp, name) + end + else + tinsert(temp, name) + end + end + end + sort(temp) + + local mode = _G(obj:GetParent():GetParent():GetParent():GetName().."_Head_Font"):GetText() + for mo, ti in strgfind(mode, "(.+) %[(.+)%]") do + mode = mo + end + + for cat, val in temp do + if cat>100 then break end + if not strfind(val, "%s") or CompareExcept[mode] then + path["Arg"..cat] = { + order = 1, + type = "execute", + name = "|cFF"..hexClassColor[DPSMateUser[val][2] or "warrior"]..val.."|r", + desc = DPSMate.L["opendetails"], + func = (function(v, n) return function() DPSMate.Options:UpdateDetails(nil, v, n); DPSMate.Options.Dewdrop:Close() end end)(val, obj:GetName()), + } + end + end +end + +function DPSMate.Options:FormatTime(time) + if time>60 then + local rest = ceil(mod(time, 60)) + if rest<10 then + rest = "0"..rest + end + return floor(time/60)..":"..rest.."m" + else + return strformat("%.2f", time).."s" + end +end + +function DPSMate.Options:NewSegment(segname) + local max = 0 + local a = "" + -- Get name of this session + for c, v in pairs(DPSMateEDT[2]) do + local CV = 0 + for cat, val in pairs(v) do + if cat~="i" then + CV = CV+(val["i"] or 0) + end + end + if max 100) then + if DPSMateSettings["onlybossfights"] then + if DPSMate.BabbleBoss:Contains(name) then + DPSMate.Options:CreateSegment(name..extra) + end + else + DPSMate.Options:CreateSegment(name..extra) + end + end + + DPSMateDamageDone[2] = {} + DPSMateDamageTaken[2] = {} + DPSMateEDD[2] = {} + DPSMateEDT[2] = {} + DPSMateTHealing[2] = {} + DPSMateEHealing[2] = {} + DPSMateOverhealing[2] = {} + DPSMateEHealingTaken[2] = {} + DPSMateHealingTaken[2] = {} + DPSMateOverhealingTaken[2] = {} + DPSMateAbsorbs[2] = {} + DPSMateDeaths[2] = {} + DPSMateInterrupts[2] = {} + DPSMateDispels[2] = {} + DPSMateAurasGained[2] = {} + DPSMateThreat[2] = {} + DPSMateFails[2] = {} + DPSMateCCBreaker[2] = {} + DPSMateCombatTime["current"] = 0.0001 + DPSMateCombatTime["effective"][2] = {} + DPSMate:PruneStaleUsers() + DPSMate:SetStatusBarValue() + end +end + +function DPSMate.Options:CreateSegment(name) + local modes = {["DMGDone"] = DPSMateDamageDone[2], ["DMGTaken"] = DPSMateDamageTaken[2], ["EDDone"] = DPSMateEDD[2], ["EDTaken"] = DPSMateEDT[2], ["THealing"] = DPSMateTHealing[2], ["EHealing"] = DPSMateEHealing[2], ["OHealing"] = DPSMateOverhealing[2], ["EHealingTaken"] = DPSMateEHealingTaken[2], ["THealingTaken"] = DPSMateHealingTaken[2], ["OHealingTaken"] = DPSMateOverhealingTaken[2], ["Absorbs"] = DPSMateAbsorbs[2], ["Deaths"] = DPSMateDeaths[2], ["Interrupts"] = DPSMateInterrupts[2], ["Dispels"] = DPSMateDispels[2], ["Auras"] = DPSMateAurasGained[2], ["Threat"] = DPSMateThreat[2], ["Fail"] = DPSMateFails[2], ["CCBreaker"] = DPSMateCCBreaker[2]} + local maxSeg = DPSMateSettings["datasegments"] + + tinsert(DPSMateHistory["names"], 1, name.." - "..GameTime_GT()) + for i = DPSMate:TableLength(DPSMateHistory["names"]), maxSeg+1, -1 do + tremove(DPSMateHistory["names"], i) + end + tinsert(DPSMateHistory["timestamps"], 1, time and time() or nil) + for i = DPSMate:TableLength(DPSMateHistory["timestamps"]), maxSeg+1, -1 do + tremove(DPSMateHistory["timestamps"], i) + end + + for cat, val in pairs(modes) do + tinsert(DPSMateHistory[cat], 1, DPSMate:CopyTableStripInstant(val)) + for i = DPSMate:TableLength(DPSMateHistory[cat]), maxSeg+1, -1 do + tremove(DPSMateHistory[cat], i) + end + end + + tinsert(DPSMateCombatTime["segments"], 1, {[1]=DPSMateCombatTime["current"], [2]=DPSMateCombatTime["effective"][2]}) + for i = DPSMate:TableLength(DPSMateCombatTime["segments"]), maxSeg+1, -1 do + tremove(DPSMateCombatTime["segments"], i) + end + + DPSMate.Options:InitializeSegments() +end + +function DPSMate.Options:InitializeSegments() + local i=1 + DPSMate.Options.Options[2]["args"] = { + total = { + order = 10, + type = 'toggle', + name = DPSMate.L["total"], + desc = DPSMate.L["totalmode"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["options"][2]["total"] end, + set = function() DPSMate.Options:ToggleDrewDrop(2, "total", DPSMate.Options.Dewdrop:GetOpenedParent()) end, + }, + currentFight = { + order = 20, + type = 'toggle', + name = DPSMate.L["mcurrent"], + desc = DPSMate.L["currentmode"], + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["options"][2]["currentfight"] end, + set = function() DPSMate.Options:ToggleDrewDrop(2, "currentfight", DPSMate.Options.Dewdrop:GetOpenedParent()) end, + }, + } + DPSMate.Options.Options[3]["args"]["deletesegment"]["args"] = {} + for cat, val in pairs(DPSMateHistory["DMGDone"]) do + if not val then break end + DPSMate.Options.Options[2]["args"]["segment"..i] = { + order = 20+i*10, + type = 'toggle', + name = i..". "..DPSMateHistory["names"][i], + desc = DPSMate.L["fdetailsfor"]..DPSMateHistory["names"][i], + get = loadstring('return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["options"][2]["segment'..i..'"];'), + set = loadstring('DPSMate.Options:ToggleDrewDrop(2, "segment'..i..'", DPSMate.Options.Dewdrop:GetOpenedParent());'), + } + DPSMate.Options.Options[3]["args"]["deletesegment"]["args"]["segment"..i] = { + order = i*10, + type = 'execute', + name = i..". "..DPSMateHistory["names"][i], + desc = DPSMate.L["removesegmentof"]..DPSMateHistory["names"][i], + func = loadstring('DPSMate.Options:RemoveSegment('..i..');'), + } + i=i+1 + end +end + +function DPSMate.Options:OnVerticalScroll(obj, arg1, pre, spec) + pre = pre or 20 + local maxScroll = _G(obj:GetName().."_Child"):GetHeight()-100 + if spec then maxScroll = maxScroll + 100 end + local Scroll = obj:GetVerticalScroll() + local toScroll = (Scroll - (pre*arg1)) + if toScroll < 0 or maxScroll < 0 then + obj:SetVerticalScroll(0) + elseif toScroll > maxScroll then + obj:SetVerticalScroll(maxScroll) + else + obj:SetVerticalScroll(toScroll) + end +end + +function DPSMate.Options:CreateWindow() + local na = string.gsub(DPSMate_ConfigMenu_Tab_Window_Editbox:GetText(), "%s", "") + if (na and not DPSMate:GetKeyByValInTT(DPSMateSettings["windows"], na, "name") and na~="") then + tinsert(DPSMateSettings["windows"], { + name = na, + options = { + [1] = { + damage = true + }, + [2] = { + total = true + } + }, + CurMode = "damage", + hidden = false, + scale = 1, + barfont = "FRIZQT", + barfontsize = 13, + barfontflag = "Outline", + bartexture = "Minimalist", + barspacing = 1, + barheight = 17, + classicons = true, + ranks = true, + titlebar = true, + titlebarfont = "FRIZQT", + titlebarfontflag = "None", + titlebarfontsize = 12, + titlebarheight = 17, + titlebarreport = true, + titlebarreset = true, + titlebarsegments = true, + titlebarconfig = true, + titlebarsync = true, + titlebarenable = true, + titlebarfilter = true, + titlebartexture = "Minimalist", + titlebarbgcolor = {0.1568627450980392,0.1725490196078431,0.1647058823529412}, + titlebarfontcolor = {1.0,0.82,0.0}, + barfontcolor = {1.0,1.0,1.0}, + contentbgtexture = "UI-Tooltip-Background", + contentbgcolor = {0.01568627450980392,0,1}, + bgbarcolor = {1,1,1}, + numberformat = 1, + opacity = 1, + bgopacity = 0, + titlebaropacity = 1, + filterclasses = { + warrior = true, + rogue = true, + priest = true, + hunter = true, + mage = true, + warlock = true, + paladin = true, + shaman = true, + druid = true, + }, + filterpeople = "", + grouponly = true, + realtime = false, + cbtdisplay = false, + barbg = false, + totopacity = 1.0, + borderopacity = 1.0, + contentbordercolor = {0,0,0}, + borderstrata = 1, + bordertexture = "UI-Tooltip-Border", + position = {"CENTER",0,0}, + savsize = {150,100}, + }) + local TL = DPSMate:TableLength(DPSMateSettings["windows"]) + if not _G("DPSMate_"..na) then + local fr=CreateFrame("Frame", "DPSMate_"..na, UIParent, "DPSMate_Statusframe") + fr.Key=TL + end + _G("DPSMate_"..na):Show() + if not _G("DPSMate_ConfigMenu_Menu_Button"..(9+TL)) then + local f = CreateFrame("Button", "DPSMate_ConfigMenu_Menu_Button"..(9+TL), DPSMate_ConfigMenu_Menu, "DPSMate_Template_WindowButton") + f.Key = TL + end + local frame = _G("DPSMate_ConfigMenu_Menu_Button"..(9+TL)) + frame:Show() + _G("DPSMate_ConfigMenu_Menu_Button"..(9+TL).."Text"):SetText(na) + if TL>1 then + frame:SetPoint("TOP", _G("DPSMate_ConfigMenu_Menu_Button"..(8+TL)), "BOTTOM") + _G("DPSMate_ConfigMenu_Menu_Button"..(8+TL)).after = frame + else + frame:SetPoint("TOP", DPSMate_ConfigMenu_Menu_Button1, "BOTTOM") + end + frame.after = DPSMate_ConfigMenu_Menu_Button2 + DPSMate_ConfigMenu.num = 9+TL + frame.func = function() + _G(this:GetParent():GetParent():GetName()..this:GetParent().selected):Hide() + _G(this:GetParent():GetParent():GetName().."_Tab_Window"):Show() + this:GetParent().selected = "_Tab_Window" + end + DPSMate_ConfigMenu_Menu_Button2:ClearAllPoints() + DPSMate_ConfigMenu_Menu_Button2:SetPoint("TOP", frame, "BOTTOM") + DPSMate:InitializeFrames() + _G("DPSMate_"..na.."_Head_Font"):SetText(DPSMate.L["damage"]) + _G("DPSMate_"..na.."_ScrollFrame_Child"):SetWidth(150) + _G("DPSMate_"..na.."_ScrollFrame"):SetHeight(84) + DPSMate:SetStatusBarValue() + end +end + +function DPSMate.Options:RemoveWindow() + local frame = _G("DPSMate_"..DPSMate_ConfigMenu.Selected) + if frame then + frame:Hide() + _G("DPSMate_ConfigMenu_Menu_Button"..(9+frame.Key)):Hide() + tremove(DPSMateSettings["windows"], frame.Key) + DPSMate:InvalidateFrameCache() + local TL = DPSMate:TableLength(DPSMateSettings["windows"]) + _G("DPSMate_ConfigMenu_Menu_Button"..(9+TL)).after = DPSMate_ConfigMenu_Menu_Button2 + DPSMate_ConfigMenu_Menu_Button2:ClearAllPoints() + DPSMate_ConfigMenu_Menu_Button2:SetPoint("TOP", _G("DPSMate_ConfigMenu_Menu_Button"..(9+TL)), "BOTTOM") + UIDropDownMenu_SetSelectedValue(DPSMate_ConfigMenu_Tab_Window_Remove, "None") + DPSMate_ConfigMenu_Menu_Button1.selected = true + _G("DPSMate_ConfigMenu_Menu_Button"..(9+frame.Key)).selected = false + _G("DPSMate_ConfigMenu_Menu_Button"..(9+frame.Key).."Texture"):Hide() + _G("DPSMate_ConfigMenu_Menu_Button"..(9+frame.Key).."Text"):SetTextColor(1,0.82,0,1) + _G("DPSMate_ConfigMenu_Menu_Button"..(9+frame.Key).."_Button1"):Hide() + _G("DPSMate_ConfigMenu_Menu_Button"..(9+frame.Key).."_Button2"):Hide() + _G("DPSMate_ConfigMenu_Menu_Button"..(9+frame.Key).."_Button3"):Hide() + DPSMate_ConfigMenu_Menu_Button1Texture:Show() + end +end + +function DPSMate.Options:CopyConfiguration() + local fromName = _G("DPSMate_ConfigMenu_Tab_Window_ConfigFromText"):GetText() + local toName = _G("DPSMate_ConfigMenu_Tab_Window_ConfigToText"):GetText() + if fromName~="None" and toName~="None" then + local fromKey = _G("DPSMate_"..fromName).Key + local toKey = _G("DPSMate_"..toName).Key + for cat, val in pairs(DPSMateSettings["windows"][fromKey]) do + if cat~="name" and cat~="options" then + if type(val) == "table" then + DPSMateSettings["windows"][toKey][cat] = DPSMate:CopyTable(val) + else + DPSMateSettings["windows"][toKey][cat] = val + end + end + end + DPSMate:InitializeFrames() + end +end + +function DPSMate.Options:Lock() + DPSMateSettings.lock = true + for _,val in pairs(DPSMateSettings["windows"]) do + _G("DPSMate_"..val["name"].."_Resize"):Hide() + end + -- Saving positions to prevent a potential crash + local point, _, _, xOfs, yOfs; + for key, val in DPSMateSettings["windows"] do + if _G("DPSMate_"..val["name"]) then + point, _, _, xOfs, yOfs = _G("DPSMate_"..val["name"]):GetPoint() + DPSMateSettings["windows"][key]["position"] = {} + DPSMateSettings["windows"][key]["position"][1] = point + DPSMateSettings["windows"][key]["position"][2] = xOfs + DPSMateSettings["windows"][key]["position"][3] = yOfs + DPSMateSettings["windows"][key]["savsize"] = {} + DPSMateSettings["windows"][key]["savsize"][1] = _G("DPSMate_"..val["name"]):GetWidth() + DPSMateSettings["windows"][key]["savsize"][2] = _G("DPSMate_"..val["name"]):GetHeight() + end + end + DPSMate:SendMessage(DPSMate.L["lockedallw"]) +end + +function DPSMate.Options:Unlock() + DPSMateSettings.lock = false + for _,val in pairs(DPSMateSettings["windows"]) do + _G("DPSMate_"..val["name"].."_Resize"):Show() + end + DPSMate:SendMessage(DPSMate.L["unlockedallw"]) +end + +function DPSMate.Options:Hide(frame) + DPSMateSettings["windows"][frame.Key]["hidden"] = true + frame:Hide() +end + +function DPSMate.Options:Show(frame) + DPSMateSettings["windows"][frame.Key]["hidden"] = false + frame:Show() +end + +function DPSMate.Options:RemoveSegment(i) + for cat, val in DPSMateHistory do + tremove(DPSMateHistory[cat], i) + end + if DPSMateCombatTime["segments"][i] then + tremove(DPSMateCombatTime["segments"], i) + end + DPSMate.Options:InitializeSegments() + DPSMate.Options.Dewdrop:Close() +end + +function DPSMate.Options:PurgeOldSegments() + if not time then + DPSMate:SendMessage(DPSMate.L["purgenotimestamp"]) + DPSMate.Options.Dewdrop:Close() + return + end + local cutoff = time() - 86400 -- 24 hours in seconds + -- Iterate backward so tremove doesn't shift unvisited indices. + for i = DPSMate:TableLength(DPSMateHistory["timestamps"]), 1, -1 do + local ts = DPSMateHistory["timestamps"][i] + if ts and ts < cutoff then + for cat, val in DPSMateHistory do + tremove(DPSMateHistory[cat], i) + end + if DPSMateCombatTime["segments"][i] then + tremove(DPSMateCombatTime["segments"], i) + end + end + end + DPSMate.Options:InitializeSegments() + DPSMate.Options.Dewdrop:Close() + DPSMate:SendMessage(DPSMate.L["purgeoldsegmentsdone"]) +end + +function DPSMate.Options:ToggleTitleBarButtonState() + local buttons = {"Config", "Reset", "Segments", "Filter", "Report", "Sync", "Enable"} + for _, val in pairs(DPSMateSettings["windows"]) do + local parent, i = _G("DPSMate_"..val["name"].."_Head"), 0 + for _, name in pairs(buttons) do + local button = _G("DPSMate_"..val["name"].."_Head_"..name) + if val["titlebar"..strlower(name)] then + button:ClearAllPoints() + button:SetPoint("RIGHT", parent, "RIGHT", -i*15-2, 0) + button:Show() + i=i+1 + else + button:Hide() + end + end + end +end + +function DPSMate.Options:ToggleState() + if DPSMateSettings["enable"] then + DPSMateSettings["sync"] = false + DPSMateSettings["enable"] = false + DPSMate:Disable() + for cat, val in DPSMateSettings["windows"] do + _G("DPSMate_"..val["name"].."_Head_Sync"):GetNormalTexture():SetVertexColor(1,0,0,1) + _G("DPSMate_"..val["name"].."_Head_Enable"):SetChecked(false) + end + else + DPSMateSettings["enable"] = true + DPSMate:Enable() + for cat, val in DPSMateSettings["windows"] do + _G("DPSMate_"..val["name"].."_Head_Enable"):SetChecked(true) + end + end +end + +function DPSMate.Options:SetColor() + local r,g,b = ColorPickerFrame:GetColorRGB() + local swatch,frame + swatch = _G(ColorPickerFrame.obj:GetName().."NormalTexture") + frame = _G(ColorPickerFrame.obj:GetName().."_SwatchBg") + swatch:SetVertexColor(r,g,b) + frame.r = r + frame.g = g + frame.b = b + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key][ColorPickerFrame.var] = {r,g,b} + + ColorPickerFrame.rfunc() +end + +function DPSMate.Options:CancelColor() + local r = ColorPickerFrame.previousValues.r + local g = ColorPickerFrame.previousValues.g + local b = ColorPickerFrame.previousValues.b + local swatch,frame + swatch = _G(ColorPickerFrame.obj:GetName().."NormalTexture") + frame = _G(ColorPickerFrame.obj:GetName().."_SwatchBg") + swatch:SetVertexColor(r,g,b) + frame.r = r + frame.g = g + frame.b = b + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key][ColorPickerFrame.var] = {r,g,b} + + ColorPickerFrame.rfunc() +end + +function DPSMate.Options:OpenColorPicker(obj, var, func) + CloseMenus() + + local button = _G(obj:GetName().."_SwatchBg") + + ColorPickerFrame.obj = obj + ColorPickerFrame.var = var + ColorPickerFrame.rfunc = func + + ColorPickerFrame.func = DPSMate.Options.SetColor + ColorPickerFrame:SetColorRGB(button.r, button.g, button.b) + ColorPickerFrame.previousValues = {r = button.r, g = button.g, b = button.b, opacity = button.opacity} + ColorPickerFrame.cancelFunc = DPSMate.Options.CancelColor + + ColorPickerFrame:SetPoint("TOPLEFT", obj, "TOPRIGHT", 0, 0) + + ColorPickerFrame:SetFrameStrata("TOOLTIP") + + ColorPickerFrame:Show() +end + +function DPSMate.Options:ShowTooltip() + if not this.user then return end + if DPSMateSettings["showtooltips"] then + DPSMate_Details.PaKey = this:GetParent():GetParent():GetParent().Key + if DPSMateSettings["tooltipanchor"] == 1 then + GameTooltip:SetOwner(UIParent, "BOTTOMRIGHT") + elseif DPSMateSettings["tooltipanchor"] == 2 then + GameTooltip:SetOwner(this:GetParent():GetParent():GetParent(), "RIGHT") + elseif DPSMateSettings["tooltipanchor"] == 3 then + GameTooltip:SetOwner(this:GetParent():GetParent():GetParent(), "LEFT") + elseif DPSMateSettings["tooltipanchor"] == 4 then + GameTooltip:SetOwner(this:GetParent():GetParent():GetParent(), "TOP") + elseif DPSMateSettings["tooltipanchor"] == 5 then + GameTooltip:SetOwner(this:GetParent():GetParent():GetParent(), "TOPRIGHT") + end + local _, cbt = DPSMate:GetMode(DPSMate_Details.PaKey) + GameTooltip:AddLine(this.user.." ["..self:FormatTime(cbt).."]", 1,0.82,0,1) + DPSMate.RegistredModules[DPSMateSettings["windows"][DPSMate_Details.PaKey]["CurMode"]]:ShowTooltip(this.user, DPSMate_Details.PaKey) + GameTooltip:AddLine(" ") + GameTooltip:AddLine(DPSMate.L["leftclickopend"], 0,1,0,1) + GameTooltip:AddLine(DPSMate.L["rightclickopenm"], 0,1,0,1) + GameTooltip:Show() + end +end + +function DPSMate.Options:InitializeHideShowWindow() + local i = 1 + DPSMate.Options.Options[3]["args"]["hidewindow"]["args"] = {} + DPSMate.Options.Options[3]["args"]["showwindow"]["args"] = {} + for _,val in pairs(DPSMateSettings["windows"]) do + DPSMate.Options.Options[3]["args"]["hidewindow"]["args"][val["name"]] = { + order = i*10, + type = 'execute', + name = val["name"], + desc = DPSMate.L["hide"].." "..val["name"], + func = loadstring('DPSMate.Options:Hide(getglobal("DPSMate_'..val["name"]..'")); DPSMate.Options.Dewdrop:Close();'), + } + DPSMate.Options.Options[3]["args"]["showwindow"]["args"][val["name"]] = { + order = i*10, + type = 'execute', + name = val["name"], + desc = DPSMate.L["show"].." "..val["name"], + func = loadstring('DPSMate.Options:Show(getglobal("DPSMate_'..val["name"]..'")); DPSMate.Options.Dewdrop:Close();'), + } + i=i+1 + end +end + +function DPSMate.Options:CheckButton(name, id) + if DPSMateSettings[name][id] then + DPSMateSettings[name][id] = false + else + DPSMateSettings[name][id] = true + end + DPSMate:SetStatusBarValue() +end + +function DPSMate.Options:ToggleSync() + if DPSMateSettings["sync"] then + DPSMateSettings["sync"] = false + for _, val in pairs(DPSMateSettings["windows"]) do + _G("DPSMate_"..val["name"].."_Head_Sync"):GetNormalTexture():SetVertexColor(1,0,0,1) + end + else + DPSMateSettings["sync"] = true + DPSMateSettings["enable"] = true + for _, val in pairs(DPSMateSettings["windows"]) do + _G("DPSMate_"..val["name"].."_Head_Enable"):SetChecked(true) + _G("DPSMate_"..val["name"].."_Head_Sync"):GetNormalTexture():SetVertexColor(0.67,0.83,0.45,1) + end + end + DPSMate.Sync.synckey = "" +end + +local reportdelay = 0.5 +local reportuptime = 0 +function DPSMate.Options:OnUpdate() + if DPSMateSettings["reportdelay"] and DPSMate.DelayMsg[1] then + reportuptime = reportuptime + arg1 + if reportuptime>reportdelay then + SendChatMessage("BULK", "DPSMateChat", DPSMate.DelayMsg[1][1], DPSMate.DelayMsg[1][2], nil, DPSMate.DelayMsg[1][3]) + tremove(DPSMate.DelayMsg, 1) + reportuptime = 0 + end + end +end \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/DPSMate_Options.xml b/src/dpslog/WeirdDPSMate/DPSMate_Options.xml new file mode 100644 index 0000000..69dd2ea --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_Options.xml @@ -0,0 +1,6071 @@ + + + ---------------------------------------------------------------------------------- + -------------- Templates for the config Menu -------------- + ---------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + this:SetMaxLetters(200) + + + this:ClearFocus() + + + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(this.aide, nil, nil, nil, nil, 1) + + + GameTooltip:Hide() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if this.aide then + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(this.aide, nil, nil, nil, nil, 1) + GameTooltip:Show() + end + + + GameTooltip:Hide() + + + + + + + + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(this.aide, nil, nil, nil, nil, 1) + + + GameTooltip:Hide() + + + if DPSMate.DB.loaded then + UIDropDownMenu_Initialize(this, this.func) + end + + + + + + + + + + + + + + + + + + + + + + if (this.aide) then + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(this.aide, nil, nil, nil, nil, 1) + end + + + GameTooltip:Hide() + + + getglobal(this:GetName().."_Editbox"):SetText(string.format("%.1f", this:GetValue())) + if this.func and DPSMate.DB.loaded then this.func() end + + + + + + + + + + + + + + this:SetMaxLetters(200) + this:SetScale(0.6) + + + this:ClearFocus() + local num = tonumber(this:GetText()) + if num then this:GetParent():SetValue(num) end + + + this:ClearFocus() + local num = tonumber(this:GetText()) + if num then this:GetParent():SetValue(num) end + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ---------------------------------------------------------------------------------- + -------------- DPSMate MiniMap Icon -------------- + ---------------------------------------------------------------------------------- + + + + ---------------------------------------------------------------------------------- + -------------- DPSMate PopUP -------------- + ---------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + DPSMate_PopUp_Text:SetText(DPSMate.L["popup"]) + DPSMate_PopUp_TotalText:SetText(DPSMate.L["total"]) + DPSMate_PopUp_CurrentText:SetText(DPSMate.L["current"]) + DPSMate_PopUp_CancelText:SetText(DPSMate.L["cancel"]) + this:SetClampedToScreen() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + if IsPartyLeader() or IsRaidOfficer() or IsRaidLeader() then + DPSMate_Vote_Abort:Show() + else + DPSMate_Vote_Abort:Hide() + end + + + DPSMate_Vote_Text:SetText(DPSMate.L["popup"]) + DPSMate_Vote_AcceptText:SetText(DPSMate.L["vreset"]) + DPSMate_Vote_CancelText:SetText(DPSMate.L["vdreset"]) + this:SetClampedToScreen() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + DPSMate_Logout_Text:SetText(DPSMate.L["memory"]) + DPSMate_Logout_AcceptText:SetText(DPSMate.L["accept"]) + DPSMate_Logout_CancelText:SetText(DPSMate.L["decline"]) + this:SetClampedToScreen() + + + + + + + + + ---------------------------------------------------------------------------------- + -------------- DPSMate Report -------------- + ---------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + DPSMate_Report_Text:SetText(DPSMate.L["report"].." - "..DPSMate.L["name"]) + + + + + + + + + + + + + + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(DPSMate.L["channeltooltip"], nil, nil, nil, nil, 1) + + + GameTooltip:Hide() + + + UIDropDownMenu_SetWidth(100) + UIDropDownMenu_Initialize(this, DPSMate.Options.ChannelDropDown) + getglobal(this:GetName().."_Text"):SetText(DPSMate.L["channel"]) + + + UIDropDownMenu_Initialize(this, DPSMate.Options.ChannelDropDown) + + + + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["reportdelaytooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["delay"]) + + + DPSMateSettings["reportdelay"] = not DPSMateSettings["reportdelay"] + + + + + + + + + + + + + + + + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(DPSMate.L["slidertooltip"], nil, nil, nil, nil, 1) + + + GameTooltip:Hide() + + + getglobal(this:GetName().."Text"):SetText(DPSMate.L["slider"]..": "..this:GetValue()) + + + this:SetMinMaxValues(1,25) + this:SetValue(6) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["slider"]..": 6") + getglobal(this:GetName().."Low"):SetText("1") + getglobal(this:GetName().."High"):SetText("25") + + + + + + + + + + + + + + this:SetMaxLetters(32) + getglobal(this:GetName().."_Text"):SetText(DPSMate.L["editboxtitle"]) + + + this:ClearFocus() + + + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(DPSMate.L["editboxtooltip"], nil, nil, nil, nil, 1) + + + GameTooltip:Hide() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + + + + + + ---------------------------------------------------------------------------------- + -------------- DPSMate Config Menu -------------- + ---------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + this.num = 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["createwindowtooltip"] + getglobal(this:GetName().."Text"):SetText(DPSMate.L["createwindow"]) + + + + + + + + + + + + + this.aide = DPSMate.L["availwindowsTooltip"] + this.func = DPSMate.Options.WindowDropDown + this.title = DPSMate.L["availwindows"] + UIDropDownMenu_SetWidth(148) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["configfromTooltip"] + this.func = DPSMate.Options.WindowDropDown + this.title = DPSMate.L["configfrom"] + UIDropDownMenu_SetWidth(148) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + this.aide = DPSMate.L["configtoTooltip"] + this.func = DPSMate.Options.WindowDropDown + this.title = DPSMate.L["configto"] + UIDropDownMenu_SetWidth(148) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["locktooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["lock"]) + + + if DPSMateSettings["lock"] then + DPSMateSettings["lock"] = false + DPSMate.Options:Unlock() + else + DPSMateSettings["lock"] = true + DPSMate.Options:Lock() + end + + + + + + + + + + + + this.aide = DPSMate.L["testmodetooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["testmode"]) + + + DPSMate.Options:ActivateTestMode() + + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["barfontTooltip"] + this.func = DPSMate.Options.BarFontDropDown + this.title = DPSMate.L["barfont"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + this.aide = DPSMate.L["barfontsizeTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_Name"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_Value"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + for i=1, 40 do + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Value"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barfontflag"]]) + end + end + this:SetMinMaxValues(1,32) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["barfontsize"]) + getglobal(this:GetName().."Low"):SetText("1") + getglobal(this:GetName().."High"):SetText("32") + + + + + + + + + + + + + this.aide = DPSMate.L["barfontflagsTooltip"] + this.func = DPSMate.Options.BarFontFlagsDropDown + this.title = DPSMate.L["barfontflags"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["bartextureTooltip"] + this.func = DPSMate.Options.BarTextureDropDown + this.title = DPSMate.L["bartexture"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + this.aide = DPSMate.L["barspacingTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barspacing"] = this:GetValue() + for i=1, 40 do + local bar = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i) + bar:ClearAllPoints() + bar:SetPoint("TOPLEFT", getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child"), "TOPLEFT") + bar:SetPoint("TOPRIGHT", getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child"), "TOPRIGHT") + if i>1 then + bar:SetPoint("TOPLEFT", getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..(i-1)), "BOTTOMLEFT", 0, -1*DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barspacing"]) + else + if DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["showtotals"] then + bar:SetPoint("TOPLEFT", getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total"), "BOTTOMLEFT", 0, -1*DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barspacing"]) + else + bar:SetPoint("TOPLEFT", getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total"), "BOTTOMLEFT", 0, -1) + end + end + end + end + this:SetMinMaxValues(1,10) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["barspacing"]) + getglobal(this:GetName().."Low"):SetText("1") + getglobal(this:GetName().."High"):SetText("10") + + + + + + + + + + + + this.aide = DPSMate.L["barheightTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barheight"] = this:GetValue() + if DPSMateSettings["showtotals"] then getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total"):SetHeight(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barheight"]) end + for i=1, 40 do + local bar = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i) + bar:SetHeight(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barheight"]) + local icon = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Icon") + icon:SetWidth(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barheight"]) + icon:SetHeight(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barheight"]) + if DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["classicons"] then + local name = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name") + name:ClearAllPoints() + name:SetPoint("LEFT", bar, "LEFT", DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barheight"], 0) + end + end + DPSMate:SetStatusBarValue() + end + this:SetMinMaxValues(10,25) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["barheight"]) + getglobal(this:GetName().."Low"):SetText("10") + getglobal(this:GetName().."High"):SetText("25") + + + + + + + + + + + + + + this.aide = DPSMate.L["classiconstooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["classicons"]) + + + if DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["classicons"] then + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["classicons"] = false + for i=1, 40 do + local bar = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i) + bar.name = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name") + bar.icon = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Icon") + bar.name:ClearAllPoints() + bar.name:SetPoint("TOPLEFT", bar, "TOPLEFT") + bar.name:SetPoint("BOTTOMRIGHT", bar, "BOTTOMRIGHT") + bar.icon:Hide() + end + else + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["classicons"] = true + for i=1, 40 do + local bar = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i) + bar.name = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Name") + bar.icon = getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_Icon") + bar.name:ClearAllPoints() + bar.name:SetPoint("TOPLEFT", bar, "TOPLEFT", DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barheight"], 0) + bar.name:SetPoint("BOTTOMRIGHT", bar, "BOTTOMRIGHT") + bar.icon:Show() + end + end + + + + + + + + + + this.aide = DPSMate.L["rankstooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["ranks"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["ranks"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["ranks"] + DPSMate:SetStatusBarValue() + + + + + + + + + + this.aide = DPSMate.L["disablebarbgtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["disablebarbg"]) + + + if DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barbg"] then + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barbg"] = false + for i=1, 40 do + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_BG"):SetAlpha(0.5) + end + else + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["barbg"] = true + for i=1, 40 do + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_StatusBar"..i.."_BG"):SetAlpha(0) + end + end + + + + + + + + + + + + this.aide = DPSMate.L["totalbaropacitytooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["totopacity"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total_BG"):SetAlpha(this:GetValue()) + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Child_Total"):SetStatusBarColor(1,1,1,this:GetValue()) + end + this:SetMinMaxValues(0,1) + this:SetValueStep(0.1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["totalbaropacity"]) + getglobal(this:GetName().."Low"):SetText("0") + getglobal(this:GetName().."High"):SetText("1") + + + + + + + + + + + + + + getglobal(this:GetName().."_BGColor_SwatchBg").r = DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarbgcolor"][1] + getglobal(this:GetName().."_BGColor_SwatchBg").g = DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarbgcolor"][2] + getglobal(this:GetName().."_BGColor_SwatchBg").b = DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarbgcolor"][3] + + + + + + + + + + + + this.aide = DPSMate.L["enabletitlebartooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["enable"]) + + + if DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebar"] then + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebar"] = false + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head"):Hide() + else + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebar"] = true + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head"):Show() + end + + + + + + + + + + + + + this.aide = DPSMate.L["barfontTooltip"] + this.func = DPSMate.Options.TitleBarFontDropDown + this.title = DPSMate.L["barfont"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + this.aide = DPSMate.L["barfontsizeTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfontsize"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head_Font"):SetFont(DPSMate.Options.fonts[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfont"]], DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfontsize"], DPSMate.Options.fontflags[DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfontflag"]]) + end + this:SetMinMaxValues(1,32) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["barfontsize"]) + getglobal(this:GetName().."Low"):SetText("1") + getglobal(this:GetName().."High"):SetText("32") + + + + + + + + + + + + + this.aide = DPSMate.L["barfontflagsTooltip"] + this.func = DPSMate.Options.TitleBarFontFlagsDropDown + this.title = DPSMate.L["barfontflags"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["bartextureTooltip"] + this.func = DPSMate.Options.TitleBarTextureDropDown + this.title = DPSMate.L["bartexture"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + this.aide = DPSMate.L["barheightTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarheight"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head"):SetHeight(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarheight"]) + end + this:SetMinMaxValues(10,32) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["barheight"]) + getglobal(this:GetName().."Low"):SetText("10") + getglobal(this:GetName().."High"):SetText("32") + + + + + + + + + + + + this.aide = DPSMate.L["bgOpacityTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebaropacity"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head_Background"):SetAlpha(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebaropacity"]) + end + this:SetMinMaxValues(0,1) + this:SetValueStep(0.1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["bgOpacity"]) + getglobal(this:GetName().."Low"):SetText("0") + getglobal(this:GetName().."High"):SetText("1") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["report"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarreport"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarreport"] + DPSMate.Options:ToggleTitleBarButtonState() + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["mode"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarsegments"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarsegments"] + DPSMate.Options:ToggleTitleBarButtonState() + + + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["reset"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarreset"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarreset"] + DPSMate.Options:ToggleTitleBarButtonState() + + + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["config"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarconfig"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarconfig"] + DPSMate.Options:ToggleTitleBarButtonState() + + + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["sync"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarsync"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarsync"] + DPSMate.Options:ToggleTitleBarButtonState() + + + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["enabledisable"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarenable"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarenable"] + DPSMate.Options:ToggleTitleBarButtonState() + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["filter"]) + + + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfilter"] = not DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["titlebarfilter"] + DPSMate.Options:ToggleTitleBarButtonState() + + + + + + + + + + + + this.aide = DPSMate.L["buttonshowtooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["cbtdisplay"]) + + + if DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["cbtdisplay"] then + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["cbtdisplay"] = false + DPSMate:SetStatusBarValue() + else + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["cbtdisplay"] = true + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Head_Font"):SetText(DPSMate.Options.Options[1]["args"][DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["CurMode"]].name) + end + + + + + + + + + + + + + + + + getglobal(this:GetName().."_BGColor_SwatchBg").r = DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][1] + getglobal(this:GetName().."_BGColor_SwatchBg").g = DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][2] + getglobal(this:GetName().."_BGColor_SwatchBg").b = DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["contentbgcolor"][3] + + + + + + + + + + + + this.aide = DPSMate.L["bgtexTooltip"] + this.func = DPSMate.Options.ContentBGTextureDropDown + this.title = DPSMate.L["bgtex"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + this.aide = DPSMate.L["scaleTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["scale"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"]):SetScale(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["scale"]) + end + this:SetMinMaxValues(0.5,3) + this:SetValueStep(0.1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["scale"]) + getglobal(this:GetName().."Low"):SetText("0.5") + getglobal(this:GetName().."High"):SetText("3") + + + + + + + + + + + + this.aide = DPSMate.L["opacityTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["opacity"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"]):SetAlpha(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["opacity"]) + end + this:SetMinMaxValues(0.0,1.0) + this:SetValueStep(0.1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["opacity"]) + getglobal(this:GetName().."Low"):SetText("0.0") + getglobal(this:GetName().."High"):SetText("1.0") + + + + + + + + + + + + this.aide = DPSMate.L["bgOpacityTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["bgopacity"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_ScrollFrame_Background"):SetAlpha(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["bgopacity"]) + end + this:SetMinMaxValues(0.0,1.0) + this:SetValueStep(0.1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["bgOpacity"]) + getglobal(this:GetName().."Low"):SetText("0.0") + getglobal(this:GetName().."High"):SetText("1.0") + + + + + + + + + + + + this.aide = DPSMate.L["borderOpacityTooltip"] + this.func = function() + DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["borderopacity"] = this:GetValue() + getglobal("DPSMate_"..DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["name"].."_Border"):SetAlpha(DPSMateSettings["windows"][DPSMate_ConfigMenu_Menu.Key]["borderopacity"]) + end + this:SetMinMaxValues(0.0,1.0) + this:SetValueStep(0.1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["borderOpacity"]) + getglobal(this:GetName().."Low"):SetText("0.0") + getglobal(this:GetName().."High"):SetText("1.0") + + + + + + + + + + + + + + this.aide = DPSMate.L["numberformatTooltip"] + this.func = DPSMate.Options.NumberFormatDropDown + this.title = DPSMate.L["numberformat"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["bordertextureTooltip"] + this.func = DPSMate.Options.BorderTextureDropDown + this.title = DPSMate.L["bordertexture"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["borderstrataTooltip"] + this.func = DPSMate.Options.BorderStrataDropDown + this.title = DPSMate.L["borderstrata"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["enterworldinstanceTooltip"] + this.func = DPSMate.Options.DataResetsDropDown + this.title = DPSMate.L["enterworldinstance"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["joinpartyTooltip"] + this.func = DPSMate.Options.DataResetsDropDown + this.title = DPSMate.L["joinparty"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["partymemberchangedTooltip"] + this.func = DPSMate.Options.DataResetsDropDown + this.title = DPSMate.L["partymemberchanged"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["leavingpartyTooltip"] + this.func = DPSMate.Options.DataResetsDropDown + this.title = DPSMate.L["leavingparty"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["syncrequesttooltip"] + this.func = DPSMate.Options.DataResetsDropDown + this.title = DPSMate.L["syncrequest"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + this.aide = DPSMate.L["dataresetslogouttooltip"] + this.func = DPSMate.Options.DataResetsDropDown + this.title = DPSMate.L["dataresetslogout"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["minimaptooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["minimap"]) + + + if DPSMateSettings["showminimapbutton"] then + DPSMateSettings["showminimapbutton"] = false + DPSMate_MiniMap:Hide() + else + DPSMateSettings["showminimapbutton"] = true + DPSMate_MiniMap:Show() + end + + + + + + + + + + this.aide = DPSMate.L["showtotaltooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["showtotal"]) + + + if DPSMateSettings["showtotals"] then + DPSMateSettings["showtotals"] = false + for _, val in pairs(DPSMateSettings["windows"]) do + getglobal("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetHeight(0.000001) + getglobal("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar1"):SetPoint("TOPLEFT", getglobal("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"), "BOTTOMLEFT", 0, -1) + end + else + DPSMateSettings["showtotals"] = true + for _, val in pairs(DPSMateSettings["windows"]) do + getglobal("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"):SetHeight(val["barheight"]) + getglobal("DPSMate_"..val["name"].."_ScrollFrame_Child_StatusBar1"):SetPoint("TOPLEFT", getglobal("DPSMate_"..val["name"].."_ScrollFrame_Child_Total"), "BOTTOMLEFT", 0, -1*val["barspacing"]) + end + end + DPSMate:SetStatusBarValue() + + + + + + + + + + this.aide = DPSMate.L["solotooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["solo"]) + + + if DPSMateSettings["hidewhensolo"] then + DPSMateSettings["hidewhensolo"] = false + for _, val in pairs(DPSMateSettings["windows"]) do + getglobal("DPSMate_"..val["name"]):Show() + end + else + DPSMateSettings["hidewhensolo"] = true + for _, val in pairs(DPSMateSettings["windows"]) do + getglobal("DPSMate_"..val["name"]):Hide() + end + end + DPSMate.Options:HideInPvP() + DPSMate.Options:HideWhenSolo() + + + + + + + + + + this.aide = DPSMate.L["combattooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["combat"]) + + + if DPSMateSettings["hideincombat"] then + DPSMateSettings["hideincombat"] = false + for _, val in pairs(DPSMateSettings["windows"]) do + getglobal("DPSMate_"..val["name"]):Show() + end + else + DPSMateSettings["hideincombat"] = true + if UnitAffectingCombat("player") then + for _, val in pairs(DPSMateSettings["windows"]) do + getglobal("DPSMate_"..val["name"]):Hide() + end + end + end + DPSMate.Options:HideInPvP() + DPSMate.Options:HideWhenSolo() + + + + + + + + + + this.aide = DPSMate.L["loginhidetooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["loginhide"]) + + + DPSMateSettings["hideonlogin"] = not DPSMateSettings["hideonlogin"] + + + + + + + + + + + + this.aide = DPSMate.L["bossfightstooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["bossfights"]) + + + DPSMateSettings["onlybossfights"] = not DPSMateSettings["onlybossfights"] + + + + + + + + + + this.aide = DPSMate.L["pvptooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["pvp"]) + + + if DPSMateSettings["hideinpvp"] then + DPSMateSettings["hideinpvp"] = false + for _, val in pairs(DPSMateSettings["windows"]) do + getglobal("DPSMate_"..val["name"]):Show() + end + else + DPSMateSettings["hideinpvp"] = true + end + DPSMate.Options:HideWhenSolo() + DPSMate.Options:HideInPvP() + + + + + + + + + + this.aide = DPSMate.L["disabletooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["disable"]) + + + if DPSMateSettings["disablewhilehidden"] then + DPSMateSettings["disablewhilehidden"] = false + DPSMate:Enable() + else + DPSMateSettings["disablewhilehidden"] = true + end + + + + + + + + + + this.aide = DPSMate.L["mergepetstooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["mergepets"]) + + + if DPSMateSettings["mergepets"] then + DPSMateSettings["mergepets"] = false + DPSMate:Enable() + else + DPSMateSettings["mergepets"] = true + end + + + + + + + + + + + + this.aide = DPSMate.L["segmentsTooltip"] + this.func = function() + DPSMateSettings["datasegments"] = this:GetValue() + if DPSMate:TableLength(DPSMateHistory)>DPSMateSettings["datasegments"] then + for i=(DPSMateSettings["datasegments"]+1), DPSMate:TableLength(DPSMateHistory) do + for p=1, DPSMate:TableLength(DPSMateSettings["windows"]) do + DPSMateSettings["windows"][p]["options"][2]["segment"..i] = false + end + table.remove(DPSMateHistory, i) + end + end + if DPSMate:TableLength(DPSMateCombatTime["segments"])>DPSMateSettings["datasegments"] then + for i=DPSMateSettings["datasegments"]+1, DPSMate:TableLength(DPSMateCombatTime["segments"]) do + for p=1, DPSMate:TableLength(DPSMateSettings["windows"]) do + DPSMateSettings["windows"][p]["options"][2]["segment"..i] = false + end + table.remove(DPSMateCombatTime["segments"], i) + end + end + for p=1, DPSMate:TableLength(DPSMateSettings["windows"]) do + local hasTrue = false + for _,val in pairs(DPSMateSettings["windows"][p]["options"][2]) do + if val==true then + hasTrue = true + break + end + end + if not hasTrue then + for cat,_ in pairs(DPSMateSettings["windows"][p]["options"][2]) do + DPSMateSettings["windows"][p]["options"][2][cat] = false + end + DPSMateSettings["windows"][p]["options"][2]["total"] = true + end + end + DPSMate.Options:InitializeSegments() + DPSMate:SetStatusBarValue() + end + this:SetMinMaxValues(1,20) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["segments"]) + getglobal(this:GetName().."Low"):SetText("1") + getglobal(this:GetName().."High"):SetText("20") + + + + + + + + + + + + this.aide = DPSMate.L["targetscaleTooltip"] + local frames = {"", "_Absorbs", "_AbsorbsTaken", "_Auras", "_Casts", "_CCBreaker", "_CureDisease", "_CureDiseaseReceived", "_CurePoison", "_CurePoisonReceived", "_DamageTaken", "_DamageTakenTotal", "_DamageTotal", "_Deaths", "_Decurses", "_DecursesReceived", "_Dispels", "_DispelsReceived", "_EDD", "_EDT", "_EHealing", "_EHealingTaken", "_Fails", "_FF", "_FFT", "_Healing", "_HealingTaken", "_Interrupts", "_LiftMagic", "_LiftMagicReceived", "_OHealingTaken", "_Overhealing", "_Procs", "_Threat", "_AbsorbsTakenTotal", "_AbsorbsTotal", "_AurasTotal", "_CastsTotal", "_CCBreakerTotal", "_CureDisease_Total", "_CurePoison_Total", "_Deaths_Total", "_Decurses_Total", "_Dispels_Total", "_EDDTotal", "_EDTTotal", "_EHealingTakenTotal", "_EHealingTotal", "_FailsTotal", "_FFTotal", "_FFTTotal", "_HABTotal", "_HealingTakenTotal", "_HealingTotal", "_Interrupts_Total", "_LiftMagic_Total", "_OverhealingTakenTotal", "_OverhealingTotal", "_ProcsTotal", "_ThreatTotal"} + this.func = function() + DPSMateSettings["targetscale"] = this:GetValue() + for _, name in frames do + if getglobal("DPSMate_Details"..name) then + getglobal("DPSMate_Details"..name):SetScale(DPSMateSettings["targetscale"]/UIParent:GetScale()) + end + end + end + this:SetMinMaxValues(0.3,2.0) + this:SetValueStep(0.01) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["targetscale"]) + getglobal(this:GetName().."Low"):SetText("0.3") + getglobal(this:GetName().."High"):SetText("2.0") + + + + + + + + + + + + this.aide = DPSMate.L["updateintervalTooltip"] + this.func = function() + DPSMateSettings["mainupdatetime"] = this:GetValue() + end + this:SetMinMaxValues(0.016,2.0) + this:SetValueStep(0.016) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["updateinterval"]) + getglobal(this:GetName().."Low"):SetText("0.016") + getglobal(this:GetName().."High"):SetText("2.0") + + + + + + + + + + + + this.aide = DPSMate.L["autowipeTooltip"] + this.func = function() + DPSMateSettings["autowipesessions"] = this:GetValue() + end + this:SetMinMaxValues(0,30) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["autowipe"]) + getglobal(this:GetName().."Low"):SetText("0") + getglobal(this:GetName().."High"):SetText("30") + + + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["showtooltipsTooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["showtooltips"]) + + + DPSMateSettings["showtooltips"] = not DPSMateSettings["showtooltips"] + + + + + + + + + + + + this.aide = DPSMate.L["informativetooltipsTooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["informativetooltips"]) + + + DPSMateSettings["informativetooltips"] = not DPSMateSettings["informativetooltips"] + + + + + + + + + + + + this.aide = DPSMate.L["subviewrowsTooltip"] + this.func = function() + DPSMateSettings["subviewrows"] = this:GetValue() + end + this:SetMinMaxValues(1,10) + this:SetValueStep(1) + getglobal(this:GetName().."Text"):SetText(DPSMate.L["subviewrows"]) + getglobal(this:GetName().."Low"):SetText("1") + getglobal(this:GetName().."High"):SetText("10") + + + + + + + + + + + + + this.aide = DPSMate.L["TooltipPositionDropDownTooltip"] + this.func = DPSMate.Options.TooltipPositionDropDown + this.title = DPSMate.L["TooltipPositionDropDown"] + UIDropDownMenu_SetWidth(120) + getglobal(this:GetName().."_Text"):SetText(this.title) + + + + + + + + + + + + + + + + + + + + + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["shownmodes"]) + + + DPSMate.Options:UpdateConfigModes(this, 0, true) + + + DPSMate.Options:UpdateConfigModes(this, arg1, true) + + + + + + + + + + + + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["hiddenmodes"]) + + + DPSMate.Options:UpdateConfigModes(this, 0, false) + + + DPSMate.Options:UpdateConfigModes(this, arg1, false) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this.aide = DPSMate.L["enablebroadcasting"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["enable"]) + + + DPSMateSettings["broadcasting"] = not DPSMateSettings["broadcasting"] + + + + + + + + + + + + this.aide = DPSMate.L["useraidwarningTooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["useraidwarning"]) + + + DPSMateSettings["bcrw"] = not DPSMateSettings["bcrw"] + + + + + + + + + + this.aide = DPSMate.L["relevantcdsTooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["relevantcds"]) + + + DPSMateSettings["bccd"] = not DPSMateSettings["bccd"] + + + + + + + + + + this.aide = DPSMate.L["ressTooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["ress"]) + + + DPSMateSettings["bcress"] = not DPSMateSettings["bcress"] + + + + + + + + + + this.aide = DPSMate.L["killingblowsTooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["killingblows"]) + + + DPSMateSettings["bckb"] = not DPSMateSettings["bckb"] + + + + + + + + + + this.aide = DPSMate.L["failsTooltip"] + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["fails"]) + + + DPSMateSettings["bcfail"] = not DPSMateSettings["bcfail"] + + + + + + + + + + + + + + + + + + + + + + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["whatisdpsmate"]) + getglobal(this:GetName().."_Text"):SetText(DPSMate.L["whatisdpsmateText"]) + + + + + + + + + + + + + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["whocreateddpsmate"]) + getglobal(this:GetName().."_Text"):SetText(DPSMate.L["whocreateddpsmateText"]) + + + + + + + + + + + + + getglobal(this:GetName().."_Title"):SetText(DPSMate.L["thanksto"]) + getglobal(this:GetName().."_Text"):SetHeight(90) + getglobal(this:GetName().."_Text"):ClearAllPoints() + getglobal(this:GetName().."_Text"):SetPoint("TOPLEFT", this, "TOPLEFT", 5, -5) + getglobal(this:GetName().."_Text"):SetText(DPSMate.L["thankstoText"]) + + + + + + + + \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/DPSMate_Parser.lua b/src/dpslog/WeirdDPSMate/DPSMate_Parser.lua new file mode 100644 index 0000000..f76d45d --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_Parser.lua @@ -0,0 +1,819 @@ +-- Events +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_PET_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_PET_MISSES") +--DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PET_BUFF") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PET_DAMAGE") + +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_SELF_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_SELF_MISSES") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_SELF_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE") -- +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE") -- +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_PARTY_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PARTY_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_PARTY_MISSES") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES") + +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES") + +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE") + +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_SELF_BUFF") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PARTY_BUFF") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS") + +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_BREAK_AURA") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER") +DPSMate.Parser:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_PARTY") + +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_FRIENDLY_DEATH") +DPSMate.Parser:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH") +DPSMate.Parser:RegisterEvent("PLAYER_AURAS_CHANGED") + +DPSMate.Parser:RegisterEvent("PLAYER_LOGOUT") +DPSMate.Parser:RegisterEvent("PLAYER_ENTERING_WORLD") + +BINDING_HEADER_DPSMATE = "DPSMate" +BINDING_NAME_DPSMATE_REPORT = DPSMate.L["togglereportframe"] +BINDING_NAME_DPSMATE_TOGGLE = DPSMate.L["toggleframes"] +BINDING_NAME_DPSMATE_RESET = DPSMate.L["resetdpsmate"] + +-- Global Variables +DPSMate.Parser.procs = { + -- General + ["Earthstrike"] = true, + ["Juju Flurry"] = true, + ["Holy Strength"] = true, + ["Ephemeral Power"] = true, + ["Chromatic Infusion"] = true, + ["Brittle Armor"] = true, + ["Unstable Power"] = true, + ["Zandalarian Hero Medallion"] = true, + ["Ascendance"] = true, + ["Essence of Sapphiron"] = true, + ["Hand of Justice"] = true, + ["Sword Specialization"] = true, + ["Bonereaver's Edge"] = true, + + --New + ["Felstriker"] = true, + ["Sanctuary"] = true, + ["Fury of Forgewright"] = true, + ["Primal Blessing"] = true, + ["Spinal Reaper"] = true, -- To test + ["Netherwind Focus"] = true, -- To test + ["Parry"] = true, -- To test + ["Untamed Fury"] = true, + ["The Eye of Diminution"] = true, + ["Kiss of the Spider"] = true, + ["Glyph of Deflection"] = true, + ["The Eye of the Dead"] = true, + ["Slayer's Crest"] = true, + ["Badge of the Swarmguard"] = true, + ["Arcane Shroud"] = true, + ["Persistent Shield"] = true, + ["Jom Gabbar"] = true, + ["The Burrower's Shell"] = true, + ["Thrash"] = true, + ["Free Action"] = true, + ["Living Free Action"] = true, + ["Restoration"] = true, + ["Speed"] = true, + ["Invulnerability"] = true, + ["Aura of the Blue Dragon"] = true, -- Mana Darkmoon card + ["Battle Squawk"] = true, + ["Devilsaur Fury"] = true, + ["Furious Howl"] = true, + ["Healing Potion"] = true, + ["Major Rejuvenation Potion"] = true, + ["Mana Potion"] = true, + ["Restore Mana"] = true, + ["Dreamless Sleep"] = true, + + + -- Rogue + ["Slice and Dice"] = true, + ["Blade Flurry"] = true, + ["Sprint"] = true, + ["Adrenaline Rush"] = true, + ["Vanish"] = true, + ["Relentless Strikes Effect"] = true, + ["Ruthlessness"] = true, -- To Test!!!! + ["Rogue Armor Energize Effect"] = true, + ["Rogue Armor Energize"] = true, + ["Invigorate"] = true, + ["Head Rush"] = true, + ["Venomous Totem"] = true, + ["Evasion"] = true, + ["Restore Energy"] = true, + ["Remorseless Attacks"] = true, + + -- Mage + ["Arcane Power"] = true, + ["Combustion"] = true, + ["Mind Quickening"] = true, + ["Enigma Resist Bonus"] = true, + ["Enigma Blizzard Bonus"] = true, + ["Adaptive Warding"] = true, + ["Not There"] = true, + ["Cold Snap"] = true, + ["Presence of Mind"] = true, + ["Ice Block"] = true, + ["Evocation"] = true, + + -- Priest + ["Power Infusion"] = true, + ["Oracle Healing Bonus"] = true, + ["Epiphany"] = true, + ["Aegis of Preservation"] = true, + ["Inspiration"] = true, + ["Blessed Recovery"] = true, + ["Focused Casting"] = true, + ["Spirit Tap"] = true, + + -- Druid + ["Symbols of Unending Life Finisher Bonus"] = true, + ["Metamorphosis Rune"] = true, + ["Clearcasting"] = true, + ["Nature's Grace"] = true, + + -- Paladin + ["Battlegear of Eternal Justice"] = true, + ["Blinding Light"] = true, + ["Divine Favor"] = true, + ["Divine Shield"] = true, + ["Redoubt"] = true, + ["Holy Shield"] = true, + ["Vengeance"] = true, + ["Blessing of Freedom"] = true, + ["Blessing of Sacrifice"] = true, + ["Blessing of Protection"] = true, + + -- Shaman + ["Stormcaller's Wrath"] = true, + ["Nature Aligned"] = true, + ["Elemental Mastery"] = true, + ["Windfury Weapon"] = true, + ["Windfury Totem"] = true, + ["Nature's Swiftness"] = true, + ["Ancestral Healing"] = true, + ["Reincarnation"] = true, + + -- Warlock + ["Vampirism"] = true, + ["Nightfall"] = true, + ["Soul Link"] = true, + ["Life Tap"] = true, + + -- Warrior + ["Cheat Death"] = true, + ["Gift of Life"] = true, + ["Bloodrage"] = true, + ["Flurry"] = true, + ["Enrage"] = true, + ["Sweeping Strikes"] = true, + ["Death Wish"] = true, + ["Recklessness"] = true, + ["Mighty Rage"] = true, + ["Great Rage"] = true, + ["Rage"] = true, + ["Berserker Rage"] = true, + ["Shield Wall"] = true, + ["Retaliation"] = true, + ["Diamond Flask"] = true, + ["Shield Block"] = true, + ["Last Stand"] = true, + + -- Hunter + ["Arcane Infused"] = true, + ["Quick Shots"] = true, + ["Rapid Fire"] = true, + + -- Boss Spells + ["Lucifron's Curse"] = true, + ["Gehennas' Curse"] = true, + ["Panic"] = true, + ["Living Bomb"] = true, + ["Brood Affliction: Bronze"] = true, + ["Bellowing Roar"] = true, + ["Fear"] = true, + ["Entangle"] = true, + ["Digestive Acid"] = true, + ["Locust Swarm"] = true, + ["Web Wrap"] = true, + ["Mutating Injection"] = true, + ["Terrifying Roar"] = true, +} + +DPSMate.Parser.BuffExceptions = { + ["Fury of Forgewright"] = true, + ["Bloodfang"] = true, +} + +DPSMate.Parser.OtherExceptions = { + ["Mighty Rage"] = true, + ["Bloodrage"] = true, + ["Holy Strength"] = true, + ["Dreamless Sleep"] = true, + ["Vampirism"] = true, +} +DPSMate.Parser.DmgProcs = { + -- General + ["Life Steal"] = true, + ["Thunderfury"] = true, + -- New + ["Bloodfang"] = true, + ["Fatal Wound"] = true, + ["Decapitate"] = true, + ["Gutgore Ripper"] = true, + ["Firebolt"] = true, + -- Can't add Hand of Ragnaros + ["Expose Weakness"] = true, -- To Test + ["Silence"] = true, -- To Test + ["Chilled"] = true, -- To Test + ["Glimpse of Madness"] = true, -- To Test + ["Engulfing Shadows"] = true, -- To Test + ["Elemental Vulnerability"] = true, -- To Test + ["Holy Power"] = true, -- To Test + ["Revealed Flaw"] = true, -- To Test + ["Totemic Power"] = true, -- To Test + ["Stygian Grasp"] = true, -- To Test + ["Electric Discharge"] = true, -- To Test + ["Flame Lash"] = true, -- To Test + ["Spell Vulnerability"] = true, -- To Test + ["Lightning Strike"] = true, -- To Test + -- Deathbringer Skipped +} +DPSMate.Parser.IgnoredDmgSpells = { +} +DPSMate.Parser.TargetParty = {} +DPSMate.Parser.RCD = { + ["Shield Wall"] = true, + ["Recklessness"] = true, + ["Retaliation"] = true, + ["Last Stand"] = true, + ["Innervate"] = true, + ["Divine Shield"] = true, + ["Blessing of Protection"] = true, + ["Gift of Life"] = true, + ["Redemption"] = true, + ["Rebirth"] = true, + ["Resurrection"] = true, + ["Reincarnation"] = true, + ["Ancestral Spirit"] = true, + ["Soulstone Resurrection"] = true, +} +DPSMate.Parser.FailDT = { + -- Molten Core + ["Rain of Fire"] = true, + ["Cone of Fire"] = true, + ["Lava Bomb"] = true, + ["Eruption"] = true, + ["Earthquake"] = true, + ["Hand of Ragnaros"] = true, + ["Wrath of Ragnaros"] = true, + ["Conflagration"] = true, + + -- Blackwing Lair + ["War Stomp"] = true, + ["Incinerate"] = true, + ["Corrosive Acid"] = true, + ["Frost Burn"] = true, + ["Ignite Flesh"] = true, + ["Time Lapse"] = true, + + -- Zul Gurub + ["Whirlwind"] = true, + ["Charge"] = true, + ["Poison Cloud"] = true, + + -- AQ 20 + ["Arcane Eruption"] = true, + ["Harsh Winds"] = true, + ["Sand Trap"] = true, + + -- AQ 40 + ["Toxin Cloud"] = true, + ["Arcane Burst"] = true, + ["Eye Beam"] = true, + ["Dark Glare"] = true, + + -- Naxx + ["Negative Charge"] = true, + ["Positive Charge"] = true, + ["Void Zone"] = true, + ["Plague Cloud"] = true, + ["Blizzard"] = true, + ["Chill"] = true, + ["Frost Breath"] = true, + ["Mana Detonation"] = true, + ["Shadow Fissure"] = true, + +} +DPSMate.Parser.FailDB = { + -- Molten Core + + -- Blackwing Lair + ["Suppression Aura"] = true, + ["Bellowing Roar"] = true, +} +DPSMate.Parser.CC = { + ["Sap"] = true, + ["Gouge"] = true, + ["Sleep"] = true, + ["Polymorph"] = true, + ["Greater Polymorph"] = true, + ["Polymorph: Chicken"] = true, + ["Polymorph: Cow"] = true, + ["Polymorph: Pig"] = true, + ["Polymorph: Sheep"] = true, + ["Polymorph: Turtle"] = true, + ["Blind"] = true, + ["Freezing Trap Effect"] = true, + ["Intimidating Shout"] = true, + ["Magic Dust"] = true, + ["Scatter Shot"] = true, + ["Wyvern Sting"] = true, + ["Seduction"] = true, + ["Repentance"] = true, + ["Shackle Undead"] = true, + ["Reckless Charge"] = true, +} + +DPSMate.Parser.Dispels = { + ["Remove Curse"] = true, + ["Cleanse"] = true, + ["Remove Lesser Curse"] = true, + ["Purify"] = true, + ["Dispel Magic"] = true, + ["Abolish Poison"] = true, + ["Abolish Disease"] = true, + ["Devour Magic"] = true, + ["Cure Disease"] = true, + ["Poison Cleansing Totem"] = true, + ["Cure Poison"] = true, + ["Disease Cleansing Totem"] = true, + ["Purge"] = true, + -- Potion + ["Powerful Anti-Venom"] = true, + ["Restoration"] = true, + ["Purification"] = true, + ["Purification Potion"] = true, + ["Restorative Potion"] = true, +} +DPSMate.Parser.DeCurse = { + ["Remove Curse"] = true, + ["Remove Lesser Curse"] = true, + ["Restoration"] = true, + ["Purification"] = true, +} +DPSMate.Parser.DeMagic = { + ["Dispel Magic"] = true, + ["Devour Magic"] = true, + ["Purge"] = true, + ["Restoration"] = true, +} +DPSMate.Parser.DeDisease = { + ["Purify"] = true, + ["Abolish Disease"] = true, + ["Cure Disease"] = true, + ["Disease Cleansing Totem"] = true, + ["Restoration"] = true, + ["Purification"] = true, +} +DPSMate.Parser.DePoison = { + ["Abolish Poison"] = true, + ["Purify"] = true, + ["Poison Cleansing Totem"] = true, + ["Cure Poison"] = true, + ["Powerful Anti-Venom"] = true, + ["Restoration"] = true, + ["Purification"] = true, +} +DPSMate.Parser.DebuffTypes = {} +DPSMate.Parser.HotDispels = { + ["Abolish Poison"] = true, + ["Abolish Disease"] = true, + ["Restoration"] = true, +} + +DPSMate.Parser.Kicks = { + -- Interrupts + -- Rogue + ["Kick"] = true, + -- Warrior + ["Pummel"] = true, + ["Shield Bash"] = true, + + -- Mage + ["Counterspell"] = true, + + -- Shaman + ["Earth Shock"] = true, + + -- Priest + ["Silence"] = true, + + -- Stuns + -- Rogue + ["Gouge"] = true, + ["Kidney Shot"] = true, + ["Cheap Shot"] = true, + + -- Hunter + ["Scatter Shot"] = true, + ["Improved Concussive Shot"] = true, + ["Wyvern Sting"] = true, + ["Intimidation"] = true, + + -- Warrior + ["Charge Stun"] = true, + ["Intercept Stun"] = true, + ["Concussion Blow"] = true, + + -- Druid + ["Feral Charge"] = true, + ["Feral Charge Effect"] = true, + ["Bash"] = true, + ["Pounce"] = true, + + -- Mage + ["Impact"] = true, + + -- Paladin + ["Repentance"] = true, + ["Hammer of Justice"] = true, + + -- Warlock + ["Pyroclasm"] = true, + ["Death Coil"] = true, + + -- Priest + ["Blackout"] = true, + + -- General + ["Tidal Charm"] = true, + ["Reckless Charge"] = true, +} +DPSMate.Parser.player = UnitName("player") +DPSMate.Parser.playerclass = nil + +-- Local Variables +local playerclassLoc,playerclass = UnitClass("player") +local fac = UnitFactionGroup("player") +local UL = UnitLevel + +local DPSTool = {} +local DPSToolTextLeft1 = {} +local GetPlayerBuff = GetPlayerBuff + +-- Begin Functions + +function DPSMate.Parser:OnLoad() + self.player, self.realm = UnitName("player") + DPSMate.DB:BuildUser(self.player, strlower(playerclass)) + if DPSMateUser[self.player] then + DPSMateUser[self.player][2] = strlower(playerclass) + DPSMateUser[self.player][8] = UL("player") + end + -- Prevent this addon from causing issues + if SW_FixLogStrings then + DPSMate:SendMessage("Please disable SW_StatsFixLogStrings and SW_Stats. Those addons cause issues.") + end + + DPSTool = DPSMate_Tooltip + DPSToolTextLeft1 = DPSMate_TooltipTextLeft1 + + if self.InitParser then + self:InitParser() + end +end + +local UnitName = UnitName +function DPSMate.Parser:GetUnitByName(target) + local unit = self.TargetParty[target] + if not unit then + if target==UnitName("player") then + unit="player" + elseif target==UnitName("target") then + unit="target" + end + end + return unit +end + +local UnitHealthMax = UnitHealthMax +local UnitHealth = UnitHealth +function DPSMate.Parser:GetOverhealByName(amount, target) + local result, unit = 0, self:GetUnitByName(target) + if not amount then + return 0; + end + if unit then result = amount-(UnitHealthMax(unit)-UnitHealth(unit)) end + if result<0 then return 0 else return result end +end + +local UnitClass = UnitClass +local UnitName = UnitName +local GetNumPartyMembers = GetNumPartyMembers +local GetNumRaidMembers = GetNumRaidMembers +local GetRaidRosterInfo = GetRaidRosterInfo +local subGRP, PSGRP, c +function DPSMate.Parser:AssociateShaman(name, old, update) + if not subGRP or not PSGRP[name] or update then + local tnum = GetNumPartyMembers() + subGRP, PSGRP = {}, {} + if tnum <= 0 then + tnum=GetNumRaidMembers() + for i=1, tnum do + _, _, c = GetRaidRosterInfo(i) + if UnitClass("raid"..i)==DPSMate.L["shaman"] then + subGRP[c] = UnitName("raid"..i) + end + PSGRP[UnitName("raid"..i)] = c + end + else + for i=1, tnum do + if UnitClass("party"..i)==DPSMate.L["shaman"] then + subGRP[1] = UnitName("party"..i) + end + PSGRP[UnitName("party"..i)] = 1 + end + PSGRP[name] = 1 + end + end + if PSGRP[name] and subGRP[PSGRP[name]] then + return subGRP[PSGRP[name]] + end + return old +end + +-- Qualify a pet/totem source name with its owner for disambiguation. +-- When _petOwner is set (PET_ events), use the player as owner. +-- Otherwise, look up the petToOwnerMap for single-owner pets. +function DPSMate.Parser:QualifyPetSource(source) + if self._petOwner then + return source .. " (" .. self._petOwner .. ")" + end + if self.petToOwnerMap and self.petToOwnerMap[source] then + local count, singleOwner = 0, nil + for o, _ in pairs(self.petToOwnerMap[source]) do + count = count + 1 + singleOwner = o + end + if count == 1 then + return source .. " (" .. singleOwner .. ")" + end + end + return source +end + +-- The totem aura just reports a removed event in the chat. +-- Maybe we can guess here? +local UnitDebuff = UnitDebuff +DPSMate.Parser.PLAYER_AURAS_CHANGED = function(unit) + local aura, debuffDispelType + if DPSTool.SetPlayerBuff then + for i=1, 4 do + DPSTool:SetPlayerBuff(GetPlayerBuff(i, "HARMFUL")) + aura = DPSToolTextLeft1:GetText() + DPSTool:Hide() + if not aura then break end + _, _, debuffDispelType = UnitDebuff("player", i); + if debuffDispelType and DPSMateAbility[aura] then + DPSMateAbility[aura][2] = debuffDispelType + end + end + end +end + + +DPSMate.Parser.CHAT_MSG_COMBAT_HOSTILE_DEATH = function(arg1) + this:CombatHostileDeaths(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_FRIENDLY_DEATH = function(arg1) + this:CombatFriendlyDeath(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_BREAK_AURA = function(arg1) + this:SpellBreakAura(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_AURA_GONE_PARTY = function(arg1) + this:SpellAuraGoneParty(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_AURA_GONE_OTHER = function(arg1) + this:SpellAuraGoneOther(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_AURA_GONE_SELF = function(arg1) + this:SpellAuraGoneSelf(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS = function(arg1) + this:SpellPeriodicFriendlyPlayerBuffs(arg1) + this:SpellPeriodicFriendlyPlayerBuffsAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PARTY_BUFF = function(arg1) + this:SpellHostilePlayerBuff(arg1) + this:SpellHostilePlayerBuffDispels(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS = function(arg1) + this:SpellPeriodicFriendlyPlayerBuffs(arg1) + this:SpellPeriodicFriendlyPlayerBuffsAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF = function(arg1) + this:SpellHostilePlayerBuff(arg1) + this:SpellHostilePlayerBuffDispels(arg1) + this:HostilePlayerSpellDamageInterrupts(arg1) + this:SpellPeriodicFriendlyPlayerBuffsAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS = function(arg1) + this:SpellPeriodicFriendlyPlayerBuffs(arg1) + this:SpellPeriodicFriendlyPlayerBuffsAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF = function(arg1) + this:SpellHostilePlayerBuff(arg1) + this:SpellHostilePlayerBuffDispels(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS = function(arg1) + this:SpellPeriodicSelfBuff(arg1) + this:SpellPeriodicSelfBuffAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_SELF_BUFF = function(arg1) + this:SpellSelfBuff(arg1) + this:SpellSelfBuffDispels(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE = function(arg1) + this:SpellPeriodicDamageTaken(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE = function(arg1) + this:CreatureVsCreatureSpellDamage(arg1) + this:CreatureVsCreatureSpellDamageAbsorb(arg1) + this:CreatureVsCreatureSpellDamageInterrupts(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES = function(arg1) + this:CreatureVsCreatureMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS = function(arg1) + this:CreatureVsCreatureHits(arg1) + this:CreatureVsCreatureHitsAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE = function(arg1) + this:CreatureVsCreatureSpellDamage(arg1) + this:CreatureVsCreatureSpellDamageAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE = function(arg1) + this:SpellPeriodicDamageTaken(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES = function(arg1) + this:CreatureVsCreatureMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS = function(arg1) + this:CreatureVsCreatureHits(arg1) + this:CreatureVsCreatureHitsAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE = function(arg1) + this:PeriodicSelfDamage(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE = function(arg1) + this:CreatureVsSelfSpellDamage(arg1) + this:CreatureVsSelfSpellDamageAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES = function(arg1) + this:CreatureVsSelfMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS = function(arg1) + this:CreatureVsSelfHits(arg1) + this:CreatureVsSelfHitsAbsorb(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS = function(arg1) + this:SpellDamageShieldsOnOthers(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF = function(arg1) + this:SpellDamageShieldsOnSelf(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES = function(arg1) + this:FriendlyPlayerMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES = function(arg1) + this:FriendlyPlayerMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS = function(arg1) + this:FriendlyPlayerHits(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS = function(arg1) + this:FriendlyPlayerHits(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE = function(arg1) + this:FriendlyPlayerDamage(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PARTY_DAMAGE = function(arg1) + this:FriendlyPlayerDamage(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_PARTY_MISSES = function(arg1) + this:FriendlyPlayerMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_PARTY_HITS = function(arg1) + this:FriendlyPlayerHits(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE = function(arg1) + this:PeriodicDamage(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE = function(arg1) + this:FriendlyPlayerDamage(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE = function(arg1) + this:PeriodicDamage(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_SELF_DAMAGE = function(arg1) + this:SelfSpellDMG(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_SELF_MISSES = function(arg1) + this:SelfMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_SELF_HITS = function(arg1) + this:SelfHits(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_PET_HITS = function(arg1) + this:PetHits(arg1) +end + +DPSMate.Parser.CHAT_MSG_COMBAT_PET_MISSES = function(arg1) + this:PetMisses(arg1) +end + +DPSMate.Parser.CHAT_MSG_SPELL_PET_DAMAGE = function(arg1) + this:PetSpellDamage(arg1) +end + +DPSMate.Parser:SetScript("OnEvent", function() + if this[event] then + local msg = arg1 + if msg and strfind(event, "CHAT_MSG_", 1, true) and not strfind(msg, " 's ", 1, true) and strfind(msg, "'s ", 1, true) then + msg = string.gsub(msg, "'s ", " 's ", 1) + end + this[event](msg) + end +end) diff --git a/src/dpslog/WeirdDPSMate/DPSMate_Sync.lua b/src/dpslog/WeirdDPSMate/DPSMate_Sync.lua new file mode 100644 index 0000000..cfd90f8 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/DPSMate_Sync.lua @@ -0,0 +1,1626 @@ +-- Notes +-- Following datas are not being syncronized. +-- Threat +-- Fails + +-- Local Variables +local player = "" +local _, playerclass = "", "" +local pid = 0 +local time, iterator, voteStarter = 0, 1, false +local t = {} +local strgsub = string.gsub +local strgfind = string.gfind +local tinsert = table.insert +local tremove = table.remove +local tnbr = tonumber +local func = function(c) tinsert(t,c) end +local LastMouseover = nil +local DB = DPSMate.DB +local Buffer = {} +local sname = GetRealmName() +local GT = GetTime +local Arrays = { + [1] = {}, -- Damage + [2] = {}, -- Damage Taken + [3] = {}, -- EDD + [4] = {}, -- EDT + [5] = {}, -- Healing done + [6] = {}, -- E Healing done + [7] = {}, -- Healing taken + [8] = {}, -- E Healing taken + [9] = {}, -- Overhealing done + [10] = {}, -- Absorbs + [11] = {}, -- Deaths + [12] = {}, -- Interrupts + [13] = {}, -- Dispels + [14] = {}, -- Auras + [15] = {}, -- O Healing taken + [16] = {} -- Threat +} +DPSMate.Sync.synckey = "" +local sKey = DPSMate.SYNCVERSION +local pairs = pairs +local UnitName = UnitName +local UnitIsPlayer = UnitIsPlayer +local ceil = ceil +local user, userid, userid2, userid3, userid4, ab, abid, usid +local trivial, lesstrivial, important, Execute = nil, nil, nil, {} + +local strsub = string.sub +local strfind = string.find +local UnitAffectingCombat = UnitAffectingCombat +local SDM = function(prio, prefix, text, chattype) + ChatThrottleLib:SendAddonMessage(prio, prefix, text, chattype) +end + +-- Beginn Functions + +function DPSMate.Sync:OnLoad() + player = UnitName("player") or "" + local _pcLoc + _pcLoc, playerclass = UnitClass("player") + playerclass = playerclass or _pcLoc or "" + if player == "" then return end + DB:BuildUser(player, strlower(playerclass)) + pid = DPSMateUser[player] and DPSMateUser[player][1] or 0 + Execute = {} + for cat, val in pairs(important) do + Execute[cat..sKey] = val + end +end + +local co, cou = 1, 1 +local updater = 0 +function DPSMate.Sync:OnUpdate() + if DPSMateSettings["sync"] then + time=time+arg1 + if time<30 then + if iterator==1 then + Buffer = {} + Buffer[1] = {"DPSMate_SyncStatus", "1"} + cou = 1 + co = 1 + self:DMGDoneAllOut() + self:DMGDoneAbilityOut() + self:DMGDoneStatOut() + iterator = 2 + elseif time>=3 and iterator==2 then + self:HealingAllOut(DPSMateEHealing, "E") + self:HealingAbilityOut(DPSMateEHealing, "E") + self:HealingStatOut(DPSMateEHealing, "E") + self:AbsorbsOut() + self:AbsorbsStatOut() + iterator = 3 + elseif time>=6 and iterator==3 then + self:AurasOut() + self:DeathsAllOut() + self:DeathsOut() + self:DispelsOut() + iterator = 4 + elseif time>=9 and iterator==4 then + self:EDAllOut(DPSMateEDD, "D") + self:EDAbilityOut(DPSMateEDD, "D") + self:EDStatOut(DPSMateEDD, "D") + iterator = 5 + elseif time>=12 and iterator==5 then + self:HealingAllOut(DPSMateTHealing, "T") + self:HealingAbilityOut(DPSMateTHealing, "T") + self:HealingStatOut(DPSMateTHealing, "T") + self:InterruptsAllOut() + self:InterruptsAbilityOut() + iterator = 6 + elseif time>=15 and iterator==6 then + self:DMGTakenAllOut() + self:DMGTakenAbilityOut() + self:DMGTakenStatOut() + iterator = 7 + elseif time>=18 and iterator==7 then + self:HealingAllOut(DPSMateEHealingTaken, "ETaken") + self:HealingTakenAbilityOut(DPSMateEHealingTaken, "E") + self:HealingTakenStatOut(DPSMateEHealingTaken, "ETaken") + self:HealingAllOut(DPSMateOverhealingTaken, "OTaken") + self:HealingTakenAbilityOut(DPSMateOverhealingTaken, "O") + self:HealingTakenStatOut(DPSMateOverhealingTaken, "OTaken") + iterator = 8 + elseif time>=21 and iterator==8 then + self:HealingAllOut(DPSMateOverhealing, "O") + self:HealingAbilityOut(DPSMateOverhealing, "O") + self:HealingStatOut(DPSMateOverhealing, "O") + iterator = 9 + elseif time>=24 and iterator==9 then + self:HealingAllOut(DPSMateHealingTaken, "TTaken") + self:HealingTakenAbilityOut(DPSMateHealingTaken, "T") + self:HealingTakenStatOut(DPSMateHealingTaken, "TTaken") + iterator = 10 + elseif time>=27 and iterator==10 then + self:EDAllOut(DPSMateEDT, "T") + self:EDAbilityOut(DPSMateEDT, "T") + self:EDStatOut(DPSMateEDT, "T") + iterator = 11 + elseif time>=30 and iterator==11 then + self:ThreatOut() + self:ThreatStatsOut() + Buffer[cou] = {"DPSMate_SyncStatus", "0"} + cou = cou + 1 + end + elseif time>180 then + iterator, time = 1, 0 + end + if Buffer[co] and updater>0.1 and not UnitAffectingCombat("player") then + SDM("NORMAL", Buffer[co][1]..sKey, Buffer[co][2], "RAID") + Buffer[co] = nil + co = co + 1 + updater = 0 + end + updater = updater + arg1 + else + iterator, time = 1, 0 + end + self:DismissVote(arg1) +end + +---------------------------------------------------------------------------------- +-------------- GENERAL -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:GetSummarizedTable(arr) + local newArr, i, dmg, time, dis = {}, 1, 0, nil, 1 + local TL = DPSMate:TableLength(arr) + if TL>100 then dis = floor(TL/100) end + for cat, val in pairs(arr) do + if dis>1 then + dmg=dmg+val[2] + if time then + if i>dis and (val[1]-time)>0 then + tinsert(newArr, {(val[1]+time)/2, dmg/(val[1]-time)}) -- last time val // subtracting from each other to get the time in which the damage is being done + time, dmg, i = nil, 0, 1 + end + else + time=val[1] + end + else + tinsert(newArr, val) + end + i=i+1 + end + return newArr +end + +function DPSMate.Sync:Vote() + DPSMate_Vote:Hide() + SDM("BULK", "DPSMate_Vote"..DPSMate.SYNCVERSION, "NaN", "RAID") +end + +local voteCount = 1 +local participants = 1 +local abort = 0 +function DPSMate.Sync:StartVote() + if not voteStarter then + self.synckey = player..(random(1,1000)) + SDM("BULK", "DPSMate_StartVote"..DPSMate.SYNCVERSION, "NaN", "RAID") + voteStarter = true + participants = 1 + else + DPSMate:SendMessage(DPSMate.L["votestartederror"]) + end +end + +function DPSMate.Sync:CountVote() + if voteStarter then + voteCount=voteCount+1 + if voteCount >= (participants/2) then + SDM("BULK", "DPSMate_VoteSuccess"..DPSMate.SYNCVERSION, self.synckey, "RAID") + sKey = DPSMate.SYNCVERSION..self.synckey + Execute = {} + for cat, val in pairs(important) do + Execute[cat..sKey] = val + end + voteStarter = false + voteCount = 1 + participants = 1 + local num = GetNumRaidMembers() + if num > 0 then + for i=1, num-1 do + SDM("NORMAL", "DPSMate_SyncTimer"..DPSMate.SYNCVERSION, UnitName("raid"..i)..","..(ceil(i/8)*30 - 30)..",", "RAID") + end + end + DB.MainUpdate = ceil(num/8)*30 - 30 + self:VoteSuccess() + end + end +end + +local voteTime = 0 +function DPSMate.Sync:DismissVote(elapsed) + if voteStarter then + voteTime=voteTime+elapsed + if voteTime>=30 then + SDM("BULK", "DPSMate_VoteFail"..DPSMate.SYNCVERSION, "NaN", "RAID") + voteStarter = false + voteCount = 1 + voteTime = 0 + participants = 1 + self.synckey = "" + sKey = DPSMate.SYNCVERSION..self.synckey + DPSMate:SendMessage(DPSMate.L["votefailederror"]) + elseif voteTime>=3 and participants==1 then + voteStarter = false + voteCount = 1 + voteTime = 0 + self:VoteSuccess() + end + end +end + +function DPSMate.Sync:VoteSuccess(key) + DPSMate:SendMessage(DPSMate.L["votesuccess"]) + self.synckey = key or "" + sKey = DPSMate.SYNCVERSION..self.synckey + Execute = {} + for cat, val in pairs(important) do + Execute[cat..sKey] = val + end + DPSMate.DB.MainUpdate = 75 + self.Async, iterator, time = false, 1, 0 + local UpTime = -5 + Buffer = {} + co, cou = 1, 1 + Arrays = { + [1] = {}, -- Damage + [2] = {}, -- Damage Taken + [3] = {}, -- EDD + [4] = {}, -- EDT + [5] = {}, -- Healing done + [6] = {}, -- E Healing done + [7] = {}, -- Healing taken + [8] = {}, -- E Healing taken + [9] = {}, -- Overhealing done + [10] = {}, -- Absorbs + [11] = {}, -- Deaths + [12] = {}, -- Interrupts + [13] = {}, -- Dispels + [14] = {}, -- Auras + [15] = {}, -- O Healing taken + [16] = {} -- Threat + } + DPSMate.Options:PopUpAccept(true, true) +end + +function DPSMate.Sync:SetTimer(arg2) + t = {} + strgsub(arg2, "(.-),", func) + if t[1] == player then + DB.MainUpdate = tnbr(t[2]) + end +end + +function DPSMate.Sync:CountParticipants() + if voteStarter then + participants=participants+1 + end +end + +function DPSMate.Sync:Participate() + SDM("NORMAL", "DPSMate_Participate"..DPSMate.SYNCVERSION, "NaN", "RAID") +end + +function DPSMate.Sync:ReceiveStartVote() + self:Participate() + if DPSMateSettings["dataresetssync"] == 3 then + DPSMate_Vote:Show() + elseif DPSMateSettings["dataresetssync"] == 1 then + self:Vote() + end +end + +function DPSMate.Sync:AbortVote() + if IsPartyLeader() or IsRaidOfficer() then + SDM("BULK", "DPSMate_AbortVote"..DPSMate.SYNCVERSION, "NaN", "RAID") + DPSMate:SendMessage(DPSMate.L["resetaborted"]) + end +end + +function DPSMate.Sync:ReceiveAbort() + DPSMate:SendMessage(DPSMate.L["resetaborted"]) + abort = GetTime() + participants = 1000000 + voteCount = 1 +end + +local bc, am = 0, 1 +function DPSMate.Sync:HelloWorld() + if (GetTime()-bc)>=3 then + bc = GetTime() + am = 1 + SDM("BULK", "DPSMate_HelloWorld", "NaN", "RAID") + end +end + +function DPSMate.Sync:GreetBack() + SDM("BULK", "DPSMate_Greet", DPSMate.SYNCVERSION, "RAID") +end + +local old = 0 +function DPSMate.Sync:ReceiveGreet(arg2, arg4) + if (GetTime()-bc)<=3 then + DPSMate:SendMessage(am..". "..arg4.." (v"..arg2..")") + am = am + 1 + else + if (GetTime()-old)>=3 then + local s = strfind(arg2, "%d+") + local ver = s and tnbr(strsub(arg2, s)) or 0 + if ver>DPSMate.VERSION then + DPSMate:SendMessage(DPSMate.L["versionisold"]) + old = GetTime() + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- SYNC IN -------------- +---------------------------------------------------------------------------------- + +DPSMate.Sync.CHAT_MSG_ADDON = function(arg1,arg2,arg3,arg4) -- DB.loaded part? Add scripts at the end of db load up + if DPSMateSettings["sync"] then + if arg4 == player then return end + if Execute[arg1] then + Execute[arg1](this, arg2,arg4) + return + end + if lesstrivial[arg1] then + lesstrivial[arg1](this, arg2,arg4) + return + end + if trivial[arg1] then + trivial[arg1](this, arg2,arg4) + return + end + else + if arg1=="DPSMate"..sKey then + Execute[arg1](this, arg2, arg4) + end + end +end + +DPSMate.Sync.UPDATE_MOUSEOVER_UNIT = function() + LastMouseover = UnitName("mouseover") +end + +GameTooltip.OldSetUnit = GameTooltip.SetUnit +GameTooltip.SetUnit = function(self, unit) + LastMouseover = UnitName(unit) + GameTooltip:OldSetUnit(unit) +end + +function DPSMate.Sync:SyncStatus(arg2, arg4) + if arg2 == "0" then + usid = DB:BuildUser(arg4) + if Arrays[1][usid] then DPSMateDamageDone[1][usid] = Arrays[1][usid] end + if Arrays[2][usid] and ((DPSMate.ModuleNames["damagetaken"])) then DPSMateDamageTaken[1][usid] = Arrays[2][usid] else Arrays[2][usid] = nil end + if DPSMate.ModuleNames["enemydamagedone"] then + for cat, val in pairs(Arrays[3]) do + if val[usid] then + if not DPSMateEDD[1][cat] then DPSMateEDD[1][cat] = {} end + DPSMateEDD[1][cat][usid] = val[usid] + end + end + else + Arrays[3][usid] = nil + end + for cat, val in pairs(Arrays[4]) do + if val[usid] then + if not DPSMateEDT[1][cat] then DPSMateEDT[1][cat] = {} end + DPSMateEDT[1][cat][usid] = val[usid] + end + end + if Arrays[5][usid] and ( (DPSMate.ModuleNames["healing"])) then DPSMateTHealing[1][usid] = Arrays[5][usid] else Arrays[5][usid] = nil end + if Arrays[6][usid] and ( (DPSMate.ModuleNames["effectivehealing"] or DPSMate.ModuleNames["healingandabsorbs"])) then DPSMateEHealing[1][usid] = Arrays[6][usid] else Arrays[6][usid] = nil end + if Arrays[7][usid] and ( (DPSMate.ModuleNames["healingtaken"] or DPSMate.ModuleNames["healing"])) then DPSMateHealingTaken[1][usid] = Arrays[7][usid] else Arrays[7][usid] = nil end + if Arrays[8][usid] and ( (DPSMate.ModuleNames["effectivehealingtaken"] or DPSMate.ModuleNames["effectivehealing"] or DPSMate.ModuleNames["healingandabsorbs"])) then DPSMateEHealingTaken[1][usid] = Arrays[8][usid] else Arrays[8][usid] = nil end + if Arrays[9][usid] and ( (DPSMate.ModuleNames["overhealing"])) then DPSMateOverhealing[1][usid] = Arrays[9][usid] else Arrays[9][usid] = nil end + if Arrays[10][usid] and ( (DPSMate.ModuleNames["absorbs"] or DPSMate.ModuleNames["absorbstaken"] or DPSMate.ModuleNames["healingandabsorbs"])) then DPSMateAbsorbs[1][usid] = Arrays[10][usid] else Arrays[10][usid] = nil end + if Arrays[11][usid] and ( (DPSMate.ModuleNames["deaths"])) then DPSMateDeaths[1][usid] = Arrays[11][usid] else Arrays[11][usid] = nil end + if Arrays[12][usid] and ( (DPSMate.ModuleNames["interrupts"])) then DPSMateInterrupts[1][usid] = Arrays[12][usid] else Arrays[12][usid] = nil end + if Arrays[13][usid] and ( (DPSMate.ModuleNames["decurses"] or DPSMate.ModuleNames["curepoison"] or DPSMate.ModuleNames["liftmagic"] or DPSMate.ModuleNames["curedisease"] or DPSMate.ModuleNames["dispels"])) then DPSMateDispels[1][usid] = Arrays[13][usid] else Arrays[13][usid] = nil end + if Arrays[14][usid] and ( (DPSMate.ModuleNames["aurasgained"])) then DPSMateAurasGained[1][usid] = Arrays[14][usid] else Arrays[14][usid] = nil end + if Arrays[15][usid] and ( (DPSMate.ModuleNames["overhealing"] or DPSMate.ModuleNames["OHealingTaken"])) then DPSMateOverhealingTaken[1][usid] = Arrays[15][usid] else Arrays[15][usid] = nil end + if Arrays[16][usid] and ( (DPSMate.ModuleNames["threats"])) then DPSMateThreat[1][usid] = Arrays[16][usid] else Arrays[16][usid] = nil end + DB.NeedUpdate = true + else + local usid = DB:BuildUser(arg4) + for i=1, 16 do + Arrays[i][usid] = nil + end + end +end + +---------------------------------------------------------------------------------- +-------------- DAMAGE DONE -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:DMGDoneAllIn(arg2, arg4) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + Arrays[1][userid] = { + i = tnbr(t[1]), + } +end + +function DPSMate.Sync:DMGDoneStatIn(arg2, arg4) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + abid = DB:BuildAbility(t[3]) + t[1] = tnbr(t[1]) + if t[1]>DPSMateCombatTime["total"] and (t[1]>5*DPSMateCombatTime["total"] or t[1]>20000) then return end + if not Arrays[1][userid] then return end + if not Arrays[1][userid][abid] then return end + Arrays[1][userid][abid]["i"][t[1]]=tnbr(t[2]) + if t[1]>DPSMateCombatTime["total"] then DPSMateCombatTime["total"]=t[1] end +end + +function DPSMate.Sync:DMGDoneAbilityIn(arg2, arg4) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + + if not Arrays[1][userid] then return end + Arrays[1][userid][DB:BuildAbility(t[1])] = { + [1] = tnbr(t[2]), + [2] = tnbr(t[3]), + [3] = tnbr(t[4]), + [4] = tnbr(t[5]), + [5] = tnbr(t[6]), + [6] = tnbr(t[7]), + [7] = tnbr(t[8]), + [8] = tnbr(t[9]), + [9] = tnbr(t[10]), + [10] = tnbr(t[11]), + [11] = tnbr(t[12]), + [12] = tnbr(t[13]), + [13] = tnbr(t[14]), + [14] = tnbr(t[15]), + [15] = tnbr(t[16]), + [16] = tnbr(t[17]), + [17] = tnbr(t[18]), + [18] = tnbr(t[19]), + [19] = tnbr(t[20]), + [20] = tnbr(t[21]), + [21] = tnbr(t[22]), + [22] = tnbr(t[23]), + ["i"] = {} + } +end + +---------------------------------------------------------------------------------- +-------------- DAMAGE TAKEN -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:DMGTakenAllIn(arg2, arg4) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + Arrays[2][userid] = { + i = tnbr(t[1]), + } +end + +function DPSMate.Sync:DMGTakenStatIn(arg2, arg4) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + abid = DB:BuildAbility(t[3]) + userid2 = DB:BuildUser(t[4]) + if not Arrays[2][userid] then return end + if not Arrays[2][userid][userid2] then return end + if not Arrays[2][userid][userid2][abid] then return end + t[1] = tnbr(t[1]) + if t[1]>DPSMateCombatTime["total"] and (t[1]>5*DPSMateCombatTime["total"] or t[1]>20000) then return end + Arrays[2][userid][userid2][abid]["i"][t[1]]=tnbr(t[2]) + if t[1]>DPSMateCombatTime["total"] then DPSMateCombatTime["total"]=t[1] end +end + +function DPSMate.Sync:DMGTakenAbilityIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid2, userid = DB:BuildUser(t[1]), DB:BuildUser(arg4) + if not Arrays[2][userid] then return end + if not Arrays[2][userid][userid2] then + Arrays[2][userid][userid2] = {} + end + Arrays[2][userid][userid2][DB:BuildAbility(t[2])] = { + [1] = tnbr(t[3]), + [2] = tnbr(t[4]), + [3] = tnbr(t[5]), + [4] = tnbr(t[6]), + [5] = tnbr(t[7]), + [6] = tnbr(t[8]), + [7] = tnbr(t[9]), + [8] = tnbr(t[10]), + [9] = tnbr(t[11]), + [10] = tnbr(t[12]), + [11] = tnbr(t[13]), + [12] = tnbr(t[14]), + [13] = tnbr(t[15]), + [14] = tnbr(t[16]), + [15] = tnbr(t[17]), + [16] = tnbr(t[18]), + [17] = tnbr(t[19]), + [18] = tnbr(t[20]), + [19] = tnbr(t[21]), + [20] = tnbr(t[22]), + [21] = tnbr(t[23]), + [22] = tnbr(t[24]), + [23] = tnbr(t[25]), + ["i"] = {} + } +end + +---------------------------------------------------------------------------------- +-------------- ENEMY DAMAGE TAKEN -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:EDAllIn(arr, arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid = DB:BuildUser(t[1]) + if not Arrays[arr][userid] then + Arrays[arr][userid] = {} + end + Arrays[arr][userid][DB:BuildUser(arg4)] = { + i = tnbr(t[2]), + } +end + +function DPSMate.Sync:EDStatIn(arr, arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2, abid = DB:BuildUser(t[1]), DB:BuildUser(arg4), DB:BuildAbility(t[4]) + if not Arrays[arr][userid] then return end + if not Arrays[arr][userid][userid2] then return end + if not Arrays[arr][userid][userid2][abid] then return end + t[2] = tnbr(t[2]) + if t[2]>DPSMateCombatTime["total"] and (t[2]>5*DPSMateCombatTime["total"] or t[2]>20000) then return end + Arrays[arr][userid][userid2][abid]["i"][t[2]] = tnbr(t[3]) + if t[2]>DPSMateCombatTime["total"] then DPSMateCombatTime["total"]=t[2] end +end + +function DPSMate.Sync:EDAbilityIn(arr, arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2 = DB:BuildUser(t[1]), DB:BuildUser(arg4) + if not Arrays[arr][userid] then return end + if not Arrays[arr][userid][userid2] then return end + Arrays[arr][userid][userid2][DB:BuildAbility(t[2])] = { + [1] = tnbr(t[3]), + [2] = tnbr(t[4]), + [3] = tnbr(t[5]), + [4] = tnbr(t[6]), + [5] = tnbr(t[7]), + [6] = tnbr(t[8]), + [7] = tnbr(t[9]), + [8] = tnbr(t[10]), + [9] = tnbr(t[11]), + [10] = tnbr(t[12]), + [11] = tnbr(t[13]), + [12] = tnbr(t[14]), + [13] = tnbr(t[15]), + [14] = tnbr(t[16]), + [15] = tnbr(t[17]), + [16] = tnbr(t[18]), + [17] = tnbr(t[19]), + [18] = tnbr(t[20]), + [19] = tnbr(t[21]), + [20] = tnbr(t[22]), + [21] = tnbr(t[23]), + [22] = tnbr(t[24]), + ["i"] = {} + } +end + +---------------------------------------------------------------------------------- +-------------- Healing -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:HealingAllIn(arg2, arg4, arr) + t = {} + strgsub(arg2, "(.-),", func) + Arrays[arr][DB:BuildUser(arg4)] = { + i = tnbr(t[2]), + } +end + +function DPSMate.Sync:HealingStatIn(arg2, arg4, arr) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + abid = DB:BuildAbility(t[3]) + t[1] = tnbr(t[1]) + if not Arrays[arr][userid] then return end + if not Arrays[arr][userid][abid] then return end + if t[1]>DPSMateCombatTime["total"] and (t[1]>5*DPSMateCombatTime["total"] or t[1]>20000) then return end + Arrays[arr][userid][abid]["i"][t[1]]=tnbr(t[2]) + if t[1]>DPSMateCombatTime["total"] then DPSMateCombatTime["total"]=t[1] end +end + +function DPSMate.Sync:HealingAbilityIn(arg2, arg4, arr) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + if not Arrays[arr][userid] then return end + Arrays[arr][userid][DB:BuildAbility(t[1])] = { + [1] = tnbr(t[2]), + [2] = tnbr(t[3]), + [3] = tnbr(t[4]), + [4] = tnbr(t[5]), + [5] = tnbr(t[6]), + [6] = tnbr(t[7]), + [7] = tnbr(t[8]), + [8] = tnbr(t[9]), + [9] = tnbr(t[10]), + ["i"] = {} + } +end + +---------------------------------------------------------------------------------- +-------------- Healing taken -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:HealingTakenStatIn(arg2, arg4, arr) + userid = DB:BuildUser(arg4) + t = {} + strgsub(arg2, "(.-),", func) + abid = DB:BuildAbility(t[3]) + userid2 = DB:BuildUser(t[4]) + t[1] = tnbr(t[1]) + if not Arrays[arr][userid] then return end + if not Arrays[arr][userid][userid2] then return end + if not Arrays[arr][userid][userid2][abid] then return end + if t[1]>DPSMateCombatTime["total"] and (t[1]>5*DPSMateCombatTime["total"] or t[1]>20000) then return end + Arrays[arr][userid][userid2][abid]["i"][t[1]]=tnbr(t[2]) + if t[1]>DPSMateCombatTime["total"] then DPSMateCombatTime["total"]=t[1] end +end + +function DPSMate.Sync:HealingTakenAbilityIn(arg2, arg4, arr) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2 = DB:BuildUser(arg4), DB:BuildUser(t[1]) + if not Arrays[arr][userid] then return end + if not Arrays[arr][userid][userid2] then + Arrays[arr][userid][userid2] = {} + end + Arrays[arr][userid][userid2][DB:BuildAbility(t[2])] = { + [1] = tnbr(t[3]), + [2] = tnbr(t[4]), + [3] = tnbr(t[5]), + [4] = tnbr(t[6]), + [5] = tnbr(t[7]), + [6] = tnbr(t[8]), + [7] = tnbr(t[9]), + [8] = tnbr(t[10]), + [9] = tnbr(t[11]), + ["i"] = {} + } +end + +---------------------------------------------------------------------------------- +-------------- Absorbs -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:iAbsorbsIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2, userid3 = DB:BuildUser(arg4), DB:BuildUser(t[1]), DB:BuildAbility(t[2]) + if not Arrays[10][userid] then + Arrays[10][userid] = {} + end + if not Arrays[10][userid][userid2] then + Arrays[10][userid][userid2] = { + i = {}, + } + end + if not Arrays[10][userid][userid2][userid3] then + Arrays[10][userid][userid2][userid3] = {} + end + Arrays[10][userid][userid2][userid3][tnbr(t[3])] = { + i = { + [1] = tnbr(t[4]), + [2] = tnbr(t[5]), + [3] = tnbr(t[6]), + [4] = tnbr(t[7]), + }, + } +end + +function DPSMate.Sync:AbsorbsStatIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2 = DB:BuildUser(arg4), DB:BuildUser(t[1]) + if not Arrays[10][userid] then return end + if not Arrays[10][userid][userid2] then return end + t[2] = tnbr(t[2]) + if t[2]>DPSMateCombatTime["total"] and (t[2]>5*DPSMateCombatTime["total"] or t[2]>20000) then return end + if t[4] then + tinsert(Arrays[10][userid][userid2]["i"], {t[2], tnbr(t[3]), tnbr(t[4]), tnbr(t[5])}) + else + tinsert(Arrays[10][userid][userid2]["i"], {t[2], tnbr(t[3]), tnbr(t[4])}) + end + if t[2]>DPSMateCombatTime["total"] then DPSMateCombatTime["total"]=t[2] end +end + +function DPSMate.Sync:AbsorbsIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2, userid3, userid4 = DB:BuildUser(arg4), DB:BuildUser(t[1]), DB:BuildAbility(t[2]), DB:BuildUser(t[4]) + local val = tnbr(t[3]) + if not Arrays[10][userid] then return end + if not Arrays[10][userid][userid2] then return end + if not Arrays[10][userid][userid2][userid3] then Arrays[10][userid][userid2][userid3] = {} end + if not Arrays[10][userid][userid2][userid3][val] then Arrays[10][userid][userid2][userid3][val] = {} end + if not Arrays[10][userid][userid2][userid3][val][userid4] then Arrays[10][userid][userid2][userid3][val][userid4] = {} end + Arrays[10][userid][userid2][userid3][val][userid4][tnbr(t[5])] = tnbr(t[6]) + DB.NeedUpdate = true +end + +---------------------------------------------------------------------------------- +-------------- Deaths -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:DeathsAllIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid = DB:BuildUser(arg4) + if not Arrays[11][userid] then + Arrays[11][userid] = {} + end + Arrays[11][userid][tnbr(t[2])] = { + i = { + [1] = tnbr(t[3]), + [2] = t[4], + }, + } +end + +function DPSMate.Sync:DeathsIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + t[1] = tnbr(t[1]) + userid = DB:BuildUser(arg4) + if not Arrays[11][userid] then return end + if not Arrays[11][userid][t[1]] then return end + Arrays[11][userid][t[1]][tnbr(t[2])] = { + [1] = DB:BuildUser(t[3]), + [2] = DB:BuildAbility(t[4]), + [3] = tnbr(t[5]), + [4] = tnbr(t[6]), + [5] = tnbr(t[7]), + [6] = tnbr(t[8]), + [7] = t[9], + } +end + +---------------------------------------------------------------------------------- +-------------- Interrupts -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:InterruptsAllIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + Arrays[12][DB:BuildUser(arg4)] = { + i = { + [1] = tnbr(t[2]), + [2] = {} + }, + } +end + +function DPSMate.Sync:InterruptsAbilityIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2, userid3 = DB:BuildUser(arg4),DB:BuildAbility(t[1]), DB:BuildUser(t[2]) + if not Arrays[12][userid] then return end + if not Arrays[12][userid][userid2] then + Arrays[12][userid][userid2] = {} + end + if not Arrays[12][userid][userid2][userid3] then + Arrays[12][userid][userid2][userid3] = {} + end + Arrays[12][userid][userid2][userid3][DB:BuildAbility(t[3])] = tnbr(t[4]) +end + +---------------------------------------------------------------------------------- +-------------- Dispels -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:iDispelsIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid = DB:BuildUser(arg4) + if not Arrays[13][userid] then Arrays[13][userid] = {i={[1]=0,[2]={}}} end + Arrays[13][userid]["i"][1] = tnbr(arg2); +end + +function DPSMate.Sync:DispelsIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2, userid3 = DB:BuildUser(arg4), DB:BuildAbility(t[1]), DB:BuildUser(t[2]) + if not Arrays[13][userid] then Arrays[13][userid] = {i={[1]=0,[2]={}}} end + if not Arrays[13][userid][userid2] then + Arrays[13][userid][userid2] = {} + end + if not Arrays[13][userid][userid2][userid3] then + Arrays[13][userid][userid2][userid3] = {} + end + Arrays[13][userid][userid2][userid3][DB:BuildAbility(t[3])] = tnbr(t[4]) +end + +---------------------------------------------------------------------------------- +-------------- Auras -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:AurasAllIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, userid2 = DB:BuildUser(arg4), DB:BuildAbility(t[1]) + if not Arrays[14][userid] then + Arrays[14][userid] = {} + end + Arrays[14][userid][userid2] = { + [1] = {}, + [2] = {}, + [3] = {}, + [4] = false, + [5] = tnbr(t[2]), + [6] = tnbr(t[3]), + } + if t[2]=="1" then + Arrays[14][userid][userid2][4] = true + end +end + +function DPSMate.Sync:AurasStartEndIn(arg2, arg4, prefix) + t = {} + strgsub(arg2, "(.-),", func) + userid = DB:BuildUser(arg4) + abid = DB:BuildAbility(t[1]) + if not Arrays[14][userid] then return end + if not Arrays[14][userid][abid] then return end + Arrays[14][userid][abid][prefix][tnbr(t[2])] = tnbr(t[3]) +end + +function DPSMate.Sync:AurasCauseIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + userid, abid = DB:BuildUser(arg4), DB:BuildAbility(t[1]) + if not Arrays[14][userid] then return end + if not Arrays[14][userid][abid] then return end + Arrays[14][userid][abid][3][DB:BuildUser(t[2])] = tnbr(t[3]) +end + +---------------------------------------------------------------------------------- +-------------- SYNC OUT -------------- +---------------------------------------------------------------------------------- + +local LastDecursive = nil +if Dcr_Cast_CureSpell then + local OldDCR_CAST = Dcr_Cast_CureSpell + DPSMate.Parser.DCR_CAST = function(spellID, Unit, AfflictionType, ClearCurrentTarget) + LastDecursive = UnitName(Unit) + OldDCR_CAST(spellID, Unit, AfflictionType, ClearCurrentTarget) + end + Dcr_Cast_CureSpell = DPSMate.Parser.DCR_CAST +end + +function DPSMate.Parser:GetTarget() + local target = LastDecursive + if not target then + if UnitIsPlayer("target") then + target = UnitName("target") + else + target = LastMouseover + end + end + return target +end +local GetTargetP = DPSMate.Parser.GetTarget + +-- Hooking useaction function in order to get the owner of the spell. +DPSMate.Sync.OverTimeDispels = { + ["Abolish Poison"] = true, + ["Abolish Disease"] = true, +} +DPSMate.Sync.AbsorbAbilities = { + ["Greater Fire Protection Potion"] = true, + ["Greater Frost Protection Potion"] = true, + ["Greater Nature Protection Potion"] = true, + ["Greater Holy Protection Potion"] = true, + ["Greater Shadow Protection Potion"] = true, + ["Greater Arcane Protection Potion"] = true, + ["Power Word: Shield"] = true, + ["Ice Barrier"] = true, + ["The Burrower's Shell"] = true, + ["Aura of Protection"] = true, + ["Damage Absorb"] = true, + ["Physical Protection"] = true, + ["Harm Prevention Belt"] = true, + ["Mana Shield"] = true, + ["Frost Protection"] = true, + ["Frost Resistance"] = true, + ["Frost Ward"] = true, + ["Fire Protection"] = true, + ["Fire Ward"] = true, + ["Nature Protection"] = true, + ["Shadow Protection"] = true, + ["Arcane Protection"] = true, + ["Holy Protection"] = true, +} +DPSMate.Sync.OtherAbilities = { + ["Banish"] = true, + ["Curse of Recklessness"] = true, + ["Curse of the Elements"] = true, + ["Curse of Tongues"] = true, + ["Curse of Shadow"] = true, +} +DPSMate.Parser.SendSpell = {} +local oldUseAction = UseAction +DPSMate.Parser.UseAction = function(slot, checkCursor, onSelf) + DPSMate_Tooltip:ClearLines() + DPSMate_Tooltip:SetAction(slot) + local aura = DPSMate_TooltipTextLeft1:GetText() + local target = GetTargetP() + if aura and target and (DPSMate.Sync.OverTimeDispels[aura] or DPSMate.Sync.AbsorbAbilities[aura] or DPSMate.Sync.OtherAbilities[aura]) and not DPSMate.Parser.SendSpell[aura] then + SDM("ALERT", "DPSMate"..sKey, aura..","..target..",", "RAID") + DPSMate.Parser.SendSpell[aura] = true + end + if aura then + local time = GetTime() + DB:AwaitAfflicted(player, aura, UnitName("target"), time) + if DPSMate.Parser.Dispels[aura] then DB:AwaitHotDispel(aura, target, player, time) end + DB:AwaitingBuff(player, aura, target, time) + DB:AwaitingAbsorbConfirmation(player, aura, target, time) + end + oldUseAction(slot, checkCursor, onSelf) +end +UseAction = DPSMate.Parser.UseAction + +-- Hooking CastSpellByName function in order to get the owner of the spell. +local oldCastSpellByName = CastSpellByName +DPSMate.Parser.CastSpellByName = function(spellName, onSelf) + local target = GetTargetP() + if target and (DPSMate.Sync.OverTimeDispels[spellName] or DPSMate.Sync.AbsorbAbilities[spellName] or DPSMate.Sync.OtherAbilities[spellName]) and not DPSMate.Parser.SendSpell[spellName] then + SDM("ALERT", "DPSMate"..sKey, spellName..","..target..",", "RAID") + DPSMate.Parser.SendSpell[spellName] = true + end + local time = GetTime() + DB:AwaitAfflicted(player, spellName, UnitName("target"), time) + if DPSMate.Parser.Dispels[spellName] then DB:AwaitHotDispel(spellName, target, player, time) end + DB:AwaitingBuff(player, spellName, target, time) + DB:AwaitingAbsorbConfirmation(player, spellName, target, time) + oldCastSpellByName(spellName, onSelf) +end +CastSpellByName = DPSMate.Parser.CastSpellByName + +-- Hooking CastSpell function in order to get the owner of the spell. +local oldCastSpell = CastSpell +DPSMate.Parser.CastSpell = function(spellID, spellbookType) + local spellName, spellRank = GetSpellName(spellID, spellbookType) + local target = GetTargetP() + if target and (DPSMate.Sync.OverTimeDispels[spellName] or DPSMate.Sync.AbsorbAbilities[spellName] or DPSMate.Sync.OtherAbilities[spellName]) and not DPSMate.Parser.SendSpell[spellName] then + SDM("ALERT", "DPSMate"..sKey, spellName..","..target..",", "RAID") + DPSMate.Parser.SendSpell[spellName] = true + end + local time = GetTime() + DB:AwaitAfflicted(player, spellName, UnitName("target"), time) + if DPSMate.Parser.Dispels[spellName] then DB:AwaitHotDispel(spellName, target, player, time) end + DB:AwaitingBuff(player, spellName, target, time) + DB:AwaitingAbsorbConfirmation(player, spellName, target, time) + oldCastSpell(spellID, spellbookType) +end +CastSpell = DPSMate.Parser.CastSpell + +---------------------------------------------------------------------------------- +-------------- DAMAGE DONE -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:DMGDoneAllOut() + if DPSMateDamageDone[1][pid] then + Buffer[cou] = {"DPSMate_DMGDoneAll", DPSMateDamageDone[1][pid]["i"]..","} + cou = cou + 1 + end +end + +function DPSMate.Sync:DMGDoneStatOut() + if not DPSMateDamageDone[1][pid] then return end + local ab, arr, i + for cat, val in pairs(DPSMateDamageDone[1][pid]) do + if cat~="i" and val["i"] then + ab, arr = DPSMate:GetAbilityById(cat), {} + for ca, va in pairs(val["i"]) do + i = 1 + while true do + if (not arr[i]) then + tinsert(arr, i, {ca,va}) + break + else + if ca<=arr[i][1] then + tinsert(arr, i, {ca,va}) + break + end + end + i=i+1 + end + end + for ca, va in pairs(self:GetSummarizedTable(arr)) do + Buffer[cou] = {"DPSMate_DMGDoneStat", va[1]..","..va[2]..","..ab..","} + cou = cou + 1 + end + end + end +end + +function DPSMate.Sync:DMGDoneAbilityOut() + if not DPSMateDamageDone[1][pid] then return end + for cat, val in pairs(DPSMateDamageDone[1][pid]) do + if cat~="i" then + Buffer[cou] = {"DPSMate_DMGDoneAbility", DPSMate:GetAbilityById(cat)..","..val[1]..","..val[2]..","..val[3]..","..ceil(val[4])..","..val[5]..","..val[6]..","..val[7]..","..ceil(val[8])..","..val[9]..","..val[10]..","..val[11]..","..val[12]..","..val[13]..","..val[14]..","..val[15]..","..val[16]..","..ceil(val[17])..","..val[18]..","..val[19]..","..val[20]..","..ceil(val[21])..","..val[22]..","} + cou = cou + 1 + end + end +end + +---------------------------------------------------------------------------------- +-------------- DAMAGE TAKEN -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:DMGTakenAllOut() + if DPSMateDamageTaken[1][pid] then + Buffer[cou] = {"DPSMate_DMGTakenAll", DPSMateDamageTaken[1][pid]["i"]..","} + cou = cou + 1 + end +end + +function DPSMate.Sync:DMGTakenStatOut() + if not DPSMateDamageTaken[1][pid] then return end + local enemy, ab, arr, i + for cat, val in pairs(DPSMateDamageTaken[1][pid]) do + if cat~="i" then + enemy = DPSMate:GetUserById(cat) + for c,v in pairs(val) do + if v["i"] then + ab, arr = DPSMate:GetAbilityById(c), {} + for ca, va in pairs(v["i"]) do + i = 1 + while true do + if (not arr[i]) then + tinsert(arr, i, {ca,va}) + break + else + if ca<=arr[i][1] then + tinsert(arr, i, {ca,va}) + break + end + end + i=i+1 + end + end + for ca, va in pairs(self:GetSummarizedTable(arr)) do + Buffer[cou] = {"DPSMate_DMGTakenStat", va[1]..","..va[2]..","..ab..","..enemy..","} + cou = cou + 1 + end + end + end + end + end +end + +function DPSMate.Sync:DMGTakenAbilityOut() + if not DPSMateDamageTaken[1][pid] then return end + for cat, val in pairs((DPSMateDamageTaken[1][pid])) do + if cat~="i" then + local user = DPSMate:GetUserById(cat) + if user then + for ca, va in pairs(val) do + local ability = DPSMate:GetAbilityById(ca) + if ability then + Buffer[cou] = {"DPSMate_DMGTakenAbility", user..","..ability..","..va[1]..","..va[2]..","..va[3]..","..ceil(va[4])..","..va[5]..","..va[6]..","..va[7]..","..ceil(va[8])..","..va[9]..","..va[10]..","..va[11]..","..va[12]..","..va[13]..","..ceil(va[14])..","..va[15]..","..va[16]..","..va[17]..","..ceil(va[18])..","..va[19]..","..va[20]..","..va[21]..","..va[22]..","..ceil(va[23])..","} + cou = cou + 1 + end + end + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- ENEMY DAMAGE TAKEN -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:EDAllOut(arr, prefix) + for cat, val in pairs(arr[1]) do + if val[pid] then + Buffer[cou] = {"DPSMate_ED"..prefix.."All", DPSMate:GetUserById(cat)..","..(val[pid]["i"] or 0)..","} + cou = cou + 1 + end + end +end + +function DPSMate.Sync:EDStatOut(arr, prefix) + local npc, a, ab, i + for cat, val in pairs(arr[1]) do + if val[pid] then + npc = DPSMate:GetUserById(cat) + for ca, va in pairs(val[pid]) do + if ca~="i" and va["i"] then + a, ab = {}, DPSMate:GetAbilityById(ca) + for c,v in pairs(va["i"]) do + i = 1 + while true do + if (not a[i]) then + tinsert(a, i, {c,v}) + break + else + if c<=a[i][1] then + tinsert(a, i, {c,v}) + break + end + end + i=i+1 + end + end + for q, s in pairs(self:GetSummarizedTable(a)) do + Buffer[cou] = {"DPSMate_ED"..prefix.."Stat", npc..","..s[1]..","..s[2]..","..ab..","} + cou = cou + 1 + end + end + end + end + end +end + +function DPSMate.Sync:EDAbilityOut(arr, prefix) + local npc + for cat, val in pairs((arr[1])) do + npc = DPSMate:GetUserById(cat) + if val[pid] then + for ca, va in pairs(val[pid]) do + if ca~="i" and type(va) == "table" and DPSMate:GetAbilityById(ca) then + Buffer[cou] = {"DPSMate_ED"..prefix.."Ability", npc..","..DPSMate:GetAbilityById(ca)..","..va[1]..","..va[2]..","..va[3]..","..ceil(va[4])..","..va[5]..","..va[6]..","..va[7]..","..ceil(va[8])..","..va[9]..","..va[10]..","..va[11]..","..va[12]..","..va[13]..","..va[14]..","..va[15]..","..va[16]..","..ceil(va[17])..","..va[18]..","..va[19]..","..va[20]..","..ceil(va[21])..","..va[22]..","} + cou = cou + 1 + end + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- Healing -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:HealingAllOut(arr, prefix) + if arr[1][pid] then + Buffer[cou] = {"DPSMate_"..prefix.."HealingAll", playerclass..","..arr[1][pid]["i"]..","} + cou = cou + 1 + end +end + +function DPSMate.Sync:HealingStatOut(arr, prefix) + if not arr[1][pid] then return end + local ab, a, i + for cat, val in pairs(arr[1][pid]) do + if cat~="i" and val["i"] then + ab, a = DPSMate:GetAbilityById(cat), {} + for c,v in pairs(val["i"]) do + i = 1 + while true do + if (not a[i]) then + tinsert(a, i, {c,v}) + break + else + if c<=a[i][1] then + tinsert(a, i, {c,v}) + break + end + end + i=i+1 + end + end + for ca, va in pairs(self:GetSummarizedTable(a)) do + Buffer[cou] = {"DPSMate_"..prefix.."HealingStat", va[1]..","..va[2]..","..ab..","} + cou = cou + 1 + end + end + end +end + +function DPSMate.Sync:HealingAbilityOut(arr, prefix) + if not arr[1][pid] then return end + for cat, val in pairs(arr[1][pid]) do + if cat~="i" then + Buffer[cou] = {"DPSMate_"..prefix.."HealingAbility", DPSMate:GetAbilityById(cat)..","..val[1]..","..val[2]..","..val[3]..","..ceil(val[4])..","..ceil(val[5])..","..val[6]..","..val[7]..","..val[8]..","..val[9]..","} + cou = cou + 1 + end + end +end + +---------------------------------------------------------------------------------- +-------------- Healing taken -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:HealingTakenStatOut(arr, prefix) + if not arr[1][pid] then return end + local npc, ab, a, i + for cat, val in pairs(arr[1][pid]) do + if cat~="i" then + npc = DPSMate:GetUserById(cat) + for ca, va in pairs(val) do + if va["i"] then + ab, a = DPSMate:GetAbilityById(ca), {} + for c,v in pairs(va["i"]) do + i = 1 + while true do + if (not a[i]) then + tinsert(a, i, {c,v}) + break + else + if c<=a[i][1] then + tinsert(a, i, {c,v}) + break + end + end + i=i+1 + end + end + for q,s in pairs(self:GetSummarizedTable(a)) do + Buffer[cou] = {"DPSMate_"..prefix.."HealingStat", s[1]..","..s[2]..","..ab..","..npc..","} + cou = cou + 1 + end + end + end + end + end +end + +function DPSMate.Sync:HealingTakenAbilityOut(arr, prefix) + if not arr[1][pid] then return end + for cat, val in pairs(arr[1][pid]) do + if cat~="i" then + for ca, va in pairs(val) do + if ca ~= "i" and type(va) == "table" then + Buffer[cou] = {"DPSMate_"..prefix.."HealingTakenAbility", DPSMate:GetUserById(cat)..","..DPSMate:GetAbilityById(ca)..","..va[1]..","..va[2]..","..va[3]..","..ceil(va[4])..","..ceil(va[5])..","..va[6]..","..va[7]..","..va[8]..","..va[9]..","} + cou = cou + 1 + end + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- Absorbs -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:AbsorbsOut() + if not DPSMateAbsorbs[1][pid] then return end + local owner, ab + for cat, val in pairs(DPSMateAbsorbs[1][pid]) do -- owner + owner = DPSMate:GetUserById(cat) + for ca, va in pairs(val) do -- ability + ab = DPSMate:GetAbilityById(ca) + if ca~="i" then + for c, v in pairs(va) do -- each one + for ce, ve in pairs(v) do -- enemy + if ce=="i" then + Buffer[cou] = {"DPSMate_iAbsorbs", owner..","..ab..","..c..","..(ve[1] or 0)..","..(ve[2] or 0)..","..(ve[3] or 0)..","..(ve[4] or 0)..","} + cou = cou + 1 + else + for cet, vel in pairs(ve) do + Buffer[cou] = {"DPSMate_Absorbs", owner..","..ab..","..c..","..DPSMate:GetUserById(ce)..","..cet..","..vel..","} + cou = cou + 1 + end + end + end + end + end + end + end +end + +function DPSMate.Sync:AbsorbsStatOut() + if not DPSMateAbsorbs[1][pid] then return end + local owner + for cat, val in pairs(DPSMateAbsorbs[1][pid]) do -- owner + owner = DPSMate:GetUserById(cat) + for ca, va in pairs(val["i"]) do + if va[4] then + Buffer[cou] = {"DPSMate_AbsorbsStat", owner..","..va[1]..","..va[2]..","..va[3]..","..va[4]..","} + cou = cou + 1 + else + Buffer[cou] = {"DPSMate_AbsorbsStat", owner..","..va[1]..","..va[2]..","..va[3]..","} + cou = cou + 1 + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- Deaths -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:DeathsAllOut() + if not DPSMateDeaths[1][pid] then return end + for cat, val in pairs(DPSMateDeaths[1][pid]) do -- death count + Buffer[cou] = {"DPSMate_DeathsAll", playerclass..","..cat..","..val["i"][1]..","..val["i"][2]..","} + cou = cou + 1 + end +end + +function DPSMate.Sync:DeathsOut() + if not DPSMateDeaths[1][pid] then return end + for cat, val in pairs(DPSMateDeaths[1][pid]) do -- death count + for ca, va in pairs(val) do -- each part + if ca~="i" then -- Testing if this prevents the error + Buffer[cou] = {"DPSMate_Deaths", cat..","..ca..","..(DPSMate:GetUserById(va[1]) or "Unknown")..","..(DPSMate:GetAbilityById(va[2]) or "Unknown")..","..(va[3] or "0")..","..(va[4] or "0")..","..(va[5] or "0")..","..(va[6] or "0")..","..(va[7] or "0")..","} + cou = cou + 1 + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- Interrupts -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:InterruptsAllOut() + if DPSMateInterrupts[1][pid] then + Buffer[cou] = {"DPSMate_InterruptsAll", playerclass..","..( DPSMateInterrupts[1][pid]["i"][1] or 0 )..","} + cou = cou + 1 + end +end + +function DPSMate.Sync:InterruptsAbilityOut() + if not DPSMateInterrupts[1][pid] then return end + for cat, val in pairs(DPSMateInterrupts[1][pid]) do + if cat~="i" then + for ca, va in pairs(val) do + for c, v in pairs(va) do + Buffer[cou] = {"DPSMate_InterruptsAbility", DPSMate:GetAbilityById(cat)..","..DPSMate:GetUserById(ca)..","..DPSMate:GetAbilityById(c)..","..v..","} + cou = cou + 1 + end + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- Dispels -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:DispelsOut() + if not DPSMateDispels[1][pid] then return end + local ab, user + for cat, val in pairs(DPSMateDispels[1][pid]) do -- Ability + if cat=="i" then + Buffer[cou] = {"DPSMate_iDispels", tostring(val[1] or 0)} + cou = cou + 1 + else + ab = DPSMate:GetAbilityById(cat) + for ca, va in pairs(val) do -- Target + user = DPSMate:GetUserById(ca) + for c, v in pairs(va) do -- Ability + Buffer[cou] = {"DPSMate_Dispels", ab..","..user..","..DPSMate:GetAbilityById(c)..","..v..","} + cou = cou + 1 + end + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- Auras -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:AurasOut() + if not DPSMateAurasGained[1][pid] then return end + local p = 0 + local ability + for cat, val in pairs(DPSMateAurasGained[1][pid]) do -- ability + p = val[4] and 1 or 0 + ability = DPSMate:GetAbilityById(cat) + Buffer[cou] = {"DPSMate_AurasAll", ability..","..p..","..val[5]..","..val[6]..","} + cou = cou + 1 + for ca, va in pairs(val[1]) do + Buffer[cou] = {"DPSMate_AurasStart", ability..","..ca..","..va..","} + cou = cou + 1 + end + for ca, va in pairs(val[2]) do + Buffer[cou] = {"DPSMate_AurasEnd", ability..","..ca..","..va..","} + cou = cou + 1 + end + for ca, va in pairs(val[3]) do + local userName = DPSMate:GetUserById(ca) + if userName then + Buffer[cou] = {"DPSMate_AurasCause", ability..","..userName..","..va..","} + cou = cou + 1 + end + end + end +end + +---------------------------------------------------------------------------------- +-------------- Threat -------------- +---------------------------------------------------------------------------------- + +function DPSMate.Sync:ThreatIn(arg2,arg4) + if not arg2 then return end + -- Sanitize input: only allow table constructors with safe characters (alphanumeric, brackets, commas, equals, quotes, dots, spaces, minus) + if string.find(arg2, "[^%w%s%[%]{},=\"'%.%-_]") then return end + local fn = loadstring("return {"..arg2.."}") + if not fn then return end + local ok, result = pcall(fn) + if not ok or type(result) ~= "table" then return end + for cat, val in pairs(result) do + if type(val) == "table" then + for ca, va in pairs(val) do + if type(va) == "table" then + for c,v in pairs(va) do + DB:Threat(arg4, cat, ca, v, 1) + end + end + end + end + end +end + +function DPSMate.Sync:ThreatOut() + if not DPSMateThreat[1][pid] then return end + local tar + for cat, val in pairs(DPSMateThreat[1][pid]) do + tar = DPSMate:GetUserById(cat) + for ca, va in pairs(val) do + Buffer[cou] = {"DPSMate_Threat", tar..","..DPSMate:GetAbilityById(ca)..","..va[1]..","..va[2]..","..va[3]..","..va[4]..","} + cou = cou + 1 + end + end +end + +function DPSMate.Sync:ThreatStatsOut() + if not DPSMateThreat[1][pid] then return end + local tar, ability, a, i + for cat, val in pairs(DPSMateThreat[1][pid]) do + tar = DPSMate:GetUserById(cat) + for ca, va in pairs(val) do + ability, a = DPSMate:GetAbilityById(ca), {} + for c,v in pairs(va["i"]) do + i = 1 + while true do + if (not a[i]) then + tinsert(a, i, {c,v}) + break + else + if c<=a[i][1] then + tinsert(a, i, {c,v}) + break + end + end + i=i+1 + end + end + for c, v in pairs(self:GetSummarizedTable(a)) do + Buffer[cou] = {"DPSMate_ThreatStats", tar..","..ability..","..v[1]..","..v[2]..","} + cou = cou + 1 + end + end + end +end + +function DPSMate.Sync:ThreatAllIn(arg2, arg4) + t = {} + strgsub(arg2, "(.-),", func) + local usid, abid, piid = DB:BuildUser(t[1]), DB:BuildAbility(t[2]), DB:BuildUser(arg4) + if not Arrays[16][piid] then + Arrays[16][piid] = {} + end + if not Arrays[16][piid][usid] then + Arrays[16][piid][usid] = {} + end + if not Arrays[16][piid][usid][abid] then + Arrays[16][piid][usid][abid] = { + [1] = tnbr(t[3]), + [2] = tnbr(t[4]), + [3] = tnbr(t[5]), + [4] = tnbr(t[6]), + ["i"] = {} + } + end +end + +function DPSMate.Sync:ThreatStatsIn(arg2,arg4) + t = {} + strgsub(arg2, "(.-),", func) + local usid, abid, piid = DB:BuildUser(t[1]), DB:BuildAbility(t[2]), DB:BuildUser(arg4) + if not Arrays[16][piid] then + return + end + if not Arrays[16][piid][usid] then + return + end + t[3] = tnbr(t[3]) + if not Arrays[16][piid][usid][abid] then return end + Arrays[16][piid][usid][abid]["i"][t[3]] = tnbr(t[4]) + if t[3]>DPSMateCombatTime["total"] then DPSMateCombatTime["total"]=t[3] end +end + +trivial = { + ["DPSMate_HelloWorld"] = function(this) this:GreetBack() end, + ["DPSMate_Greet"] = function(this, arg2,arg4) this:ReceiveGreet(arg2, arg4) end, + ["KLHTMHOOK"] = function(this, arg2,arg4) this:ThreatIn(arg2,arg4) end +} + +lesstrivial = { + ["DPSMate_AbortVote"..DPSMate.SYNCVERSION] = function(this) this:ReceiveAbort() end, + ["DPSMate_Vote"..DPSMate.SYNCVERSION] = function(this) this:CountVote() end, + ["DPSMate_StartVote"..DPSMate.SYNCVERSION] = function(this) this:ReceiveStartVote() end, + ["DPSMate_VoteSuccess"..DPSMate.SYNCVERSION] = function(this, arg2) this:VoteSuccess(arg2) end, + ["DPSMate_VoteFail"..DPSMate.SYNCVERSION] = function(this) DPSMate:SendMessage(DPSMate.L["votefailederror"]) end, + ["DPSMate_Participate"..DPSMate.SYNCVERSION] = function(this) this:CountParticipants() end, + ["DPSMate_SyncTimer"..DPSMate.SYNCVERSION] = function(this, arg2) this:SetTimer(arg2) end, +} + +important = { + ["DPSMate"] = function(this, arg2,arg4) + t = {} + strgsub(arg2, "(.-),", func) -- name, aura, target, time + t[3] = GT() + DB:AwaitAfflicted(arg4, t[1], t[2], t[3]) + if DPSMate.Parser.HotDispels[t[1]] then DB:AwaitHotDispel(t[1], t[2], arg4, t[3]) end + DB:AwaitingBuff(arg4, t[1], t[2], t[3]) + DB:AwaitingAbsorbConfirmation(arg4, t[1], t[2], t[3]) + end, + ["DPSMate_DMGDoneAll"] = function(this, arg2,arg4) this:DMGDoneAllIn(arg2, arg4) end, + ["DPSMate_DMGDoneStat"] = function(this, arg2,arg4) this:DMGDoneStatIn(arg2, arg4) end, + ["DPSMate_DMGDoneAbility"] = function(this, arg2,arg4) this:DMGDoneAbilityIn(arg2, arg4) end, + ["DPSMate_EHealingAll"] = function(this, arg2,arg4) this:HealingAllIn(arg2, arg4, 6) end, + ["DPSMate_EHealingStat"] = function(this, arg2,arg4) this:HealingStatIn(arg2, arg4, 6) end, + ["DPSMate_EHealingAbility"] = function(this, arg2,arg4) this:HealingAbilityIn(arg2, arg4, 6) end, + ["DPSMate_THealingAll"] = function(this, arg2,arg4) this:HealingAllIn(arg2, arg4, 5) end, + ["DPSMate_THealingStat"] = function(this, arg2,arg4) this:HealingStatIn(arg2, arg4, 5) end, + ["DPSMate_THealingAbility"] = function(this, arg2,arg4) this:HealingAbilityIn(arg2, arg4, 5) end, + ["DPSMate_OHealingAll"] = function(this, arg2,arg4) this:HealingAllIn(arg2, arg4, 9) end, + ["DPSMate_OHealingStat"] = function(this, arg2,arg4) this:HealingStatIn(arg2, arg4, 9) end, + ["DPSMate_OHealingAbility"] = function(this, arg2,arg4) this:HealingAbilityIn(arg2, arg4, 9) end, + ["DPSMate_TTakenHealingAll"] = function(this, arg2,arg4) this:HealingAllIn(arg2, arg4, 7) end, + ["DPSMate_TTakenHealingStat"] = function(this, arg2,arg4) this:HealingTakenStatIn(arg2, arg4, 7) end, + ["DPSMate_THealingTakenAbility"] = function(this, arg2,arg4) this:HealingTakenAbilityIn(arg2, arg4, 7) end, + ["DPSMate_ETakenHealingAll"] = function(this, arg2,arg4) this:HealingAllIn(arg2, arg4, 8) end, + ["DPSMate_ETakenHealingStat"] = function(this, arg2,arg4) this:HealingTakenStatIn(arg2, arg4, 8) end, + ["DPSMate_EHealingTakenAbility"] = function(this, arg2,arg4) this:HealingTakenAbilityIn(arg2, arg4, 8) end, + ["DPSMate_OTakenHealingAll"] = function(this, arg2,arg4) this:HealingAllIn(arg2, arg4, 15) end, + ["DPSMate_OTakenHealingStat"] = function(this, arg2,arg4) this:HealingTakenStatIn(arg2, arg4, 15) end, + ["DPSMate_OHealingTakenAbility"] = function(this, arg2,arg4) this:HealingTakenAbilityIn(arg2, arg4, 15) end, + ["DPSMate_Absorbs"] = function(this, arg2,arg4) this:AbsorbsIn(arg2, arg4) end, + ["DPSMate_iAbsorbs"] = function(this, arg2,arg4) this:iAbsorbsIn(arg2, arg4) end, + ["DPSMate_Dispels"] = function(this, arg2,arg4) this:DispelsIn(arg2, arg4) end, + ["DPSMate_iDispels"] = function(this, arg2,arg4) this:iDispelsIn(arg2, arg4) end, + ["DPSMate_DMGTakenAll"] = function(this, arg2,arg4) this:DMGTakenAllIn(arg2, arg4) end, + ["DPSMate_DMGTakenStat"] = function(this, arg2,arg4) this:DMGTakenStatIn(arg2, arg4) end, + ["DPSMate_DMGTakenAbility"] = function(this, arg2,arg4) this:DMGTakenAbilityIn(arg2, arg4) end, + ["DPSMate_EDTAll"] = function(this, arg2,arg4) this:EDAllIn(4, arg2, arg4) end, + ["DPSMate_EDTAbility"] = function(this, arg2,arg4) this:EDAbilityIn(4, arg2, arg4) end, + ["DPSMate_EDTStat"] = function(this, arg2,arg4) this:EDStatIn(4, arg2, arg4) end, + ["DPSMate_EDDAll"] = function(this, arg2,arg4) this:EDAllIn(3, arg2, arg4) end, + ["DPSMate_EDDAbility"] = function(this, arg2,arg4) this:EDAbilityIn(3, arg2, arg4) end, + ["DPSMate_EDDStat"] = function(this, arg2,arg4) this:EDStatIn(3, arg2, arg4) end, + ["DPSMate_DeathsAll"] = function(this, arg2,arg4) this:DeathsAllIn(arg2, arg4) end, + ["DPSMate_Deaths"] = function(this, arg2,arg4) this:DeathsIn(arg2, arg4) end, + ["DPSMate_InterruptsAll"] = function(this, arg2,arg4) this:InterruptsAllIn(arg2, arg4) end, + ["DPSMate_InterruptsAbility"] = function(this, arg2,arg4) this:InterruptsAbilityIn(arg2, arg4) end, + ["DPSMate_AurasAll"] = function(this, arg2,arg4) this:AurasAllIn(arg2, arg4) end, + ["DPSMate_AurasStart"] = function(this, arg2,arg4) this:AurasStartEndIn(arg2, arg4, 1) end, + ["DPSMate_AurasEnd"] = function(this, arg2,arg4) this:AurasStartEndIn(arg2, arg4, 2) end, + ["DPSMate_AurasCause"] = function(this, arg2,arg4) this:AurasCauseIn(arg2, arg4) end, + ["DPSMate_SyncStatus"] = function(this, arg2,arg4) this:SyncStatus(arg2, arg4) end, + ["DPSMate_Threat"] = function(this, arg2,arg4) this:ThreatAllIn(arg2, arg4) end, + ["DPSMate_ThreatStats"] = function(this, arg2,arg4) this:ThreatStatsIn(arg2, arg4) end, +} \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/Damage/DPSMate_DPS.lua b/src/dpslog/WeirdDPSMate/Damage/DPSMate_DPS.lua new file mode 100644 index 0000000..ff574d2 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/Damage/DPSMate_DPS.lua @@ -0,0 +1,301 @@ +-- Global Variables +DPSMate.Modules.DPS = {} +DPSMate.Modules.DPS.Hist = "DMGDone" +DPSMate.Options.Options[1]["args"]["dps"] = { + order = 10, + type = 'toggle', + name = DPSMate.L["dps"], + desc = DPSMate.L["show"].." "..DPSMate.L["dps"]..".", + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["options"][1]["dps"] end, -- Addons might conflicting here with dewdrop + set = function() DPSMate.Options:ToggleDrewDrop(1, "dps", DPSMate.Options.Dewdrop:GetOpenedParent()) end, +} +DPSMate.Modules.DPS.Events = { + "CHAT_MSG_COMBAT_SELF_HITS", + "CHAT_MSG_COMBAT_SELF_MISSES", + "CHAT_MSG_SPELL_SELF_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_HITS", + "CHAT_MSG_SPELL_PARTY_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_MISSES", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES", + "CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE", + -- Pet Damage + "CHAT_MSG_COMBAT_PET_HITS", + "CHAT_MSG_COMBAT_PET_MISSES", + --"CHAT_MSG_SPELL_PET_BUFF", + "CHAT_MSG_SPELL_PET_DAMAGE", +} + +-- Register the moodule +DPSMate:Register("dps", DPSMate.Modules.DPS, DPSMate.L["dps"]) + +local tinsert = table.insert +local strformat = string.format + +function DPSMate.Modules.DPS:GetSortedTable(arr,k) + local b, a, total = {}, {}, 0 + if arr then + local petsByOwner = DPSMateSettings["mergepets"] and DPSMate:GetPetsByOwner(arr) or {} + local processedOwners = {} + for cat, val in pairs(arr) do + local name = DPSMate:GetUserById(cat) + if not name or not DPSMateUser[name] then + -- skip unknown users + elseif (not DPSMateUser[name][4] or (DPSMateUser[name][4] and not DPSMateSettings["mergepets"])) then + if DPSMate:ApplyFilter(k, name) then + local CV = val["i"] + if DPSMateSettings["mergepets"] and petsByOwner[cat] then + processedOwners[cat] = true + for _, petCat in pairs(petsByOwner[cat]) do + if arr[petCat] then + CV = CV + arr[petCat]["i"] + end + end + end + local i = 1 + while true do + if (not b[i]) then + tinsert(b, i, CV) + tinsert(a, i, name) + break + else + if b[i] < CV then + tinsert(b, i, CV) + tinsert(a, i, name) + break + end + end + i=i+1 + end + total = total + CV + end + end + end + -- Handle owners with no personal damage but with pets that have damage + if DPSMateSettings["mergepets"] then + for oid, petList in pairs(petsByOwner) do + if not processedOwners[oid] and not arr[oid] then + local name = DPSMate:GetUserById(oid) + if name and DPSMateUser[name] and not DPSMateUser[name][4] and DPSMate:ApplyFilter(k, name) then + local CV = 0 + for _, petCat in pairs(petList) do + if arr[petCat] then + CV = CV + arr[petCat]["i"] + end + end + if CV > 0 then + local i = 1 + while true do + if (not b[i]) then + tinsert(b, i, CV) + tinsert(a, i, name) + break + else + if b[i] < CV then + tinsert(b, i, CV) + tinsert(a, i, name) + break + end + end + i=i+1 + end + total = total + CV + end + end + end + end + end + end + return b, total, a +end + +function DPSMate.Modules.DPS:EvalTable(user, k, cbt) + if not user then return end + local a, u, p, d, total, pet = {}, {}, {}, {}, 0, false + local arr, cbet = DPSMate:GetMode(k) + cbt = cbt or cbet + if not cbt or cbt <= 0 then cbt = 1 end + u = {user[1]} + if DPSMateSettings["mergepets"] then + local petsByOwner = DPSMate:GetPetsByOwner(arr) + if petsByOwner[user[1]] then + for _, petCat in pairs(petsByOwner[user[1]]) do + tinsert(u, petCat) + end + end + end + if not arr[user[1]] and getn(u) <= 1 then return end + for _, v in pairs(u) do + if arr[v] then + for cat, val in pairs(arr[v]) do + if (type(val) == "table" and cat~="i") then + if val[13] and val[13]~=0 and cat~="" then + local vname = DPSMate:GetUserById(v) + if vname and DPSMateUser[vname] and DPSMateUser[vname][4] then pet=vname; else pet=false; end + local i = 1 + while true do + if (not d[i]) then + tinsert(a, i, cat) + tinsert(d, i, {val[13]/cbt, pet}) + break + else + if (d[i][1] < val[13]/cbt) then + tinsert(a, i, cat) + tinsert(d, i, {val[13]/cbt, pet}) + break + end + end + i = i + 1 + end + end + end + end + total=total+(arr[v]["i"] or 0) + end + end + return a, total/(cbt or 1), d +end + +function DPSMate.Modules.DPS:GetSettingValues(arr, cbt, k, ecbt) + local pt = "" + local name, value, perc, sortedTable, total, a, p, strt = {}, {}, {}, {}, 0, 0, "", {[1]="",[2]=""} + if DPSMateSettings["windows"][k]["numberformat"] == 2 or DPSMateSettings["windows"][k]["numberformat"] == 4 then p = "K"; pt = "K" end + sortedTable, total, a = DPSMate.Modules.DPS:GetSortedTable(arr,k) + local validCbt = cbt and cbt > 0.001 + for cat, val in pairs(sortedTable) do + local dmg, tot, sort, dmgr, totr, sortr = DPSMate:FormatNumbers(val, total, sortedTable[1], k) + if dmgr==0 then break end; if totr <= 10000 then pt = "" end; if dmgr<=10000 then p = "" end + local str = {[1]="",[2]="",[3]="",[4]=""} + local pname = a[cat] + if DPSMateSettings["columnsdps"][1] then str[1] = "("..DPSMate:Commas(dmg, k)..p..")"; strt[1] = "("..DPSMate:Commas(tot, k)..pt..")" end + if DPSMateSettings["columnsdps"][2] and validCbt then str[2] = " "..strformat("%.1f", (dmg/cbt))..p; strt[2] = " "..strformat("%.1f", (tot/cbt))..pt end + if DPSMateSettings["columnsdps"][3] then str[3] = " ("..strformat("%.1f", 100*dmgr/totr).."%)" end + if DPSMateSettings["columnsdps"][4] then local ev = ecbt[pname] or cbt; if ev and ev > 0.001 then str[4] = " ("..strformat("%.1f", (dmg/ev))..p..")" end end + tinsert(name, a[cat]) + tinsert(value, str[1]..str[2]..str[4]..str[3]) + tinsert(perc, 100*(dmgr/sortr)) + end + return name, value, perc, strt +end + +function DPSMate.Modules.DPS:ShowTooltip(user,k) + if DPSMateSettings["informativetooltips"] then + if not DPSMateUser[user] then return end + local a,b,c = DPSMate.Modules.DPS:EvalTable(DPSMateUser[user], k) + local db, cbt = DPSMate:GetModeByArr(DPSMateEDT, k, "EDTaken") + local i, p = 1, 0 + local pet = 0 + local edtaken, edtakenPet = {}, {} + + -- Find all pet IDs for this owner + local ownerId = DPSMateUser[user][1] + local petIds = {} + local petNames = {} + for pname, pdata in pairs(DPSMateUser) do + if pdata[4] and pdata[6] == ownerId then + tinsert(petIds, pdata[1]) + tinsert(petNames, pname) + end + end + + -- Getting the value of the pet + while a and a[i] do + if c[i][2] then + pet = pet + c[i][1] + end + i = i + 1 + end + + -- Getting edt values + for cat, val in pairs(db) do + if val[ownerId] and val[ownerId]["i"] then + if val[ownerId]["i"]>0 then + i = 1 + while true do + if (not edtaken[i]) then + tinsert(edtaken, i, {cat, val[ownerId]["i"]}) + break + else + if (edtaken[i][2] < val[ownerId]["i"]) then + tinsert(edtaken, i, {cat, val[ownerId]["i"]}) + break + end + end + i = i + 1 + end + end + end + -- Aggregate EDT from all pets for this enemy + local petTotal = 0 + for _, pid in pairs(petIds) do + if val[pid] and val[pid]["i"] > 0 then + petTotal = petTotal + val[pid]["i"] + end + end + if petTotal > 0 then + i = 1 + while true do + if (not edtakenPet[i]) then + tinsert(edtakenPet, i, {cat, petTotal}) + break + else + if (edtakenPet[i][2] < petTotal) then + tinsert(edtakenPet, i, {cat, petTotal}) + break + end + end + i = i + 1 + end + end + end + + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttdamage"]..DPSMate.L["ttabilities"]) + for i=1, DPSMateSettings["subviewrows"] do + if not a[i] then break end + if not c[i][2] then + local div = (b-pet) ~= 0 and (b-pet) or 1 + GameTooltip:AddDoubleLine(i..". "..DPSMate:GetAbilityById(a[i]),strformat("%.2f", c[i][1]).." ("..strformat("%.2f", 100*c[i][1]/div).."%)",1,1,1,1,1,1) + end + end + + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttattacked"]) + for i=1, DPSMateSettings["subviewrows"] do + if not edtaken[i] then break end + local ediv = (b-pet) ~= 0 and (b-pet) or 1 + GameTooltip:AddDoubleLine(i..". "..DPSMate:GetUserById(edtaken[i][1]), strformat("%.2f", edtaken[i][2]/cbt).." ("..strformat("%.2f", (100*edtaken[i][2]/cbt)/ediv).."%)", 1,1,1,1,1,1) + end + + if pet~=0 and getn(petIds) > 0 then + local petDisplay = table.concat(petNames, ", ") + GameTooltip:AddLine(" ") + GameTooltip:AddDoubleLine(DPSMate.L["ttpet2"],petDisplay.."<"..user.."> ("..strformat("%.2f", 100*pet/b).."%)",1,0.82,0,1,1,1) + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttpet"]..DPSMate.L["ttdamage"]..DPSMate.L["ttabilities"]) + i, p = 1,1 + while DPSMateSettings["subviewrows"]>=p do + if not a[i] then break end + if c[i][2] then + GameTooltip:AddDoubleLine(p..". "..DPSMate:GetAbilityById(a[i]),strformat("%.2f", c[i][1]).." ("..strformat("%.2f", 100*c[i][1]/pet).."%)",1,1,1,1,1,1) + p = p + 1 + end + i = i + 1 + end + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttpet"]..DPSMate.L["ttattacked"]) + for i=1, DPSMateSettings["subviewrows"] do + if not edtakenPet[i] then break end + GameTooltip:AddDoubleLine(i..". "..DPSMate:GetUserById(edtakenPet[i][1]), strformat("%.2f", edtakenPet[i][2]/cbt).." ("..strformat("%.2f", (100*edtakenPet[i][2]/cbt)/pet).."%)", 1,1,1,1,1,1) + end + end + end +end + +function DPSMate.Modules.DPS:OpenDetails(obj, key, bool) + if bool then + DPSMate.Modules.DetailsDamage:UpdateCompare(obj, key, bool) + else + DPSMate.Modules.DetailsDamage:UpdateDetails(obj, key) + end +end + +function DPSMate.Modules.DPS:OpenTotalDetails(obj, key) + DPSMate.Modules.DetailsDamageTotal:UpdateDetails(obj, key) +end diff --git a/src/dpslog/WeirdDPSMate/Damage/DPSMate_Damage.lua b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Damage.lua new file mode 100644 index 0000000..f950649 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Damage.lua @@ -0,0 +1,298 @@ +-- Global Variables +DPSMate.Modules.Damage = {} +DPSMate.Modules.Damage.Hist = "DMGDone" +DPSMate.Options.Options[1]["args"]["damage"] = { + order = 20, + type = 'toggle', + name = DPSMate.L["damage"], + desc = DPSMate.L["show"].." "..DPSMate.L["damage"]..".", + get = function() return DPSMateSettings["windows"][DPSMate.Options.Dewdrop:GetOpenedParent().Key]["options"][1]["damage"] end, + set = function() DPSMate.Options:ToggleDrewDrop(1, "damage", DPSMate.Options.Dewdrop:GetOpenedParent()) end, +} +DPSMate.Modules.Damage.Events = { + "CHAT_MSG_COMBAT_SELF_HITS", + "CHAT_MSG_COMBAT_SELF_MISSES", + "CHAT_MSG_SPELL_SELF_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_HITS", + "CHAT_MSG_SPELL_PARTY_DAMAGE", + "CHAT_MSG_COMBAT_PARTY_MISSES", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS", + "CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES", + "CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE", + -- Pet Damage + "CHAT_MSG_COMBAT_PET_HITS", + "CHAT_MSG_COMBAT_PET_MISSES", + --"CHAT_MSG_SPELL_PET_BUFF", + "CHAT_MSG_SPELL_PET_DAMAGE", +} + +-- Register the moodule +DPSMate:Register("damage", DPSMate.Modules.Damage, DPSMate.L["damage"]) + +local tinsert = table.insert +local strformat = string.format +local pairs = pairs + +function DPSMate.Modules.Damage:GetSortedTable(arr, k) + local b, a, total, CV, i, name = {}, {}, 0 + local petsByOwner = DPSMateSettings["mergepets"] and DPSMate:GetPetsByOwner(arr) or {} + local processedOwners = {} + for cat, val in pairs(arr) do + name = DPSMate:GetUserById(cat) + if not name or not DPSMateUser[name] then + -- skip unknown users + elseif (not DPSMateUser[name][4] or (DPSMateUser[name][4] and not DPSMateSettings["mergepets"])) then + if DPSMate:ApplyFilter(k, name) then + CV = val["i"] or 0 + if DPSMateSettings["mergepets"] and petsByOwner[cat] then + processedOwners[cat] = true + for _, petCat in pairs(petsByOwner[cat]) do + if arr[petCat] then + CV = CV + (arr[petCat]["i"] or 0) + end + end + end + i = 1 + while true do + if (not b[i]) then + tinsert(b, i, CV) + tinsert(a, i, name) + break + else + if b[i] < CV then + tinsert(b, i, CV) + tinsert(a, i, name) + break + end + end + i=i+1 + end + total = total + CV + end + end + end + -- Handle owners with no personal damage but with pets that have damage + if DPSMateSettings["mergepets"] then + for oid, petList in pairs(petsByOwner) do + if not processedOwners[oid] and not arr[oid] then + name = DPSMate:GetUserById(oid) + if name and DPSMateUser[name] and not DPSMateUser[name][4] and DPSMate:ApplyFilter(k, name) then + CV = 0 + for _, petCat in pairs(petList) do + if arr[petCat] then + CV = CV + (arr[petCat]["i"] or 0) + end + end + if CV > 0 then + i = 1 + while true do + if (not b[i]) then + tinsert(b, i, CV) + tinsert(a, i, name) + break + else + if b[i] < CV then + tinsert(b, i, CV) + tinsert(a, i, name) + break + end + end + i=i+1 + end + total = total + CV + end + end + end + end + end + return b, total, a +end + +function DPSMate.Modules.Damage:EvalTable(user, k) + if not user then return end + local a, u, p, d, total, pet = {}, {}, {}, {}, 0, false + local arr = DPSMate:GetMode(k) + u = {user[1]} + if DPSMateSettings["mergepets"] then + local petsByOwner = DPSMate:GetPetsByOwner(arr) + if petsByOwner[user[1]] then + for _, petCat in pairs(petsByOwner[user[1]]) do + tinsert(u, petCat) + end + end + end + if not arr[user[1]] and getn(u) <= 1 then return end + for _, v in pairs(u) do + if arr[v] then + for cat, val in pairs(arr[v]) do + if (type(val) == "table" and cat~="i") then + if val[13] and val[13]~=0 and cat~="" then + local vname = DPSMate:GetUserById(v) + if vname and DPSMateUser[vname] and DPSMateUser[vname][4] then pet=vname; else pet=false; end + local i = 1 + while true do + if (not d[i]) then + tinsert(a, i, cat) + tinsert(d, i, {val[13], pet}) + break + else + if (d[i][1] < val[13]) then + tinsert(a, i, cat) + tinsert(d, i, {val[13], pet}) + break + end + end + i = i + 1 + end + end + end + end + total=total+(arr[v]["i"] or 0) + end + end + return a, total, d +end + +function DPSMate.Modules.Damage:GetSettingValues(arr, cbt, k,ecbt) + local pt = "" + local name, value, perc, sortedTable, total, a, p, strt = {}, {}, {}, {}, 0, 0, "", {[1]="",[2]=""} + if DPSMateSettings["windows"][k]["numberformat"] == 2 or DPSMateSettings["windows"][k]["numberformat"] == 4 then p = "K"; pt = "K" end + sortedTable, total, a = DPSMate.Modules.Damage:GetSortedTable(arr, k) + local validCbt = cbt and cbt > 0.001 + for cat, val in pairs(sortedTable) do + local dmg, tot, sort, dmgr, totr, sortr = DPSMate:FormatNumbers(val, total, sortedTable[1], k) + if dmgr==0 then break end; if totr <= 10000 then pt = "" end; if dmgr<=10000 then p = "" end + local str = {[1]="",[2]="",[3]="",[4]=""} + local pname = a[cat] + if DPSMateSettings["columnsdmg"][1] then str[1] = " "..DPSMate:Commas(dmg, k)..p; strt[2] = DPSMate:Commas(tot, k)..pt end + if DPSMateSettings["columnsdmg"][2] and validCbt then str[2] = "("..strformat("%.1f", (dmg/cbt))..p..")"; strt[1] = "("..strformat("%.1f", (tot/cbt))..pt..") " end + if DPSMateSettings["columnsdmg"][3] then str[3] = " ("..strformat("%.1f", 100*dmgr/totr).."%)" end + if DPSMateSettings["columnsdmg"][4] then local ev = (type(ecbt)=="table" and ecbt[pname]) or cbt; if ev and ev > 0.001 then str[4] = " ("..strformat("%.1f", dmg/ev)..p..")" end end + tinsert(name, a[cat]) + tinsert(value, str[2]..str[1]..str[4]..str[3]) + tinsert(perc, 100*(dmgr/sortr)) + end + return name, value, perc, strt +end + +function DPSMate.Modules.Damage:ShowTooltip(user,k) + if DPSMateSettings["informativetooltips"] then + if not DPSMateUser[user] then return end + local a,b,c = DPSMate.Modules.Damage:EvalTable(DPSMateUser[user], k) + local db = DPSMate:GetModeByArr(DPSMateEDT, k, "EDTaken") + local i, p = 1, 0 + local pet = 0 + local edtaken, edtakenPet = {}, {} + + -- Find all pet IDs for this owner + local ownerId = DPSMateUser[user][1] + local petIds = {} + local petNames = {} + for pname, pdata in pairs(DPSMateUser) do + if pdata[4] and pdata[6] == ownerId then + tinsert(petIds, pdata[1]) + tinsert(petNames, pname) + end + end + + -- Getting the value of the pet + while a and a[i] do + if c[i][2] then + pet = pet + c[i][1] + end + i = i + 1 + end + + -- Getting edt values + for cat, val in pairs(db) do + if val[ownerId] then + if val[ownerId]["i"] and val[ownerId]["i"]>0 then + i = 1 + while true do + if (not edtaken[i]) then + tinsert(edtaken, i, {cat, val[ownerId]["i"]}) + break + else + if (edtaken[i][2] < val[ownerId]["i"]) then + tinsert(edtaken, i, {cat, val[ownerId]["i"]}) + break + end + end + i = i + 1 + end + end + end + -- Aggregate EDT from all pets for this enemy + local petTotal = 0 + for _, pid in pairs(petIds) do + if val[pid] and (val[pid]["i"] or 0) > 0 then + petTotal = petTotal + (val[pid]["i"] or 0) + end + end + if petTotal > 0 then + i = 1 + while true do + if (not edtakenPet[i]) then + tinsert(edtakenPet, i, {cat, petTotal}) + break + else + if (edtakenPet[i][2] < petTotal) then + tinsert(edtakenPet, i, {cat, petTotal}) + break + end + end + i = i + 1 + end + end + end + + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttdamage"]..DPSMate.L["ttabilities"]) + for i=1, DPSMateSettings["subviewrows"] do + if not a[i] then break end + if not c[i][2] then + local div = (b-pet) ~= 0 and (b-pet) or 1 + GameTooltip:AddDoubleLine(i..". "..DPSMate:GetAbilityById(a[i]),c[i][1].." ("..strformat("%.2f", 100*c[i][1]/div).."%)",1,1,1,1,1,1) + end + end + + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttattacked"]) + for i=1, DPSMateSettings["subviewrows"] do + if not edtaken[i] then break end + local ediv = (b-pet) ~= 0 and (b-pet) or 1 + GameTooltip:AddDoubleLine(i..". "..DPSMate:GetUserById(edtaken[i][1]), edtaken[i][2].." ("..strformat("%.2f", 100*edtaken[i][2]/ediv).."%)", 1,1,1,1,1,1) + end + + if pet~=0 and getn(petIds) > 0 then + local petDisplay = table.concat(petNames, ", ") + GameTooltip:AddLine(" ") + GameTooltip:AddDoubleLine(DPSMate.L["ttpet2"],petDisplay.."<"..user.."> ("..strformat("%.2f", 100*pet/b).."%)",1,0.82,0,1,1,1) + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttpet"]..DPSMate.L["ttdamage"]..DPSMate.L["ttabilities"]) + i, p = 1,1 + while DPSMateSettings["subviewrows"]>=p do + if not a[i] then break end + if c[i][2] then + GameTooltip:AddDoubleLine(p..". "..DPSMate:GetAbilityById(a[i]),c[i][1].." ("..strformat("%.2f", 100*c[i][1]/pet).."%)",1,1,1,1,1,1) + p = p + 1 + end + i = i + 1 + end + GameTooltip:AddLine(DPSMate.L["tttop"]..DPSMateSettings["subviewrows"]..DPSMate.L["ttpet"]..DPSMate.L["ttattacked"]) + for i=1, DPSMateSettings["subviewrows"] do + if not edtakenPet[i] then break end + GameTooltip:AddDoubleLine(i..". "..DPSMate:GetUserById(edtakenPet[i][1]), edtakenPet[i][2].." ("..strformat("%.2f", 100*edtakenPet[i][2]/pet).."%)", 1,1,1,1,1,1) + end + end + end +end + +function DPSMate.Modules.Damage:OpenDetails(obj, key, bool) + if bool then + DPSMate.Modules.DetailsDamage:UpdateCompare(obj, key, bool) + else + DPSMate.Modules.DetailsDamage:UpdateDetails(obj, key) + end +end + +function DPSMate.Modules.Damage:OpenTotalDetails(obj, key) + DPSMate.Modules.DetailsDamageTotal:UpdateDetails(obj, key) +end diff --git a/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.lua b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.lua new file mode 100644 index 0000000..e75f593 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.lua @@ -0,0 +1,1199 @@ +-- Global Variables +DPSMate.Modules.DetailsDamage = {} + +-- Local variables +local DetailsArr, DetailsTotal, DmgArr, DetailsUser, DetailsSelected = {}, 0, {}, "", 1 +local DetailsArrComp, DetailsTotalComp, DmgArrComp, DetailsUserComp, DetailsSelectedComp = {}, 0, {}, "", 1 +local g, g2, g3, g4, g5, g6, g7 +local curKey = 1 +local db, cbt, db2 = {}, 0, {} +local _G = getglobal +local tinsert = table.insert +local strformat = string.format +local toggle, toggle2, toggle3 = false, false, false +local t1, t2, TTotal = {}, {}, 0 +local t1Comp, t2Comp, TTotalComp = {}, {}, 0 +local ecbt = {} +local PSelected = 1 +local PSelected2 = 1 + +function DPSMate.Modules.DetailsDamage:UpdateDetails(obj, key) + curKey = key + db, cbt,ecbt = DPSMate:GetMode(key) + db2 = DPSMate:GetModeByArr(DPSMateEDT, key, "EDTaken") + DPSMate_Details.proc = "None" + UIDropDownMenu_SetSelectedValue(DPSMate_Details_DiagramLegend_Procs, "None") + DetailsUser = obj.user + DetailsUserComp = nil + DPSMate_Details_Title:SetText(DPSMate.L["dmgdoneby"]..obj.user) + DPSMate_Details_SubTitle:SetText(DPSMate.L["activity"]..strformat("%.2f", (ecbt[obj.user] or 0)+1).."s "..DPSMate.L["of"].." "..strformat("%.2f", cbt).."s ("..strformat("%.2f", 100*((ecbt[obj.user] or 0)+1)/cbt).."%)") + DPSMate_Details:Show() + UIDropDownMenu_Initialize(DPSMate_Details_DiagramLegend_Procs, DPSMate.Modules.DetailsDamage.ProcsDropDown) + DetailsArr, DetailsTotal, DmgArr = DPSMate.Modules.Damage:EvalTable(DPSMateUser[DetailsUser], curKey) + t1, t2, TTotal = self:EvalToggleTable() + + if not g then + g=DPSMate.Options.graph:CreateGraphPieChart("DMGPieChart", DPSMate_Details_Diagram, "CENTER", "CENTER", 0, 0, 200, 200) + g2=DPSMate.Options.graph:CreateGraphLine("DMGLineGraph",DPSMate_Details_DiagramLine,"CENTER","CENTER",0,0,850,230) + g3=DPSMate.Options.graph:CreateStackedGraph("DMGStackedGraph",DPSMate_Details_DiagramLine,"CENTER","CENTER",0,0,850,230) + g3:SetGridColor({0.5,0.5,0.5,0.5}) + g3:SetAxisDrawing(true,true) + g3:SetAxisColor({1.0,1.0,1.0,1.0}) + g3:SetAutoScale(true) + g3:SetYLabels(true, false) + g3:SetXLabels(true) + end + + if toggle then + self:Player_Update("") + self:PlayerSpells_Update(1,"") + self:SelectDetailsButton(1,"") + else + self:ScrollFrame_Update("") + self:SelectDetailsButton(1,"") + end + self:UpdatePie(g) + if toggle2 then + self:UpdateStackedGraph(g3) + else + self:UpdateLineGraph(g2, "") + end + + DPSMate_Details_CompareDamage:Hide() + DPSMate_Details_CompareDamage_Graph:Hide() + + DPSMate_Details:SetScale((DPSMateSettings["targetscale"] or 0.58)/UIParent:GetScale()) + +end + +function DPSMate.Modules.DetailsDamage:UpdateCompare(obj, key, comp) + self:UpdateDetails(obj, key) + + DPSMate_Details_CompareDamage.proc = "None" + UIDropDownMenu_SetSelectedValue(DPSMate_Details_CompareDamage_DiagramLegend_Procs, "None") + DetailsUserComp = comp + DPSMate_Details_CompareDamage_Title:SetText(DPSMate.L["dmgdoneby"]..comp) + DPSMate_Details_CompareDamage_SubTitle:SetText(DPSMate.L["activity"]..strformat("%.2f", DPSMateCombatTime["effective"][key][comp] or 0).."s "..DPSMate.L["of"].." "..strformat("%.2f", cbt).."s ("..strformat("%.2f", 100*(DPSMateCombatTime["effective"][key][comp] or 0)/cbt).."%)") + UIDropDownMenu_Initialize(DPSMate_Details_CompareDamage_DiagramLegend_Procs, DPSMate.Modules.DetailsDamage.ProcsDropDown_CompareDamage) + DetailsArrComp, DetailsTotalComp, DmgArrComp = DPSMate.RegistredModules[DPSMateSettings["windows"][curKey]["CurMode"]]:EvalTable(DPSMateUser[comp], curKey) + t1Comp, t2Comp, TTotalComp = self:EvalToggleTable(comp) + + if not g4 then + g4=DPSMate.Options.graph:CreateGraphPieChart("DMGPieChartComp", DPSMate_Details_CompareDamage_Diagram, "CENTER", "CENTER", 0, 0, 200, 200) + g5=DPSMate.Options.graph:CreateGraphLine("DMGLineGraphComp",DPSMate_Details_CompareDamage_DiagramLine,"CENTER","CENTER",0,0,850,230) + g6=DPSMate.Options.graph:CreateStackedGraph("DMGStackedGraphComp",DPSMate_Details_CompareDamage_DiagramLine,"CENTER","CENTER",0,0,850,230) + g6:SetGridColor({0.5,0.5,0.5,0.5}) + g6:SetAxisDrawing(true,true) + g6:SetAxisColor({1.0,1.0,1.0,1.0}) + g6:SetAutoScale(true) + g6:SetYLabels(true, false) + g6:SetXLabels(true) + g7=DPSMate.Options.graph:CreateGraphLine("DMGLineGraphSum",DPSMate_Details_CompareDamage_Graph,"CENTER","CENTER",0,0,1750,230) + end + + if toggle then + self:Player_Update("_CompareDamage") + self:PlayerSpells_Update(1, "_CompareDamage") + self:SelectDetailsButton(1, "_CompareDamage") + DPSMate_Details_CompareDamage_playerSpells:Show() + DPSMate_Details_CompareDamage_player:Show() + DPSMate_Details_CompareDamage_Diagram:Hide() + DPSMate_Details_CompareDamage_Log:Hide() + else + self:ScrollFrame_Update("_CompareDamage") + self:SelectDetailsButton(1,"_CompareDamage") + DPSMate_Details_CompareDamage_playerSpells:Hide() + DPSMate_Details_CompareDamage_player:Hide() + DPSMate_Details_CompareDamage_Diagram:Show() + DPSMate_Details_CompareDamage_Log:Show() + end + self:UpdatePie(g4, comp) + if toggle2 then + self:UpdateStackedGraph(g6, "_CompareDamage", comp) + else + self:UpdateLineGraph(g5, "_CompareDamage", comp) + end + self:UpdateSumGraph() + + DPSMate_Details_CompareDamage:Show() + DPSMate_Details_CompareDamage_Graph:Show() +end + +function DPSMate.Modules.DetailsDamage:UpdateSumGraph() + -- Executing the sumGraph + local sumTable, sumTableTwo + if toggle3 then + sumTable = self:GetSummarizedTable(db2, t1Comp[PSelected2], DetailsUserComp) + sumTableTwo = self:GetSummarizedTable(db2, t1[PSelected]) + else + sumTable = self:GetSummarizedTable(db, nil, DetailsUserComp) + sumTableTwo = self:GetSummarizedTable(db, nil) + end + + local max = DPSMate:GetMaxValue(sumTable, 2) + local time = DPSMate:GetMaxValue(sumTable, 1) + local min = DPSMate:GetMinValue(sumTable, 1) + local maxT = DPSMate:GetMaxValue(sumTableTwo, 2) + local timeT = DPSMate:GetMaxValue(sumTableTwo, 1) + local minT = DPSMate:GetMinValue(sumTableTwo, 1) + local smax, smin, stime = max, min, time + + if maxminT then + smin = minT + end + if time0 then + if (coeff-obj.oset)<0 then + obj.oset = coeff + end + FauxScrollFrame_SetOffset(obj, obj.oset) + end + end + FauxScrollFrame_Update(obj,len,10,24) + for line=1,10 do + lineplusoffset = line + (FauxScrollFrame_GetOffset(obj) or 0) + if uArr[lineplusoffset] ~= nil then + if dArr[lineplusoffset][2] then pet="("..dArr[lineplusoffset][2]..")" else pet="" end + local ability = DPSMate:GetAbilityById(uArr[lineplusoffset]) + _G(path.."_ScrollButton"..line.."_Name"):SetText(ability..pet) + _G(path.."_ScrollButton"..line.."_Value"):SetText(dArr[lineplusoffset][1].." ("..strformat("%.2f", (dArr[lineplusoffset][1]*100/dTot)).."%)") + _G(path.."_ScrollButton"..line.."_Icon"):SetTexture(DPSMate.BabbleSpell:GetSpellIcon(strsub(ability, 1, (strfind(ability, "%(") or 0)-1) or ability)) + if len < 10 then + _G(path.."_ScrollButton"..line):SetWidth(235) + _G(path.."_ScrollButton"..line.."_Name"):SetWidth(125) + else + _G(path.."_ScrollButton"..line):SetWidth(220) + _G(path.."_ScrollButton"..line.."_Name"):SetWidth(110) + end + _G(path.."_ScrollButton"..line):Show() + else + _G(path.."_ScrollButton"..line):Hide() + end + _G(path.."_ScrollButton"..line.."_selected"):Hide() + if dSel == lineplusoffset then + _G(path.."_ScrollButton"..line.."_selected"):Show() + end + end +end + +function DPSMate.Modules.DetailsDamage:Player_Update(comp) + if not comp then comp = DPSMate_Details.LastScroll or "" end + local line, lineplusoffset + local path = "DPSMate_Details"..comp.."_player" + local obj = _G(path.."_ScrollFrame") + local d1,d2,d3,d4 = t1,t2,TTotal,PSelected + if comp ~= "" and comp~=nil then + d1 = t1Comp + d2 = t2Comp + d3 = TTotalComp + d4 = PSelected2 + end + local len = DPSMate:TableLength(d1) + local coeff = len-8 + if not obj.oset or obj.oset<0 then + obj.oset = 0 + end + if coeff>0 then + if (coeff-obj.oset)<0 then + obj.oset = coeff + end + FauxScrollFrame_SetOffset(obj, obj.oset) + end + FauxScrollFrame_Update(obj,len,8,24) + for line=1,8 do + lineplusoffset = line + FauxScrollFrame_GetOffset(obj) + if d1[lineplusoffset] ~= nil then + local user = DPSMate:GetUserById(d1[lineplusoffset]) + _G(path.."_ScrollButton"..line.."_Name"):SetText(user) + _G(path.."_ScrollButton"..line.."_Value"):SetText(d2[lineplusoffset][1].." ("..strformat("%.2f", (d2[lineplusoffset][1]*100/d3)).."%)") + _G(path.."_ScrollButton"..line.."_Icon"):SetTexture("Interface\\AddOns\\DPSMate\\images\\npc") + if len < 8 then + _G(path.."_ScrollButton"..line):SetWidth(235) + _G(path.."_ScrollButton"..line.."_Name"):SetWidth(125) + else + _G(path.."_ScrollButton"..line):SetWidth(220) + _G(path.."_ScrollButton"..line.."_Name"):SetWidth(110) + end + _G(path.."_ScrollButton"..line):Show() + else + _G(path.."_ScrollButton"..line):Hide() + end + _G(path.."_ScrollButton"..line.."_selected"):Hide() + if d4 == lineplusoffset then + _G(path.."_ScrollButton"..line.."_selected"):Show() + end + end +end + +function DPSMate.Modules.DetailsDamage:PlayerSpells_Update(i, comp) + if not comp then comp = DPSMate_Details.LastScroll or "" end + local line, lineplusoffset + local path = "DPSMate_Details"..comp.."_playerSpells" + local obj = _G(path.."_ScrollFrame") + obj.id = (i + FauxScrollFrame_GetOffset(_G("DPSMate_Details"..comp.."_player_ScrollFrame"))) or obj.id + local d1,d2,d3,d4 = t1,t2,TTotal,PSelected + if comp ~= "" and comp~=nil then + d2 = t2Comp + d4 = PSelected2 + end + local len = DPSMate:TableLength(d2[i][2]) + local coeff = len-8 + if not obj.oset or obj.oset<0 then + obj.oset = 0 + end + if coeff>0 then + if (coeff-obj.oset)<0 then + obj.oset = coeff + end + FauxScrollFrame_SetOffset(obj, obj.oset) + end + + FauxScrollFrame_Update(obj,len,10,24) + for line=1,10 do + lineplusoffset = line + FauxScrollFrame_GetOffset(obj) + if d2[obj.id][2][lineplusoffset] ~= nil then + local ability = DPSMate:GetAbilityById(d2[obj.id][2][lineplusoffset]) + _G(path.."_ScrollButton"..line.."_Name"):SetText(ability) + _G(path.."_ScrollButton"..line.."_Value"):SetText(d2[obj.id][3][lineplusoffset][13].." ("..strformat("%.2f", (d2[obj.id][3][lineplusoffset][13]*100/d2[obj.id][1])).."%)") + _G(path.."_ScrollButton"..line.."_Icon"):SetTexture(DPSMate.BabbleSpell:GetSpellIcon(strsub(ability, 1, (strfind(ability, "%(") or 0)-1) or ability)) + if len < 10 then + _G(path.."_ScrollButton"..line):SetWidth(235) + _G(path.."_ScrollButton"..line.."_Name"):SetWidth(125) + else + _G(path.."_ScrollButton"..line):SetWidth(220) + _G(path.."_ScrollButton"..line.."_Name"):SetWidth(110) + end + _G(path.."_ScrollButton"..line):Show() + else + _G(path.."_ScrollButton"..line):Hide() + end + _G(path.."_ScrollButton"..line.."_selected"):Hide() + if DetailsSelected == lineplusoffset then + _G(path.."_ScrollButton"..line.."_selected"):Show() + end + end + if comp ~= "" and comp~=nil then + PSelected2 = obj.id + else + PSelected = obj.id + end + for p=1, 8 do + _G("DPSMate_Details"..comp.."_player_ScrollButton"..p.."_selected"):Hide() + end + _G("DPSMate_Details"..comp.."_player_ScrollButton"..i.."_selected"):Show() + if toggle3 then + if toggle2 then + if comp ~= "" and comp~=nil then + self:UpdateStackedGraph(g6, comp, DetailsUserComp) + else + self:UpdateStackedGraph(g3) + end + else + if comp ~= "" and comp~=nil then + self:UpdateLineGraph(g5, comp, DetailsUserComp) + else + self:UpdateLineGraph(g2, "") + end + end + if DetailsUserComp then + self:UpdateSumGraph() + end + end +end + +function DPSMate.Modules.DetailsDamage:SelectDetailsButton(i, comp, cname) + if not comp then comp = DPSMate_Details.LastScroll or "" end + local pathh = "" + local path,obj,lineplusoffset + local uArr, dSel, d2 = DetailsArr, DetailsSelected, t2 + if comp ~= "" and comp~=nil then + uArr = DetailsArrComp + dSel = DetailsSelectedComp + if not cname then + cname = DetailsUserComp + end + d2 = t2Comp + end + local uid = DPSMateUser[cname or DetailsUser] + if not uid then return end + local user, pet = uid[1], "" + if toggle then + pathh = "DPSMate_Details"..comp.."_playerSpells" + obj = _G(pathh.."_ScrollFrame") + lineplusoffset = i + (FauxScrollFrame_GetOffset(obj) or 0) + path = d2[obj.id][3][lineplusoffset] + else + pathh = "DPSMate_Details"..comp.."_Log" + obj = _G(pathh.."_ScrollFrame") + lineplusoffset = i + (FauxScrollFrame_GetOffset(obj) or 0) + local ability = tonumber(uArr[lineplusoffset]) + if (db[uid[1]][ability]) then user=uid[1]; pet=0; else + user=uid[1]; pet=0 + for pName, pEntry in pairs(DPSMateUser) do + if pEntry[4] and pEntry[6] == uid[1] and pName ~= (cname or DetailsUser) and db[pEntry[1]] and db[pEntry[1]][ability] then + user=pEntry[1]; pet=5; break + end + end + end + path = db[user][tonumber(uArr[lineplusoffset])] + end + if comp ~= "" and comp~=nil then + DetailsSelectedComp = lineplusoffset + else + DetailsSelected = lineplusoffset + end + for p=1, 10 do + _G(pathh.."_ScrollButton"..p.."_selected"):Hide() + end + _G(pathh.."_ScrollButton"..i.."_selected"):Show() + local hit, crit, miss, parry, dodge, resist, hitMin, hitMax, critMin, critMax, hitav, critav, glance, glanceMin, glanceMax, glanceav, block, blockMin, blockMax, blockav = path[1], path[5], path[9], path[10], path[11], path[12], path[2], path[3], path[6], path[7], path[4], path[8], path[14], path[15], path[16], path[17], path[18], path[19], path[20], path[21] + local total, max = hit+crit+miss+parry+dodge+resist+glance+block, DPSMate:TMax({hit, crit, miss, parry, dodge, resist, glance, block}) + + _G("DPSMate_Details"..comp.."_LogDetails_Casts"):SetText("C: "..total) + -- Block + _G("DPSMate_Details"..comp.."_LogDetails_Amount0_Amount"):SetText(block) + _G("DPSMate_Details"..comp.."_LogDetails_Amount0_Percent"):SetText(strformat("%.1f", 100*block/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount0_StatusBar"):SetValue(ceil(100*block/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount0_StatusBar"):SetStatusBarColor(0.3,0.7,1.0,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average0"):SetText(ceil(blockav/DPSMate:ProbZero(block))) + _G("DPSMate_Details"..comp.."_LogDetails_Min0"):SetText(blockMin) + _G("DPSMate_Details"..comp.."_LogDetails_Max0"):SetText(blockMax) + + -- Glance + _G("DPSMate_Details"..comp.."_LogDetails_Amount1_Amount"):SetText(glance) + _G("DPSMate_Details"..comp.."_LogDetails_Amount1_Percent"):SetText(strformat("%.1f", 100*glance/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount1_StatusBar"):SetValue(ceil(100*glance/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount1_StatusBar"):SetStatusBarColor(1.0,0.7,0.3,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average1"):SetText(ceil(glanceav/DPSMate:ProbZero(glance))) + _G("DPSMate_Details"..comp.."_LogDetails_Min1"):SetText(glanceMin) + _G("DPSMate_Details"..comp.."_LogDetails_Max1"):SetText(glanceMax) + + -- Hit + _G("DPSMate_Details"..comp.."_LogDetails_Amount2_Amount"):SetText(hit) + _G("DPSMate_Details"..comp.."_LogDetails_Amount2_Percent"):SetText(strformat("%.1f", 100*hit/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount2_StatusBar"):SetValue(ceil(100*hit/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount2_StatusBar"):SetStatusBarColor(0.9,0.0,0.0,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average2"):SetText(ceil(hitav/DPSMate:ProbZero(hit))) + _G("DPSMate_Details"..comp.."_LogDetails_Min2"):SetText(hitMin) + _G("DPSMate_Details"..comp.."_LogDetails_Max2"):SetText(hitMax) + + -- Crit + _G("DPSMate_Details"..comp.."_LogDetails_Amount3_Amount"):SetText(crit) + _G("DPSMate_Details"..comp.."_LogDetails_Amount3_Percent"):SetText(strformat("%.1f", 100*crit/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount3_StatusBar"):SetValue(ceil(100*crit/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount3_StatusBar"):SetStatusBarColor(0.0,0.9,0.0,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average3"):SetText(ceil(critav/DPSMate:ProbZero(crit))) + _G("DPSMate_Details"..comp.."_LogDetails_Min3"):SetText(critMin) + _G("DPSMate_Details"..comp.."_LogDetails_Max3"):SetText(critMax) + + -- Miss + _G("DPSMate_Details"..comp.."_LogDetails_Amount4_Amount"):SetText(miss) + _G("DPSMate_Details"..comp.."_LogDetails_Amount4_Percent"):SetText(strformat("%.1f", 100*miss/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount4_StatusBar"):SetValue(ceil(100*miss/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount4_StatusBar"):SetStatusBarColor(0.0,0.0,1.0,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average4"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Min4"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Max4"):SetText("-") + + -- Parry + _G("DPSMate_Details"..comp.."_LogDetails_Amount5_Amount"):SetText(parry) + _G("DPSMate_Details"..comp.."_LogDetails_Amount5_Percent"):SetText(strformat("%.1f", 100*parry/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount5_StatusBar"):SetValue(ceil(100*parry/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount5_StatusBar"):SetStatusBarColor(1.0,1.0,0.0,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average5"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Min5"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Max5"):SetText("-") + + -- Dodge + _G("DPSMate_Details"..comp.."_LogDetails_Amount6_Amount"):SetText(dodge) + _G("DPSMate_Details"..comp.."_LogDetails_Amount6_Percent"):SetText(strformat("%.1f", 100*dodge/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount6_StatusBar"):SetValue(ceil(100*dodge/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount6_StatusBar"):SetStatusBarColor(1.0,0.0,1.0,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average6"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Min6"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Max6"):SetText("-") + + -- Resist + _G("DPSMate_Details"..comp.."_LogDetails_Amount7_Amount"):SetText(resist) + _G("DPSMate_Details"..comp.."_LogDetails_Amount7_Percent"):SetText(strformat("%.1f", 100*resist/total).."%") + _G("DPSMate_Details"..comp.."_LogDetails_Amount7_StatusBar"):SetValue(ceil(100*resist/max)) + _G("DPSMate_Details"..comp.."_LogDetails_Amount7_StatusBar"):SetStatusBarColor(0.0,1.0,1.0,1) + _G("DPSMate_Details"..comp.."_LogDetails_Average7"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Min7"):SetText("-") + _G("DPSMate_Details"..comp.."_LogDetails_Max7"):SetText("-") +end + +function DPSMate.Modules.DetailsDamage:UpdatePie(gg, cname) + local uArr, dArr, dTot = DetailsArr, DmgArr, DetailsTotal + if cname then + uArr = DetailsArrComp + dArr = DmgArrComp + dTot = DetailsTotalComp + end + local uid = DPSMateUser[cname or DetailsUser] + if not uid then return end + gg:ResetPie() + local petIds = {} + if DPSMateSettings["mergepets"] then + for pName, pEntry in pairs(DPSMateUser) do + if pEntry[4] and pEntry[6] == uid[1] and pName ~= (cname or DetailsUser) then + petIds[pEntry[1]] = true + end + end + end + for cat, val in uArr do + local user = uid[1] + if dArr[cat] and dArr[cat][2] and DPSMateSettings["mergepets"] then + for petId in pairs(petIds) do + if db[petId] and db[petId][val] then + user = petId + break + end + end + end + if db[user] and db[user][val] then + local percent = ((db[user][val][13] or 0)*100/(dTot > 0 and dTot or 1)) + gg:AddPie(percent, 0, DPSMate:GetAbilityById(val)) + end + end +end + +function DPSMate.Modules.DetailsDamage:UpdateLineGraph(gg, comp, cname) + if not comp then comp = DPSMate_Details.LastScroll or "" end + if g3 then + g3:Hide() + end + if g6 then + g6:Hide() + end + local sumTable + if toggle3 then + if comp ~= "" and comp~=nil then + sumTable = self:GetSummarizedTable(db2, t1Comp[PSelected2], cname) + else + sumTable = self:GetSummarizedTable(db2, t1[PSelected]) + end + else + sumTable = self:GetSummarizedTable(db, nil, cname) + end + local max = DPSMate:GetMaxValue(sumTable, 2) + local time = DPSMate:GetMaxValue(sumTable, 1) + local min = DPSMate:GetMinValue(sumTable, 1) + + gg:ResetData() + gg:SetXAxis(0,time-min) + gg:SetYAxis(0,max+200) + gg:SetGridSpacing((time-min)/10,max/7) + gg:SetGridColor({0.5,0.5,0.5,0.5}) + gg:SetAxisDrawing(true,true) + gg:SetAxisColor({1.0,1.0,1.0,1.0}) + gg:SetAutoScale(true) + gg:SetYLabels(true, false) + gg:SetXLabels(true) + + local Data1={{0,0}} + for cat, val in DPSMate:ScaleDown(sumTable, min) do + tinsert(Data1, {val[1],val[2], self:CheckProcs(_G("DPSMate_Details"..comp).proc, val[1]+(min-1), cname)}) + end + local colorT = {{1.0,0.0,0.0,0.8}, {1.0,1.0,0.0,0.8}} + if cname then + colorT = {{0.2,0.8,0.2,0.8}, {0.5,0.8,0.9,0.8}} + end + + gg:AddDataSeries(Data1,colorT, self:AddProcPoints(_G("DPSMate_Details"..comp).proc, Data1, cname)) + gg:Show() + toggle2 = false +end + +function DPSMate.Modules.DetailsDamage:UpdateStackedGraph(gg, comp, cname) + if not comp then comp = DPSMate_Details.LastScroll or "" end + if g2 then + g2:Hide() + end + if g5 then + g5:Hide() + end + + local d1,d2,d3,d4 = t1,t2,TTotal,PSelected + if comp ~= "" and comp~=nil then + d1 = t1Comp + d2 = t2Comp + d4 = PSelected2 + end + + local uid = DPSMateUser[cname or DetailsUser] + if not uid then return end + local Data1 = {} + local label = {} + local b = {} + local p = {} + local maxY = 0 + local maxX = 0 + local temp = {} + local temp2 = {} + if toggle3 then + for cat, val in pairs(db2[d1[d4]][uid[1]]) do + if cat~="i" and val["i"] then + for c, v in pairs(val["i"]) do + local key = tonumber(strformat("%.1f", c)) + if not temp[cat] then + temp[cat] = {} + temp2[cat] = 0 + end + if p[key] then + p[key] = p[key] + v + else + p[key] = v + end + local i = 1 + while true do + if not temp[cat][i] then + tinsert(temp[cat], i, {c,v}) + break + elseif c<=temp[cat][i][1] then + tinsert(temp[cat], i, {c,v}) + break + end + i = i + 1 + end + temp2[cat] = temp2[cat] + val[13] + maxY = math.max(p[key], maxY) + maxX = math.max(c, maxX) + end + end + end + + -- pet + if DPSMateSettings["mergepets"] then + for pName, pEntry in pairs(DPSMateUser) do + if pEntry[4] and pEntry[6] == uid[1] and pName ~= (cname or DetailsUser) and db2[d1[d4]][pEntry[1]] then + for cat, val in pairs(db2[d1[d4]][pEntry[1]]) do + if cat~="i" and val["i"] then + for c, v in pairs(val["i"]) do + local key = tonumber(strformat("%.1f", c)) + if not temp[cat] then + temp[cat] = {} + temp2[cat] = 0 + end + if p[key] then + p[key] = p[key] + v + else + p[key] = v + end + local i = 1 + while true do + if not temp[cat][i] then + tinsert(temp[cat], i, {c,v}) + break + elseif c<=temp[cat][i][1] then + tinsert(temp[cat], i, {c,v}) + break + end + i = i + 1 + end + temp2[cat] = temp2[cat] + val[13] + maxY = math.max(p[key], maxY) + maxX = math.max(c, maxX) + end + end + end + end + end + end + + local min + for cat, val in pairs(temp) do + local pmin = DPSMate:GetMinValue(val, 1) + if not min or pmin=temp2[cat] then + tinsert(b, i, temp2[cat]) + tinsert(label, i, DPSMate:GetAbilityById(cat)) + tinsert(Data1, i, val) + break + end + i = i + 1 + end + end + for cat, val in pairs(Data1) do + Data1[cat] = DPSMate:ScaleDown(val, min) + end + + gg:ResetData() + gg:SetGridSpacing((maxX-min)/7,maxY/7) + else + for cat, val in pairs(db[uid[1]]) do + if cat~="i" and val["i"] then + local temp = {} + for c, v in pairs(val["i"]) do + local key = tonumber(strformat("%.1f", c)) + if p[key] then + p[key] = p[key] + v + else + p[key] = v + end + local i = 1 + while true do + if not temp[i] then + tinsert(temp, i, {c,v}) + break + elseif c=val[13] then + tinsert(b, i, val[13]) + tinsert(label, i, DPSMate:GetAbilityById(cat)) + tinsert(Data1, i, temp) + break + end + i = i + 1 + end + end + end + -- Pet + if DPSMateSettings["mergepets"] then + for pName, pEntry in pairs(DPSMateUser) do + if pEntry[4] and pEntry[6] == uid[1] and pName ~= (cname or DetailsUser) and db[pEntry[1]] then + for cat, val in pairs(db[pEntry[1]]) do + if cat~="i" and val["i"] then + local temp = {} + for c, v in pairs(val["i"]) do + local key = tonumber(strformat("%.1f", c)) + if p[key] then + p[key] = p[key] + v + else + p[key] = v + end + local i = 1 + while true do + if not temp[i] then + tinsert(temp, i, {c,v}) + break + elseif c=val[13] then + tinsert(b, i, val[13]) + tinsert(label, i, DPSMate:GetAbilityById(cat)) + tinsert(Data1, i, temp) + break + end + i = i + 1 + end + end + end + end + end + end + + gg:ResetData() + gg:SetGridSpacing(maxX/7,maxY/7) + end + + gg:AddDataSeries(Data1,{1.0,0.0,0.0,0.8}, {}, label) + gg:Show() + toggle2 = true +end + +function DPSMate.Modules.DetailsDamage:CreateGraphTable(comp) + local lines = {} + for i=1, 8 do + -- Horizontal + lines[i] = DPSMate.Options.graph:DrawLine(_G("DPSMate_Details"..comp.."_LogDetails"), 10, 270-i*30, 370, 270-i*30, 20, {0.5,0.5,0.5,0.5}, "BACKGROUND") + lines[i]:Show() + end + -- Vertical + lines[9] = DPSMate.Options.graph:DrawLine(_G("DPSMate_Details"..comp.."_LogDetails"), 57, 260, 57, 15, 20, {0.5,0.5,0.5,0.5}, "BACKGROUND") + lines[9]:Show() + + lines[10] = DPSMate.Options.graph:DrawLine(_G("DPSMate_Details"..comp.."_LogDetails"), 192, 260, 192, 15, 20, {0.5,0.5,0.5,0.5}, "BACKGROUND") + lines[10]:Show() + + lines[11] = DPSMate.Options.graph:DrawLine(_G("DPSMate_Details"..comp.."_LogDetails"), 252, 260, 252, 15, 20, {0.5,0.5,0.5,0.5}, "BACKGROUND") + lines[11]:Show() + + lines[12] = DPSMate.Options.graph:DrawLine(_G("DPSMate_Details"..comp.."_LogDetails"), 312, 260, 312, 15, 20, {0.5,0.5,0.5,0.5}, "BACKGROUND") + lines[12]:Show() +end + +function DPSMate.Modules.DetailsDamage:ProcsDropDown() + local arr = DPSMate.Modules.DetailsDamage:GetAuraGainedArr(curKey) + DPSMate_Details.proc = "None" + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_Details_DiagramLegend_Procs, this.value) + DPSMate_Details.proc = this.value + if not toggle2 then + DPSMate.Modules.DetailsDamage:UpdateLineGraph(g2, "") + end + if DetailsUserComp then + DPSMate.Modules.DetailsDamage:UpdateSumGraph() + end + end + + UIDropDownMenu_AddButton{ + text = "None", + value = "None", + func = on_click, + } + + -- Adding dynamic channel + local uid = DPSMateUser[DetailsUser] + if uid and arr[uid[1]] then + for cat, val in pairs(arr[uid[1]]) do + local ability = DPSMate:GetAbilityById(cat) + if DPSMate.Parser.procs[ability] or DPSMate.Parser.DmgProcs[ability] then + UIDropDownMenu_AddButton{ + text = ability, + value = cat, + func = on_click, + } + end + end + end + + if DPSMate_Details.LastUser~=DetailsUser then + UIDropDownMenu_SetSelectedValue(DPSMate_Details_DiagramLegend_Procs, "None") + end + DPSMate_Details.LastUser = DetailsUser +end + +function DPSMate.Modules.DetailsDamage:ProcsDropDown_CompareDamage() + local arr = DPSMate.Modules.DetailsDamage:GetAuraGainedArr(curKey) + DPSMate_Details_CompareDamage.proc = "None" + + local function on_click() + UIDropDownMenu_SetSelectedValue(DPSMate_Details_CompareDamage_DiagramLegend_Procs, this.value) + DPSMate_Details_CompareDamage.proc = this.value + if not toggle2 then + DPSMate.Modules.DetailsDamage:UpdateLineGraph(g5, "_CompareDamage", DetailsUserComp) + end + DPSMate.Modules.DetailsDamage:UpdateSumGraph() + end + + UIDropDownMenu_AddButton{ + text = "None", + value = "None", + func = on_click, + } + + -- Adding dynamic channel + local uidComp = DPSMateUser[DetailsUserComp] + if uidComp and arr[uidComp[1]] then + for cat, val in pairs(arr[uidComp[1]]) do + local ability = DPSMate:GetAbilityById(cat) + if DPSMate.Parser.procs[ability] or DPSMate.Parser.DmgProcs[ability] then + UIDropDownMenu_AddButton{ + text = ability, + value = cat, + func = on_click, + } + end + end + end + + if DPSMate_Details_CompareDamage.LastUser~=DetailsUserComp then + UIDropDownMenu_SetSelectedValue(DPSMate_Details_CompareDamage_DiagramLegend_Procs, "None") + end + DPSMate_Details_CompareDamage.LastUser = DetailsUserComp +end + +function DPSMate.Modules.DetailsDamage:SortLineTable(t, b, cname) + local uid = DPSMateUser[cname or DetailsUser] + if not uid then return {} end + local newArr = {} + if b then + for cat, val in t[b][uid[1]] do + if cat~="i" and val["i"] then + for ca, va in val["i"] do + local i=1 + while true do + if (not newArr[i]) then + tinsert(newArr, i, {ca, va}) + break + end + if ca<=newArr[i][1] then + tinsert(newArr, i, {ca, va}) + break + end + i=i+1 + end + end + end + end + -- Pet + if DPSMateSettings["mergepets"] then + for pName, pEntry in pairs(DPSMateUser) do + if pEntry[4] and pEntry[6] == uid[1] and pName ~= (cname or DetailsUser) and t[b] and t[b][pEntry[1]] then + for cat, val in t[b][pEntry[1]] do + if cat~="i" and val["i"] then + for ca, va in val["i"] do + local i=1 + while true do + if (not newArr[i]) then + tinsert(newArr, i, {ca, va}) + break + end + if ca<=newArr[i][1] then + tinsert(newArr, i, {ca, va}) + break + end + i=i+1 + end + end + end + end + end + end + end + else + for cat, val in t[uid[1]] do + if cat~="i" and val["i"] then + for ca, va in val["i"] do + local i=1 + while true do + if (not newArr[i]) then + tinsert(newArr, i, {ca, va}) + break + end + if ca<=newArr[i][1] then + tinsert(newArr, i, {ca, va}) + break + end + i=i+1 + end + end + end + end + -- Pet + if DPSMateSettings["mergepets"] then + for pName, pEntry in pairs(DPSMateUser) do + if pEntry[4] and pEntry[6] == uid[1] and pName ~= (cname or DetailsUser) and t[pEntry[1]] then + for cat, val in t[pEntry[1]] do + if cat~="i" and val["i"] then + for ca, va in val["i"] do + local i=1 + while true do + if (not newArr[i]) then + tinsert(newArr, i, {ca, va}) + break + end + if ca<=newArr[i][1] then + tinsert(newArr, i, {ca, va}) + break + end + i=i+1 + end + end + end + end + end + end + end + end + return newArr +end + +function DPSMate.Modules.DetailsDamage:GetSummarizedTable(arr, b, cname) + return DPSMate.Sync:GetSummarizedTable(self:SortLineTable(arr, b, cname)) +end + +function DPSMate.Modules.DetailsDamage:GetAuraGainedArr(k) + local opts = DPSMateSettings["windows"][k]["options"][2] + if opts["total"] then return DPSMateAurasGained[1] end + if opts["currentfight"] then return DPSMateAurasGained[2] end + for cat, val in pairs(opts) do + if val and strfind(cat, "segment") then + local num = tonumber(strsub(cat, 8)) + return DPSMateHistory["Auras"][num] + end + end + return DPSMateAurasGained[1] +end + +function DPSMate.Modules.DetailsDamage:CheckProcs(name, val, cname) + local uid = DPSMateUser[cname or DetailsUser] + if not uid then return false end + local arr = DPSMate.Modules.DetailsDamage:GetAuraGainedArr(curKey) + if arr[uid[1]] then + if arr[uid[1]][name] then + for i=1, DPSMate:TableLength(arr[uid[1]][name][1]) do + if not arr[uid[1]][name][1][i] or not arr[uid[1]][name][2][i] or arr[uid[1]][name][4] then return false end + if val > arr[uid[1]][name][1][i] and val < arr[uid[1]][name][2][i] then + return true + end + end + end + end + return false +end + +function DPSMate.Modules.DetailsDamage:AddProcPoints(name, dat, cname) + local uid = DPSMateUser[cname or DetailsUser] + if not uid then return {false, {}} end + local bool, data, LastVal = false, {}, 0 + local arr = self:GetAuraGainedArr(curKey) + if arr[uid[1]] then + if arr[uid[1]][name] then + if arr[uid[1]][name][4] then + for cat, val in pairs(dat) do + for i=1, DPSMate:TableLength(arr[uid[1]][name][1]) do + if arr[uid[1]][name][1][i]<=val[1] then + local tempbool = true + for _, va in pairs(data) do + if va[1] == arr[uid[1]][name][1][i] then + tempbool = false + break + end + end + if tempbool then + bool = true + tinsert(data, {arr[uid[1]][name][1][i], LastVal, {val[1], val[2]}}) + end + end + end + LastVal = {val[1], val[2]} + end + end + end + end + return {bool, data} +end + +function DPSMate.Modules.DetailsDamage:ToggleMode(bool) + if bool then + if toggle2 then + self:UpdateLineGraph(g2,"") + if DetailsUserComp then + self:UpdateLineGraph(g5,"_CompareDamage", DetailsUserComp) + end + else + self:UpdateStackedGraph(g3) + if DetailsUserComp then + self:UpdateStackedGraph(g6,"_CompareDamage", DetailsUserComp) + end + end + else + if toggle then + toggle = false + self:ScrollFrame_Update("") + self:SelectDetailsButton(1,"") + DPSMate_Details_playerSpells:Hide() + DPSMate_Details_player:Hide() + DPSMate_Details_Diagram:Show() + DPSMate_Details_Log:Show() + + if DetailsUserComp then + self:ScrollFrame_Update("_CompareDamage") + self:SelectDetailsButton(1,"_CompareDamage") + DPSMate_Details_CompareDamage_playerSpells:Hide() + DPSMate_Details_CompareDamage_player:Hide() + DPSMate_Details_CompareDamage_Diagram:Show() + DPSMate_Details_CompareDamage_Log:Show() + end + else + toggle = true + self:Player_Update("") + self:PlayerSpells_Update(1,"") + self:SelectDetailsButton(1,"") + DPSMate_Details_playerSpells:Show() + DPSMate_Details_player:Show() + DPSMate_Details_Diagram:Hide() + DPSMate_Details_Log:Hide() + + if DetailsUserComp then + self:Player_Update("_CompareDamage") + self:PlayerSpells_Update(1, "_CompareDamage") + self:SelectDetailsButton(1, "_CompareDamage") + DPSMate_Details_CompareDamage_playerSpells:Show() + DPSMate_Details_CompareDamage_player:Show() + DPSMate_Details_CompareDamage_Diagram:Hide() + DPSMate_Details_CompareDamage_Log:Hide() + end + end + end +end + +function DPSMate.Modules.DetailsDamage:ToggleIndividual() + if toggle3 then + toggle3 = false + else + toggle3 = true + end + if toggle2 then + self:UpdateStackedGraph(g3) + if DetailsUserComp then + self:UpdateStackedGraph(g6,"_CompareDamage", DetailsUserComp) + end + else + self:UpdateLineGraph(g2,"") + if DetailsUserComp then + self:UpdateLineGraph(g5,"_CompareDamage", DetailsUserComp) + end + end + if DetailsUserComp then + self:UpdateSumGraph() + end +end + diff --git a/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.xml b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.xml new file mode 100644 index 0000000..f608e0c --- /dev/null +++ b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_Damage.xml @@ -0,0 +1,1812 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:SetMinMaxValues(1,100) + this:SetStatusBarTexture("Interface\\AddOns\\DPSMate\\images\\statusbar\\Healbot") + this:SetValue(100) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:SetClampedToScreen() + getglobal(this:GetName().."_Title"):SetFont(UNIT_NAME_FONT, 24) + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(DPSMate.L["procstooltip"], nil, nil, nil, nil, 1) + + + GameTooltip:Hide() + + + UIDropDownMenu_SetWidth(200) + getglobal(this:GetName().."_Text"):SetText(DPSMate.L["procs"]) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate_Details.LastScroll = "" + FauxScrollFrame_OnVerticalScroll(24, DPSMate.Modules.DetailsDamage.ScrollFrame_Update) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate.Modules.DetailsDamage:CreateGraphTable("") + getglobal(this:GetName().."_Block"):SetText(DPSMate.L["block"]) + getglobal(this:GetName().."_Glance"):SetText(DPSMate.L["glance"]) + getglobal(this:GetName().."_Hit"):SetText(DPSMate.L["hit"]) + getglobal(this:GetName().."_Amount"):SetText(DPSMate.L["amount"]) + getglobal(this:GetName().."_Average"):SetText(DPSMate.L["average"]) + getglobal(this:GetName().."_Min"):SetText(DPSMate.L["min"]) + getglobal(this:GetName().."_Max"):SetText(DPSMate.L["max"]) + getglobal(this:GetName().."_Crit"):SetText(DPSMate.L["crit"]) + getglobal(this:GetName().."_Miss"):SetText(DPSMate.L["miss"]) + getglobal(this:GetName().."_Parry"):SetText(DPSMate.L["parry"]) + getglobal(this:GetName().."_Dodge"):SetText(DPSMate.L["dodge"]) + getglobal(this:GetName().."_Resist"):SetText(DPSMate.L["resist"]) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate_Details.LastScroll = "" + if not this.oset then + this.oset = 0 + end + this.oset = this.oset - arg1 + FauxScrollFrame_OnVerticalScroll(24, DPSMate.Modules.DetailsDamage.Player_Update) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate_Details.LastScroll = "" + if not this.oset then + this.oset = 0 + end + this.oset = this.oset - arg1 + FauxScrollFrame_OnVerticalScroll(24, DPSMate.Modules.DetailsDamage.PlayerSpells_Update) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:GetParent():StartMoving() + + + this:GetParent():StopMovingOrSizing() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + getglobal(this:GetName().."_Title"):SetFont(UNIT_NAME_FONT, 24) + + + this:GetParent():StartMoving() + + + this:GetParent():StopMovingOrSizing() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(DPSMate.L["procstooltip"], nil, nil, nil, nil, 1) + + + GameTooltip:Hide() + + + UIDropDownMenu_SetWidth(200) + getglobal(this:GetName().."_Text"):SetText(DPSMate.L["procs"]) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate_Details.LastScroll = "_CompareDamage" + if not this.oset then + this.oset = 0 + end + this.oset = this.oset - arg1 + FauxScrollFrame_OnVerticalScroll(24, DPSMate.Modules.DetailsDamage.ScrollFrame_Update) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate.Modules.DetailsDamage:CreateGraphTable("_CompareDamage") + getglobal(this:GetName().."_Block"):SetText(DPSMate.L["block"]) + getglobal(this:GetName().."_Glance"):SetText(DPSMate.L["glance"]) + getglobal(this:GetName().."_Hit"):SetText(DPSMate.L["hit"]) + getglobal(this:GetName().."_Amount"):SetText(DPSMate.L["amount"]) + getglobal(this:GetName().."_Average"):SetText(DPSMate.L["average"]) + getglobal(this:GetName().."_Min"):SetText(DPSMate.L["min"]) + getglobal(this:GetName().."_Max"):SetText(DPSMate.L["max"]) + getglobal(this:GetName().."_Crit"):SetText(DPSMate.L["crit"]) + getglobal(this:GetName().."_Miss"):SetText(DPSMate.L["miss"]) + getglobal(this:GetName().."_Parry"):SetText(DPSMate.L["parry"]) + getglobal(this:GetName().."_Dodge"):SetText(DPSMate.L["dodge"]) + getglobal(this:GetName().."_Resist"):SetText(DPSMate.L["resist"]) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate_Details.LastScroll = "_CompareDamage" + if not this.oset then + this.oset = 0 + end + this.oset = this.oset - arg1 + FauxScrollFrame_OnVerticalScroll(24, DPSMate.Modules.DetailsDamage.Player_Update) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate_Details.LastScroll = "_CompareDamage" + if not this.oset then + this.oset = 0 + end + this.oset = this.oset - arg1 + FauxScrollFrame_OnVerticalScroll(24, DPSMate.Modules.DetailsDamage.PlayerSpells_Update) + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.lua b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.lua new file mode 100644 index 0000000..096d088 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.lua @@ -0,0 +1,494 @@ +DPSMate.Modules.DetailsDamageTotal = {} + +local g, g2 = nil,nil +local curKey = 1 +local db, cbt = {}, 0 +local buttons = {} +local ColorTable={} +local _G = getglobal +local tinsert = table.insert +local tremove = table.remove +local strformat = string.format +local toggle = false +local totSumTable = {} +local totMax = 0 +local totTime = 0 + +function DPSMate.Modules.DetailsDamageTotal:UpdateDetails(obj, key) + curKey = key + db, cbt = DPSMate:GetMode(key) + buttons = {} + ColorTable={ + {0.95,0.90,0.5}, + {0.0,0.9,0.0}, + {0.0,0.0,1.0}, + {1.0,1.0,0.0}, + {1.0,0.0,1.0}, + {0.0,1.0,1.0}, + {1.0,1.0,1.0}, + {0.5,0.0,0.0}, + {0.0,0.5,0.0}, + {0.0,0.0,0.5}, + {0.5,0.5,0.0}, + {0.5,0.0,0.5}, + {0.0,0.5,0.5}, + {0.5,0.5,0.5}, + {0.75,0.25,0.25}, + {0.25,0.75,0.25}, + {0.25,0.25,0.75}, + {0.75,0.75,0.25}, + {0.75,0.25,0.75}, + {0.25,0.75,0.75}, + {1.0,0.5,0.0}, + {0.0,0.5,1.0}, + {1.0,0.0,0.5}, + {0.5,1.0,0.0}, + {0.5,0.0,1.0}, + {0.0,1.0,0.5}, + {0.0,0.25,0.5}, + {0.25,0,0.5}, + {0.5,0.25,0.0}, + {0.5,0.0,0.25}, + {0.5,0.75,0.0}, + {0.5,0.0,0.75}, + {0.0,0.75,0.5}, + {0.75,0.0,0.5}, + } + if not g then + g=DPSMate.Options.graph:CreateGraphLine("DMGDTLineGraph",DPSMate_Details_DamageTotal_DiagramLine,"CENTER","CENTER",0,0,740,220) + g2=DPSMate.Options.graph:CreateStackedGraph("DMGDTStackedGraph",DPSMate_Details_DamageTotal_DiagramLine,"CENTER","CENTER",0,0,850,220) + g2:SetGridColor({0.5,0.5,0.5,0.5}) + g2:SetAxisDrawing(true,true) + g2:SetAxisColor({1.0,1.0,1.0,1.0}) + g2:SetAutoScale(true) + g2:SetYLabels(true, false) + g2:SetXLabels(true) + g2:Hide() + DPSMate.Modules.DetailsDamageTotal:CreateGraphTable() + end + DPSMate_Details_DamageTotal_PlayerList_CB:SetChecked(false) + DPSMate_Details_DamageTotal_PlayerList_CB.act = false + DPSMate_Details_DamageTotal_Title:SetText(DPSMate.L["dmgdonesum"]) + self:LoadTable() + self:LoadLegendButtons() + if toggle then + self:UpdateStackedGraph() + else + self:UpdateLineGraph() + end + DPSMate_Details_DamageTotal:Show() + DPSMate_Details_DamageTotal:SetScale((DPSMateSettings["targetscale"] or 0.58)/UIParent:GetScale()) +end + +function DPSMate.Modules.DetailsDamageTotal:UpdateLineGraph() + g:ResetData() + g:SetGridColor({0.5,0.5,0.5,0.5}) + g:SetAxisDrawing(true,true) + g:SetAxisColor({1.0,1.0,1.0,1.0}) + g:SetAutoScale(true) + g:SetYLabels(true, false) + g:SetXLabels(true) + g2:Hide() + DPSMate_Details_DamageTotal_DiagramLine:SetWidth(770) + DPSMate_Details_DamageTotal_DiagramLegend:Show() + g:Show() + toggle=false + self:AddTotalDataSeries() + local Max = totMax + for cat, val in pairs(buttons) do + g:AddDataSeries(val[3], {val[1], {}}, {}) + local temp = DPSMate:GetMaxValue(val[3], 2) + if temp>Max then + Max = temp + end + end + g:SetGridSpacing(totTime/10,Max/7) +end + +function DPSMate.Modules.DetailsDamageTotal:UpdateStackedGraph() + g:Hide() + DPSMate_Details_DamageTotal_DiagramLine:SetWidth(870) + DPSMate_Details_DamageTotal_DiagramLegend:Hide() + + local Data1 = {} + local label = {} + local maxX, maxY = 0,0 + local p = {} + for cat, val in db do + local temp = {} + local user =DPSMate:GetUserById(cat) + if DPSMate:ApplyFilter(curKey, user) then + for ca, va in val do + if ca~="i" then + for c,v in va["i"] do + local i = 1 + while true do + if not temp[i] then + tinsert(temp, i, {c,v}) + break + elseif c<=temp[i][1] then + tinsert(temp, i, {c,v}) + break + end + i=i+1 + end + if p[c] then + p[c] = p[c] + v + else + p[c] = v + end + if maxX == 0 or maxX totMax then + g:SetGridSpacing(totTime/10,Max/7) + end + + g:AddDataSeries(sumTable, {ColorTable[1], {}}, {}) + tinsert(buttons, {ColorTable[1], uid, sumTable}) + tremove(ColorTable, 1) + g2:Hide() + DPSMate_Details_DamageTotal_DiagramLine:SetWidth(770) + DPSMate_Details_DamageTotal_DiagramLegend:Show() + g:Show() + toggle=false + obj.act = true + self:LoadLegendButtons() +end + +function DPSMate.Modules.DetailsDamageTotal:RemoveLinesButton(uid, obj) + obj.act = false + g:ResetData() + for cat, val in pairs(buttons) do + if val[2]==uid then + tinsert(ColorTable, 1, val[1]) + tremove(buttons, cat) + break + end + end + + local Max = totMax + g:AddDataSeries(totSumTable,{{1.0,0.0,0.0,0.8}, {1.0,1.0,0.0,0.8}}, {}) + for cat, val in pairs(buttons) do + g:AddDataSeries(val[3], {val[1], {}}, {}) + local temp = DPSMate:GetMaxValue(val[3], 2) + if temp>Max then + Max = temp + end + end + g:SetGridSpacing(totTime/10,Max/7) + g2:Hide() + DPSMate_Details_DamageTotal_DiagramLine:SetWidth(770) + DPSMate_Details_DamageTotal_DiagramLegend:Show() + g:Show() + toggle = false + self:LoadLegendButtons() +end + +function DPSMate.Modules.DetailsDamageTotal:LoadLegendButtons() + for i=1, 30 do + _G("DPSMate_Details_DamageTotal_DiagramLegend_Child_C"..i):Hide() + end + for cat, val in buttons do + local name = DPSMate:GetUserById(val[2]) + local font = _G("DPSMate_Details_DamageTotal_DiagramLegend_Child_C"..cat.."_Font") + font:SetText(name) + local uentry = DPSMateUser[name] + font:SetTextColor(DPSMate:GetClassColor(uentry and uentry[2])) + _G("DPSMate_Details_DamageTotal_DiagramLegend_Child_C"..cat.."_SwatchBg"):SetTexture(val[1][1],val[1][2],val[1][3],1) + _G("DPSMate_Details_DamageTotal_DiagramLegend_Child_C"..cat):Show() + end +end + +function DPSMate.Modules.DetailsDamageTotal:RoundToH(val) + if val>100 then + return 100 + end + return val +end + +function DPSMate.Modules.DetailsDamageTotal:CompareVal(x,y) + if x>y then + return y + end + return x +end + +function DPSMate.Modules.DetailsDamageTotal:LoadTable() + local arr, total = self:GetTableValues() + local i = 0 + for i=1, 30 do + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..i):Hide() + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..i.."_CB"):SetChecked(false) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..i.."_CB").act = false + end + for cat, val in arr do + local uentry = DPSMateUser[val[1]] + if uentry and uentry[4] then + i=i+1 + else + if (cat-i)>30 then break end + local r,g,b = DPSMate:GetClassColor(uentry and uentry[2]) + _G("DPSMate_Details_DamageTotal_PlayerList_Child"):SetHeight((cat-i)*30) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_Name"):SetText(val[1]) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_Name"):SetTextColor(r,g,b) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_Amount"):SetText(val[2]) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_StatusBar"):SetValue(100*val[2]/arr[1][2]) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_StatusBar"):SetStatusBarColor(r,g,b, 1) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_AmountPerc"):SetText(strformat("%.1f", 100*val[2]/total).."%") + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_Crit"):SetText(strformat("%.1f", 100*val[3]/val[6]).."%") + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_Miss"):SetText(strformat("%.1f", 100*val[4]/val[7]).."%") + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_DPS"):SetText(strformat("%.1f", val[2]/cbt)) + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i).."_ActiveTime"):SetText(self:CompareVal(ceil(val[5]), ceil(cbt)).."s | "..strformat("%.1f", self:RoundToH(100*val[5]/cbt)).."%") + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i)).user = val[8] + _G("DPSMate_Details_DamageTotal_PlayerList_Child_R"..(cat-i)):Show() + end + end +end + +function DPSMate.Modules.DetailsDamageTotal:ShowTooltip(user, obj) + local name = DPSMate:GetUserById(user) + if not DPSMateUser[name] then return end + local a,b,c = DPSMate.Modules.Damage:EvalTable(DPSMateUser[name], curKey) + local pet = "" + GameTooltip:SetOwner(obj, "TOPLEFT") + GameTooltip:AddLine(name.."'s "..strlower(DPSMate.L["damagedone"]), 1,1,1) + if not a or not b or not c then return end + for i=1, DPSMateSettings["subviewrows"] do + if not a[i] then break end + if c[i][2] then pet="("..c[i][2]..")" else pet="" end + GameTooltip:AddDoubleLine(i..". "..DPSMate:GetAbilityById(a[i])..pet,c[i][1].." ("..strformat("%.2f", 100*c[i][1]/b).."%)",1,1,1,1,1,1) + end + GameTooltip:Show() +end diff --git a/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.xml b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.xml new file mode 100644 index 0000000..2eb7abf --- /dev/null +++ b/src/dpslog/WeirdDPSMate/Damage/DPSMate_Details_DamageTotal.xml @@ -0,0 +1,761 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + getglobal(this:GetName().."_Hover"):Show() + DPSMate.Modules.DetailsDamageTotal:ShowTooltip(this.user, this) + + + getglobal(this:GetName().."_Hover"):Hide() + GameTooltip:Hide() + + + + + + + + + + + + + this:GetParent().act = false + + + local uid = this:GetParent().user + local act = this:GetParent().act + if uid then + if act then + DPSMate.Modules.DetailsDamageTotal:RemoveLinesButton(uid, this:GetParent()) + else + DPSMate.Modules.DetailsDamageTotal:AddLinesButton(uid, this:GetParent()) + end + end + + + + + + + + + + + + + this:SetMinMaxValues(1,100) + this:SetStatusBarTexture("Interface\\AddOns\\DPSMate\\images\\statusbar\\Healbot") + this:SetValue(100) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:SetClampedToScreen() + getglobal(this:GetName().."_Title"):SetFont(UNIT_NAME_FONT, 24) + + + this:StartMoving() + + + this:StopMovingOrSizing() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:SetVerticalScroll(0) + + + DPSMate.Options:OnVerticalScroll(this, arg1, 20, true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this:SetVerticalScroll(0) + + + DPSMate.Options:OnVerticalScroll(this, arg1, 30, true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DPSMate.Modules.DetailsDamageTotal:CheckButtonCheckAll(this) + + + + + + + + + \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/LICENSE b/src/dpslog/WeirdDPSMate/LICENSE new file mode 100644 index 0000000..9cecc1d --- /dev/null +++ b/src/dpslog/WeirdDPSMate/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/src/dpslog/WeirdDPSMate/README.md b/src/dpslog/WeirdDPSMate/README.md new file mode 100644 index 0000000..5ebedaa --- /dev/null +++ b/src/dpslog/WeirdDPSMate/README.md @@ -0,0 +1,97 @@ +# DPSMate + +A combat analysis addon for World of Warcraft 1.12 (Classic). Parses combat log messages in real-time to track ~40 metrics and presents them in customizable UI windows. + +Originally by Shino <Synced> - Kronos. This fork targets TWoW/Kronos private servers. + +## Installation + +1. Download and extract into `Interface/AddOns/` so the folder is named `DPSMate` (not `DPSMate-master`). +2. Increase addon memory to at least 150 MB. +3. If upgrading from a previous version, delete the old SavedVariables while logged out: + - `WTF/Account//SavedVariables/DPSMate.lua` (account-wide settings) + - `WTF/Account////SavedVariables/DPSMate.lua` (per-character data) +4. Add these lines to `WTF/config.wtf` for full combat log range: + ``` + SET CombatLogRangeParty "150" + SET CombatLogRangePartyPet "150" + SET CombatLogRangeFriendlyPlayers "150" + SET CombatLogRangeFriendlyPlayersPets "150" + SET CombatLogRangeHostilePlayers "150" + SET CombatLogRangeHostilePlayersPets "150" + SET CombatLogRangeCreature "150" + ``` +5. Log in and `/reload` to load the addon. + +## Slash Commands + +| Command | Description | +|---------|-------------| +| `/dps` | Show help and available commands | +| `/dps config` | Open configuration window | +| `/dps lock` | Lock all frames | +| `/dps unlock` | Unlock all frames | +| `/dps show {name}` | Show a specific window | +| `/dps hide {name}` | Hide a specific window | +| `/dps showAll` | Show all windows | +| `/dps hideAll` | Hide all windows | +| `/dps reset` | Reset all saved data (players, abilities, history, metrics) | +| `/dps testmode` | Toggle test mode for UI testing | + +## Features + +### Tracking Modes (~40) + +- Damage done / DPS / damage taken / DTPS +- Enemy damage done / taken +- Healing (total, effective, overhealing) / HPS / EHPS / OHPS +- Healing taken (total, effective, overhealing) +- Healing and absorbs combined +- Absorbs done / taken +- Threat / TPS (requires KLHThreatMeter) +- Deaths with full death recap +- Interrupts (including stuns and silences) +- Dispels / decurses / cure disease / cure poison / lift magic (done and received) +- CC breakers +- Friendly fire (done and taken) +- Auras (gained, lost, uptime) +- Buffs/debuffs and procs +- Casts +- Fails + +### UI + +- Multiple independent windows showing different modes simultaneously +- Resizable and movable frames +- Per-window customization of fonts, colors, textures, bar height, spacing, columns +- Configurable display refresh rate (0.016s to 2.0s) +- Up to 40 status bars per window +- Compare mode for player-vs-player analysis +- Detail views with graphs for every mode + +### Data Management + +- Configurable segment history (1-20 fight segments) +- Boss-only fight filtering +- Automatic stale player pruning between fights +- Raid data synchronization via addon channel +- Report function for chat output + +## Supported Locales + +enUS, deDE, frFR, ruRU, koKR, zhCN + +## Optional Dependencies + +- **KLHThreatMeter** -- enables threat/TPS tracking + +## Troubleshooting + +**SavedVariables getting too large?** +- Use `/dps reset` to wipe all accumulated data. +- Reduce the number of stored segments in General Options. +- History segments automatically strip per-tick graph data to save space. + +**Missing group members?** +- Ensure combat log range settings are applied in `config.wtf` (see Installation step 4). +- Verify all raid members have the addon loaded for sync to work. diff --git a/src/dpslog/WeirdDPSMate/enUS/Babble-Boss-2.3.lua b/src/dpslog/WeirdDPSMate/enUS/Babble-Boss-2.3.lua new file mode 100644 index 0000000..1b234b9 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/enUS/Babble-Boss-2.3.lua @@ -0,0 +1,474 @@ +--[[ +Name: Babble-Boss-2.3 +Revision: $Rev: 20300 $ +Author(s): ckknight (ckknight@gmail.com) +Website: http://ckknight.wowinterface.com/ +Documentation: http://wiki.wowace.com/index.php/Babble-Boss-2.2 +SVN: http://svn.wowace.com/root/trunk/Babble-2.2/Babble-Boss-2.2 +Description: A library to provide localizations for bosses. +Dependencies: AceLibrary, AceLocale-2.2 + +Rewritten a little and added some "bosses" by Shino +]] + +local bosses = { + -- Costum bosses + ["Firesworn"] = true, + + ["Avalanchion"] = true, + ["The Windreaver"] = true, + ["Baron Charr"] = true, + ["Princess Tempestria"] = true, + ["Grethok the Controller"] = true, + ["Patchwerk"] = true, + ["Grobbulus"] = true, + ["Gluth"] = true, + ["Feugen"] = true, + ["Stalagg"] = true, + ["Thaddius"] = true, + ["Anub'Rekhan"] = true, + ["Grand Widow Faerlina"] = true, + ["Maexxna"] = true, + ["Instructor Razuvious"] = true, + --["Deathknight Understudy"] = true, + ["Gothik the Harvester"] = true, + ["Highlord Mograine"] = true, + ["Thane Korth'azz"] = true, + ["Lady Blaumeux"] = true, + ["Sir Zeliek"] = true, + ["The Four Horsemen"] = true, + ["Noth the Plaguebringer"] = true, + ["Heigan the Unclean"] = true, + ["Loatheb"] = true, + ["Sapphiron"] = true, + ["Kel'Thuzad"] = true, + ["Lord Victor Nefarius"] = true, + ["Nefarian"] = true, + ["Vaelastrasz the Corrupt"] = true, + ["Razorgore the Untamed"] = true, + ["Broodlord Lashlayer"] = true, + ["Chromaggus"] = true, + ["Ebonroc"] = true, + ["Firemaw"] = true, + ["Flamegor"] = true, + ["Majordomo Executus"] = true, + ["Ragnaros"] = true, + ["Baron Geddon"] = true, + ["Golemagg the Incinerator"] = true, + ["Garr"] = true, + ["Sulfuron Harbinger"] = true, + ["Shazzrah"] = true, + ["Lucifron"] = true, + ["Gehennas"] = true, + ["Magmadar"] = true, + ["Onyxia"] = true, + ["Azuregos"] = true, + ["Lord Kazzak"] = true, + ["Ysondre"] = true, + ["Emeriss"] = true, + ["Taerar"] = true, + ["Lethon"] = true, + ["High Priestess Jeklik"] = true, + ["High Priest Venoxis"] = true, + ["High Priest Thekal"] = true, + ["High Priestess Arlokk"] = true, + ["High Priestess Mar'li"] = true, + ["Jin'do the Hexxer"] = true, + ["Bloodlord Mandokir"] = true, + ["Gahz'ranka"] = true, + ["Gri'lek"] = true, + ["Hazza'rah"] = true, + ["Renataki"] = true, + ["Wushoolay"] = true, + ["Hakkar"] = true, + ["Ayamiss the Hunter"] = true, + ["Buru the Gorger"] = true, + ["General Rajaxx"] = true, + ["Lieutenant General Andorov"] = true, + ["Moam"] = true, + ["Ossirian the Unscarred"] = true, + ["Lord Kri"] = true, + ["Princess Yauj"] = true, + ["Vem"] = true, + ["The Bug Family"] = true, + ["Eye of C'Thun"] = true, + ["C'Thun"] = true, + ["Fankriss the Unyielding"] = true, + ["Princess Huhuran"] = true, + ["Ouro"] = true, + ["Battleguard Sartura"] = true, + ["The Prophet Skeram"] = true, + ["Emperor Vek'lor"] = true, + ["Emperor Vek'nilash"] = true, + ["The Twin Emperors"] = true, + ["Viscidus"] = true, + ["Alzzin the Wildshaper"] = true, + ["Ambassador Flamelash"] = true, + ["Anger'rel"] = true, + ["Archivist Galford"] = true, + ["Atal'alarion"] = true, + ["Avatar of Hakkar"] = true, + ["Bael'Gar"] = true, + ["Balnazzar"] = true, + ["Baroness Anastari"] = true, + ["Baron Rivendare"] = true, + ["Cannon Master Willey"] = true, + ["Captain Kromcrush"] = true, + ["Celebras the Cursed"] = true, + ["Crystal Fang"] = true, + ["Darkmaster Gandling"] = true, + ["Doctor Theolen Krastinov"] = true, + ["Doom'rel"] = true, + ["Dope'rel"] = true, + ["Dreamscythe"] = true, + ["Emperor Dagran Thaurissan"] = true, + ["Fineous Darkvire"] = true, + ["Gasher"] = true, + ["General Angerforge"] = true, + ["General Drakkisath"] = true, + ["Gloom'rel"] = true, + ["Golem Lord Argelmach"] = true, + ["Goraluk Anvilcrack"] = true, + ["Guard Fengus"] = true, + ["Guard Mol'dar"] = true, + ["Guard Slip'kik"] = true, + ["Gyth"] = true, + ["Halycon"] = true, + ["Hate'rel"] = true, + ["Hazzas"] = true, + ["Hearthsinger Forresten"] = true, + ["High Interrogator Gerstahn"] = true, + ["Highlord Omokk"] = true, + ["Hukku"] = true, + ["Hurley Blackbreath"] = true, + ["Hydrospawn"] = true, + ["Illyanna Ravenoak"] = true, + ["Immol'thar"] = true, + ["Instructor Malicia"] = true, + ["Jammal'an the Prophet"] = true, + ["Jandice Barov"] = true, + ["King Gordok"] = true, + ["Kirtonos the Herald"] = true, + ["Lady Illucia Barov"] = true, + ["Landslide"] = true, + ["Lethtendris"] = true, + ["Lord Alexei Barov"] = true, + ["Lord Incendius"] = true, + ["Lord Vyletongue"] = true, + ["Lorekeeper Polkelt"] = true, + ["Loro"] = true, + ["Magister Kalendris"] = true, + ["Magistrate Barthilas"] = true, + ["Magmus"] = true, + ["Maleki the Pallid"] = true, + ["Marduk Blackpool"] = true, + ["Meshlok the Harvester"] = true, + ["Mijan"] = true, + ["Morphaz"] = true, + ["Mother Smolderweb"] = true, + ["Nerub'enkan"] = true, + ["Noxxion"] = true, + ["Ogom the Wretched"] = true, + ["Overlord Wyrmthalak"] = true, + ["Phalanx"] = true, + ["Plugger Spazzring"] = true, + ["Postmaster Malown"] = true, + ["Princess Moira Bronzebeard"] = true, + ["Princess Theradras"] = true, + ["Prince Tortheldrin"] = true, + ["Pusillin"] = true, + ["Pyroguard Emberseer"] = true, + ["Ramstein the Gorger"] = true, + ["Ras Frostwhisper"] = true, + ["Rattlegore"] = true, + ["Razorlash"] = true, + ["Warchief Rend Blackhand"] = true, + ["Ribbly Screwspigot"] = true, + ["Rotgrip"] = true, + ["Seeth'rel"] = true, + ["Shade of Eranikus"] = true, + ["Shadow Hunter Vosh'gajin"] = true, + ["Solakar Flamewreath"] = true, + ["Stomper Kreeg"] = true, + ["Tendris Warpwood"] = true, + ["The Beast"] = true, + ["The Ravenian"] = true, + ["Timmy the Cruel"] = true, + ["Tinkerer Gizlock"] = true, + ["Tsu'zee"] = true, + ["Vectus"] = true, + ["Vile'rel"] = true, + ["War Master Voone"] = true, + ["Weaver"] = true, + ["Zevrim Thornhoof"] = true, + ["Zolo"] = true, + ["Zul'Lor"] = true, + + -- From Mendeleev + ["Cho'Rush the Observer"] = true, + ["Lord Hel'nurath"] = true, + ["Pimgib"] = true, + ["Knot Thimblejack's Cache"] = true, + ["Cannonmaster Willey"] = true, + ["Emperor Dagran Thaurissian"] = true, + ["Archmage Arugal"] = true, + ["Archmage Arugal's Voidwalker"] = true, + ["Baron Silverlaine"] = true, + ["Commander Springvale"] = true, + ["Prelate Ironmane"] = true, + ["Deathsworn Captain"] = true, + ["Fenrus the Devourer"] = true, + ["Odo the Blindwatcher"] = true, + ["Razorclaw the Butcher"] = true, + ["Wolf Master Nandos"] = true, + ["Rend Blackhand"] = true, + ["Kurinnaxx"] = true, + + -- From Zae for Kara 40 + ["Keeper Gnarlmoon"] = true, + ["Ley-Watcher Incantagos"] = true, + ["Anomalus"] = true, + ["Echo of Medivh"] = true, + ["King"] = true, + ["Queen"] = true, + ["Bishop"] = true, + ["Rook"] = true, + ["Ima'ghaol, Herald of Desolation"] = true, + ["Sanv Tas'dal"] = true, + ["Rupturan the Broken"] = true, + ["Kruul"] = true, + ["Mephistroth"] = true, + ["Master Blacksmith Rolfen"] = true, -- Lower Kara + ["Brood Queen Araxxna"] = true, + ["Grizikil"] = true, + ["Clawlord Howlfang"] = true, + ["Lord Blackwald II"] = true, + ["Moroes"] = true, + ["Incindis"] = true, -- MC Update + ["Basalthar"] = true, + ["Smoldaris"] = true, + ["Sorcerer-Thane Thaurissan"] = true, + ["Solnius"] = true, + ["Erennius"] = true, + + -- Emerald Sanctum + ["Sanctum Dragonkin"] = true, + ["Sanctum Dreamer"] = true, + ["Sanctum Supressor"] = true, + ["Sanctum Wyrmkin"] = true, + ["Sanctum Wyrm"] = true, + + -- Black Morass + ["Rotmaw"] = true, + ["Antnormi"] = true, + ["Mossheart"] = true, + ["Time-Lord Epochronos"] = true, + ["Drifting Avatar of Sand"] = true, + ["Epidamu"] = true, + ["Chronar"] = true, + + -- TWoW world bosses + ["Nerubian Overseer"] = true, + ["Dark Reaver of Karazhan"] = true, + ["Ostarius"] = true, + ["Cla'ckora"] = true, + ["Father Lycan"] = true, + ["Snowball"] = true, + + -- Low level dungeons + ["Maur Grimtotem"] = true, + ["Oggleflint"] = true, + ["Taragaman the Hungerer"] = true, + ["Jergosh the Invoker"] = true, + ["Bazzalan"] = true, + ["Disciple of Naralex"] = true, + ["Lord Cobrahn"] = true, + ["Lady Anacondra"] = true, + ["Kresh"] = true, + ["Lord Pythas"] = true, + ["Skum"] = true, + ["Lord Serpentis"] = true, + ["Verdan the Everliving"] = true, + ["Zandara Windhoof"] = true, + ["Vangros"] = true, + ["Mutanus the Devourer"] = true, + ["Naralex"] = true, + ["Deviate Faerie Dragon"] = true, + ["Ghamoo-ra"] = true, + ["Lady Sarevess"] = true, + ["Gelihast"] = true, + ["Lorgus Jett"] = true, + ["Baron Aquanis"] = true, + ["Velthelaxx the Defiler"] = true, + ["Twilight Lord Kelris"] = true, + ["Old Serra'kis"] = true, + ["Aku'mai"] = true, + ["Roogug"] = true, + ["Aggem Thorncurse"] = true, + ["Death Speaker Jargba"] = true, + ["Overlord Ramtusk"] = true, + ["Agathelos the Raging"] = true, + ["Blind Hunter"] = true, + ["Charlga Razorflank"] = true, + ["Earthcaller Halmgar"] = true, + ["Rotthorn"] = true, + ["Tuten'kash"] = true, + ["Lady Falther'ess"] = true, + ["Mordresh Fire Eye"] = true, + ["Glutton"] = true, + ["Ragglesnout"] = true, + ["Death Prophet Rakameg"] = true, + ["Amnennar the Coldbringer"] = true, + ["Plaguemaw the Rotting"] = true, + ["Matthias Holtz"] = true, + ["Packmaster Ragetooth"] = true, + ["Judge Sutherland"] = true, + ["Dustivan Blackcowl"] = true, + ["Marshal Magnus Greystone"] = true, + ["Horsemaster Levvin"] = true, + ["Genn Greymane"] = true, + ["Regent-Lord Mortimer Harlow"] = true, + ["Antu'sul"] = true, + ["Dustwraith"] = true, + ["Zerillis"] = true, + ["Witch Doctor Zum'rah"] = true, + ["Shadowpriest Sezz'ziz"] = true, + ["Gahz'rilla"] = true, + ["Zel'jeb the Ancient"] = true, + ["Champion Razjal the Quick"] = true, + ["Chief Ukorz Sandscalp"] = true, + ["Ruuzlu"] = true, + ["Isalien"] = true, + ["Revanchion"] = true, + ["High Foreman Bargul Blackhammer"] = true, + ["Engineer Figgles"] = true, + ["Corrosis"] = true, + ["Hatereaver Annihilator"] = true, + ["Har'gesh Doomcaller"] = true, + ["Lord Roccor"] = true, + ["Anub'shiah"] = true, + ["Eviscerator"] = true, + ["Gorosh the Dervish"] = true, + ["Grizzle"] = true, + ["Hedrum the Creeper"] = true, + ["Ok'thor the Breaker"] = true, + ["Houndmaster Grebmar"] = true, + ["Pyromancer Loregrain"] = true, + ["Warder Stilgiss"] = true, + ["Verek"] = true, + ["Watchman Doomgrip"] = true, + ["Panzor the Invincible"] = true, + ["Mor Grayhoof"] = true, + ["Bannok Grimaxe"] = true, + ["Urok Doomhowl"] = true, + ["Quartermaster Zigris"] = true, + ["Gizrul the Slavener"] = true, + ["Ghok Bashguud"] = true, + ["Jed Runewatcher"] = true, + ["Lord Valthalak"] = true, + ["Grubbis"] = true, + ["Chomper"] = true, + ["Viscous Fallout"] = true, + ["Electrocutioner 6000"] = true, + ["Crowd Pummeler 9-60"] = true, + ["Dark Iron Ambassador"] = true, + ["Mekgineer Thermaplugg"] = true, + ["Houndmaster Loksey"] = true, + ["Brother Wynstan"] = true, + ["Arcanist Doan"] = true, + ["Armory Quartermaster Daghelm"] = true, + ["Herod"] = true, + ["High Inquisitor Fairbanks"] = true, + ["Scarlet Commander Mograine"] = true, + ["High Inquisitor Whitemane"] = true, + ["Interrogator Vishas"] = true, + ["Bloodmage Thalnos"] = true, + ["Ironspine"] = true, + ["Azshir the Sleepless"] = true, + ["Fallen Champion"] = true, + ["Oronok Torn-Heart"] = true, + ["Dagar the Glutton"] = true, + ["Duke Balor the IV"] = true, + ["Librarian Theodorus"] = true, + ["Chieftain Stormsong"] = true, + ["Deathlord Tidebane"] = true, + ["Subjugator Halthas Shadecrest"] = true, + ["Mycellakos"] = true, + ["Eldermaw the Primordial"] = true, + ["Lady Drazare"] = true, + ["Remains of the Innocent"] = true, + ["Mergothid"] = true, + ["Ighal'for"] = true, + ["Death Knight Darkreaver"] = true, + ["Kormok"] = true, + ["Skul"] = true, + ["Balzaphon"] = true, + ["Malor the Zealous"] = true, + ["Sothos"] = true, + ["Jarien"] = true, + ["Stonespine"] = true, + ["Jared Voss"] = true, + ["Rhahk'Zor"] = true, + ["Miner Johnson"] = true, + ["Masterpiece Harvester"] = true, + ["Sneed"] = true, + ["Gilnid"] = true, + ["Captain Greenskin"] = true, + ["Edwin VanCleef"] = true, + ["Mr. Smite"] = true, + ["Cookie"] = true, + ["Targorr the Dread"] = true, + ["Kam Deepfury"] = true, + ["Hamhock"] = true, + ["Bazil Thredd"] = true, + ["Dextren Ward"] = true, + ["Bruegal Ironknuckle"] = true, + ["Gowlfang"] = true, + ["Cavernweb Broodmother"] = true, + ["Web Master Torkon"] = true, + ["Garlok Flamekeeper"] = true, + ["Halgan Redbrand"] = true, + ["Slagfist Destroyer"] = true, + ["Overlord Blackheart"] = true, + ["Elder Hollowblood"] = true, + ["Searistrasz"] = true, + ["Zuluhed the Whacked"] = true, + ["Duke Dreadmoore"] = true, + ["Grovetender Engryss"] = true, + ["Keeper Ranathos"] = true, + ["High Priestess A'lathea"] = true, + ["Fenektis the Deceiver"] = true, + ["Master Raxxieth"] = true, + ["Baelog"] = true, + ["Eric \"The Swift\""] = true, + ["Olaf"] = true, + ["Revelosh"] = true, + ["Ironaya"] = true, + ["Obsidian Sentinel"] = true, + ["Ancient Stone Keeper"] = true, + ["Galgann Firehammer"] = true, + ["Grimlok"] = true, + ["Archaedas"] = true, + ["Sever"] = true, + ["Scorn"] = true, + ["Rethilgore"] = true, + ["Atiesh"] = true, + ["Marrowspike"] = true, + ["Hivaxxis"] = true, + ["Corpsemuncher"] = true, + ["Guard Captain Gort"] = true, + ["Archlich Enkhraz"] = true, + ["Commander Andreon"] = true, + ["Alarus"] = true, + ["Aszosh Grimflame"] = true, + ["Tham'Grarr"] = true, + ["Black Bride"] = true, + ["Damian"] = true, + ["Volkan Cruelblade"] = true, + ["Arc'tiras"] = true, +} + +BabbleBoss = {} +function BabbleBoss:Contains(name) + return bosses[name] +end diff --git a/src/dpslog/WeirdDPSMate/enUS/Babble-Spell-2.3.lua b/src/dpslog/WeirdDPSMate/enUS/Babble-Spell-2.3.lua new file mode 100644 index 0000000..15cedf3 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/enUS/Babble-Spell-2.3.lua @@ -0,0 +1,2076 @@ +--[[ +Name: Babble-Spell-2.2 +Revision: $Rev: 15059 $ +Author(s): ckknight (ckknight@gmail.com) +Website: http://ckknight.wowinterface.com/ +Documentation: http://wiki.wowace.com/index.php/Babble-Spell-2.2 +SVN: http://svn.wowace.com/root/trunk/Babble-2.2/Babble-Spell-2.2 +Description: A library to provide localizations for spells. +Dependencies: AceLibrary, AceLocale-2.2 + +Rewritten a little and added some "bosses" by Shino +]] + +local spellIcons = { + -- Adding missing ones + ["Food"] = "", + ["Dense Sharpening Stone"] = "", + ["Greater Fire Protection Potion"] = "", + ["Enriched Manna Biscuit"] = "", + ["Massive Eruption"] = "", + ["Heavy Sharpening Stone"] = "", + ["Starfire Stun"] = "", + ["Weaponsmith"] = "", + ["Soul Siphon"] = "", + ["Solid Sharpening Stone"] = "", + ["Greater Holy Protection Potion"] = "", + ["Shield Bash - Silenced"] = "", + ["Sheep"] = "", + ["Whiteslash"] = "", + ["Enamored Water Spirit"] = "", + ["Rough Sharpening Stone"] = "", + ["Berserker Charge"] = "", + ["Remorseless"] = "", + ["Reckless Charge"] = "", + ["Elemental Leatherworking"] = "", + ["Deep Wounds"] = "", + ["Powerful Anti-Venom"] = "", + ["Greater Arcane Protection Potion"] = "", + ["Greater Nature Protection Potion"] = "", + ["Greater Shadow Protection Potion"] = "", + ["Tribal Leatherworking"] = "", + ["Consecrated Sharpening Stone"] = "", + ["Drink"] = "", + ["Mana"] = "", + ["Explosion"] = "", + ["Herb Gathering"] = "", + ["Kick - Silenced"] = "", + ["Elemental Sharpening Stone"] = "", + ["Greater Frost Protection Potion"] = "", + ["Armorsmith"] = "", + ["Icy Chill"] = "", + ["Dragonscale Leatherworking"] = "", + ["Counterspell - Silenced"] = "", + ["Lockpicking"] = "", + ["Energy"] = "", + ["Coarse Sharpening Stone"] = "", + + -- Costum Icons + ["Purification Potion"] = "inv_potion_01", + ["Restorative Potion"] = "inv_potion_01", + ["Negative Charge"] = "spell_chargenegative", + ["Positive Charge"] = "spell_chargepositive", + ["Void Zone"] = "spell_frost_icestorm", + ["Plague Cloud"] = "ability_creature_disease_02", + ["Mana Detonation"] = "spell_nature_wispsplode", + ["Shadow Fissure"] = "spell_shadow_creepingplague", + ["Tidal Charm"] = "spell_frost_summonwaterelemental", + ["Toxin Cloud"] = "spell_nature_abolishmagic", + ["Unholy Frenzy"] = "spell_nature_bloodlust", + ["Harvest Soul"] = "spell_shadow_curseofachimonde", + ["Stomp"] = "ability_warstomp", + ["Flesh Rot"] = "ability_ghoulfrenzy", + ["Slime"] = "spell_nature_abolishmagic", + ["Test Sunder Armor"] = "ability_warrior_sunder", + ["Wildvine Potion"] = "inv_misc_herb_17", + ["Lily Root"] = "temp", + ["Healthstone"] = "inv_stone_04", + ["Greater Healthstone"] = "inv_stone_04", + ["Aegis Heal"] = "temp", + ["Oracular Heal"] = "spell_holy_lesserheal02", + ["Warrior's Resolve"] = "inv_boots_plate_03", + ["Rejuvenation Potion"] = "mail_gmicon", + ["Heroism"] = "spell_holy_mindvision", + ["Lava Shield"] = "spell_fire_immolation", + ["Breath"] = "spell_fire_fire", + ["Guillotine"] = "ability_warrior_punishingblow", + ["Gahz'ranka Slam"] = "ability_devour", + ["Thousand Blades"] = "inv-sword_53", + ["Wide Slash"] = "ability_warrior_cleave", + ["Quake"] = "temp", + ["Vicious Bite"] = "ability_racial_cannibalize", + ["Sweep"] = "spell_nature_thorns", + ["Unstable Concoction"] = "spell_fire_incinerate", + ["Shadow Bolt Whirl"] = "spell_shadow_shadowbolt", + ["Eyebeam"] = "spell_fire_fireball02", + ["Boulder"] = "spell_frost_stun", + ["Lightning Blast"] = "spell_nature_lightning", + ["Massive Tremor"] = "ability_smash", + ["Dark Strike"] = "spell_shadow_ritualofsacrifice", + ["Forked Lightning"] = "spell_nature_chainlightning", + ["Rough Copper Bomb"] = "spell_fire_selfdestruct", + ["Big Bronze Bomb"] = "inv_musket_01", + ["Big Iron Bomb"] = "spell_fire_selfdestruct", + ["Fiery Blaze"] = "spell_fire_selfdestruct", + ["Arcane Missile"] = "spell_nature_starfall", + ["Fire Strike"] = "spell_shadow_shadowbolt", + ["Coarse Dynamite"] = "spell_fire_selfdestruct", + ["Solid Dynamite"] = "inv_fabric_silk_01", + ["Hi-Explosive Bomb"] = "inv_battery_01", + ["Goblin Sapper Charge"] = "spell_fire_selfdestruct", + ["Fiery Weapon"] = "temp", + ["Venomhide Poison"] = "ability_poisons", + ["Linken's Boomerang"] = "inv_weapon_shortblade_10", + ["Dragonbreath Chili"] = "inv_misc_organ_06", + ["Numbing Pain"] = "spell_nature_corrosivebreath", + ["Demonfork"] = "spell_shadow_lifedrain02", + ["Smokey's Lighter"] = "spell_fire_incinerate", + ["Crest of Retribution"] = "inv_shield_19", + ["Ramstein's Lightning Bolts"] = "spell_lightning_lightningbolt01", + ["Wound"] = "ability_gouge", + ["Ez-Thro Dynamite"] = "inv_fabric_wool_01", + ["Arcane Detonation"] = "spell_arcane_starfire", + ["Jeklik's Crushing Blow"] = "ability_gouge", + ["Shard of the Fallen Star"] = "spell_fire_fireball02", + ["Flaming Cannonball"] = "spell_lightning_lightningbolt01", + ["Flaming Shell"] = "spell_lightning_lightningbolt01", + ["Wild Bite"] = "ability_physical_taunt", + ["Frostbrand Attack"] = "spell_frost_frostbrand", + ["Lifesteal"] = "spell_shadow_chilltouch", + ["Lightning"] = "spell_lightning_lightningbolt01", + ["Frost Arrow"] = "spell_frost_frostbolt02", + ["Frost Blast"] = "spell_frost_freezingbreath", + ["Fireblast"] = "spell_fire_flamebolt", + ["Bear Down"] = "ability_warrior_charge", + ["Iron Grenade"] = "spell_fire_selfdestruct", + ["Cloaking"] = "spell_nature_invisibilty", + ["Stoneshield"] = "inv_potion_67", + ["Flee"] = "spell_magic_polymorphchicken", + ["Fury of the Bogling"] = "spell_nature_strength", + ["Screams of the Past"] = "spell_shadow_impphaseshift", + ["Fishliver Oil"] = "inv_misc_fish_06", + ["Health"] = "inv_potion_44", + ["Sleepy"] = "spell_nature_sleep", + ["Party Time!"] = "spell_shadow_darksummoning", + ["Healthy Spirit"] = "spell_holy_magicalsentry", + ["Zeal"] = "spell_holy_innerfire", + ["Julie's Blessing"] = "spell_holy_renew", + ["Mithril Shield Spike"] = "inv_ingot_08", + ["Uther's Light Effect"] = "spell_holy_powerwordshield", + ["Spiritual Domination"] = "spell_fire_incinerate", + ["Abolish Disease Effect"] = "spell_nature_nullifydisease", + ["Static Barrier"] = "spell_nature_lightningshield", + ["Admiral's Hat"] = "spell_magic_featherfall", + ["Fearless"] = "ability_warrior_battleshout", + ["Gnomish Rocket Boots"] = "spell_fire_fire", + ["Lesser Intellect"] = "inv_potion_10", + ["Gnomish Death Ray"] = "spell_shadow_shadowbolt", + ["Blazing Emblem"] = "spell_fire_firearmor", + ["Greater Intellect"] = "inv_potion_10", + ["Crystal Restore"] = "inv_misc_gem_diamond_02", + ["Crystal Force"] = "inv_misc_gem_crystal_02", + ["Lord General's Sword"] = "ability_racial_avatar", + ["Burst of Knowledge"] = "inv_jewelry_amulet_07", + ["Agamaggan's Strength"] = "spell_nature_strength", + ["Orb of Deception"] = "spell_shadow_antishadow", + ["Agamaggan's Agility"] = "spell_nature_windfury", + ["Destiny"] = "spell_nature_strength", + ["Mark of the Dragon Lord"] = "inv_misc_head_dragon_01", + ["Argent Dawn"] = "spell_holy_devotionaura", + ["Argent Avenger"] = "spell_lightning_lightningbolt01", + ["Skullforge Brand"] = "spell_shadow_gathershadows", + ["Major Spellstone"] = "inv_misc_gem_sapphire_01", + ["Blessed Sunfruit"] = "inv_misc_fork&knife", + ["Blessed Sunfruit Juice"] = "inv_drink_07", + ["Piccolo of the Flaming Fire"] = "inv_misc_flute_01", + ["Fel Energy"] = "spell_shadow_psychicscream", + ["Restore Life"] = "inv_misc_orb_03", + ["Frenzy Effect"] = "inv_misc_monsterclaw_03", + ["Scarlet Illusion"] = "spell_holy_prayerofhealing", + ["Enchant Boots - Greater Agilit"] = "inv_misc_note_01", + ["Rumsey Rum"] = "inv_drink_03", + ["Earthshaker"] = "inv_mace_02", + ["Razorlash Root"] = "inv_misc_herb_07", + ["Mark of the Chosen Effect"] = "inv_jewelry_talisman_08", + ["Heated Ground"] = "spell_fire_fire", + ["Eskhandar's Rage"] = "inv_misc_monsterclaw_03", + ["Gordok Ogre Suit"] = "inv_chest_chain_14", + ["World Enlarger"] = "inv_gizmo_04", + ["Shadow Reflector"] = "spell_shadow_antishadow", + ["Mark of Frost"] = "spell_frost_chainsofice", + ["Evil Twin"] = "spell_shadow_charm", + ["Berserker Rage Effect"] = "temp", + ["Alterac Spring Water"] = "inv_drink_07", + ["Sayge's Dark Fortune of Spirit"] = "inv_misc_orb_02", + ["Sayge's Dark Fortune of Armor"] = "inv_misc_orb_02", + ["Speed Slash"] = "ability_ghoulfrenzy", + ["Mar'li's Brain Boost"] = "inv_zulgurubtrinket", + ["Master Angler"] = "inv_misc_fish_04", + ["Prayer Beads Blessing"] = "inv_jewelry_necklace_11", + ["Greater Dreamless Sleep"] = "spell_nature_sleep", + ["Nimble Healing Touch"] = "spell_nature_regenerate", + ["Massive Destruction"] = "spell_fire_windsofwoe", + ["Rapid Healing"] = "spell_holy_healingaura", + ["Pagle's Broken Reel"] = "spell_frost_wizardmark", + ["Pirate Costume"] = "inv_helmet_66", + ["Skeleton Costume"] = "spell_shadow_raisedead", + ["Bat Costume"] = "ability_hunter_pet_bat", + ["Ghost Costume"] = "spell_shadow_coneofsilence", + ["Wisp Costume"] = "spell_nature_wispsplode", + ["Noxious Breath"] = "spell_shadow_lifedrain02", + ["Hallow's End Candy"] = "temp", + ["Healing of the Ages"] = "spell_nature_healingwavegreater", + ["Rumsey Rum Light"] = "inv_drink_08", + ["Mark of Nature"] = "spell_nature_spiritarmor", + ["Enchant Gloves - Frost Power"] = "inv_enchant_shardbrilliantlarge", + ["Enlarge"] = "spell_nature_strength", + ["Attack Order"] = "ability_hunter_snipershot", + ["Narain!"] = "inv_helmet_63", + ["Rumsey Rum Dark"] = "inv_drink_04", + ["Poison Stinger"] = "inv_misc_monstertail_03", + ["Mystical Disjunction"] = "spell_shadow_siphonmana", + ["Spell Blasting"] = "spell_shadow_siphonmana", + ["Vekniss Catalyst"] = "ability_creature_poison_02", + ["Sand Blast"] = "spell_nature_cyclone", + ["Obsidian Insight"] = "inv_misc_ahnqirajtrinket_04", + ["Chitinous Spikes"] = "inv_misc_ahnqirajtrinket_02", + ["Mistletoe"] = "spell_nature_healingtouch", + ["Insight of the Qiraji"] = "inv_qirajidol_death", + ["Cologne"] = "inv_valentinecolognebottle", + ["Curse of the Elemental Lord"] = "spell_fire_lavaspawn", + ["Crusader's Wrath"] = "temp", + ["Elixir of Resistance"] = "inv_potion_21", + ["Lay Hands"] = "inv_belt_22", + ["Fire-toasted Bun"] = "inv_misc_food_11", + ["Midsummer Sausage"] = "inv_misc_food_53", + ["Toasted Smorc"] = "inv_summerfest_smorc", + ["Elderberry Pie"] = "inv_misc_food_10", + ["Breath of Fire"] = "spell_fire_incinerate", + ["Sheen of Zanza"] = "inv_potion_29", + ["Elemental Devastation"] = "spell_fire_elementaldevastation", + ["Infected Wound"] = "spell_nature_nullifydisease", + ["Consuming Shadows"] = "spell_shadow_haunting", + ["Lingering Presence"] = "inv_helmet_06", + ["Health Regeneration"] = "spell_holy_healingaura", + ["Stamina"] = "spell_nature_unyeildingstamina", + ["Shockwave"] = "spell_shadow_impphaseshift", + ["Arcane Potency"] = "spell_arcane_starfire", + ["Earth Rumble"] = "spell_nature_natureswrath", + ["Defibrillated!"] = "spell_nature_purge", + ["Crusader Strike"] = "spell_holy_holysmite", + ["Arcane Might"] = "spell_holy_mindsooth", + ["Arcane Burst"] = "spell_nature_wispsplode", + ["Swoop"] = "ability_warrior_cleave", + ["Shadowflame"] = "temp", + ["Blood Heal"] = "spell_holy_blessedlife", + ["Acid Splash"] = "spell_fire_felcano", + ["Terrifying Screech"] = "spell_shadow_summonimp", + ["Mana Regen Proc"] = "inv_gauntlets_60", + ["Daze"] = "spell_frost_stun", + ["Ground Smash"] = "inv_gauntlets_05", + ["Diminish Soul"] = "spell_holy_consumemagic", + ["Virulent Poison"] = "spell_nature_corrosivebreath", + ["Lash"] = "ability_druid_disembowel", + ["Aura of Vengeance"] = "spell_shadow_siphonmana", + ["Focus"] = "spell_holy_searinglight", + ["Stun"] = "spell_frost_stun", + ["Mortal Cleave"] = "ability_warrior_savageblow", + ["Petrification"] = "inv_potion_26", + ["Fury"] = "spell_holy_blessingofstrength", + ["Paralyze"] = "spell_shadow_charm", + ["Cripple"] = "spell_shadow_cripple", + ["Disease Cloud"] = "spell_nature_abolishmagic", + ["Haste"] = "spell_nature_invisibilty", + ["Fel Energy Cosmetic"] = "spell_fire_felfire", + ["Wild Magic"] = "spell_shadow_charm", + ["Frost Breath"] = "temp", + ["Feral Charge Effect"] = "ability_hunter_pet_bear", + ["Shadow Infusion"] = "spell_shadow_shadowworddominate", + ["Flame Strike"] = "spell_fire_selfdestruct", + ["Snap Kick"] = "ability_kick", + ["Fire Festival Fury"] = "inv_summerfest_fireflower", + ["Domination"] = "spell_shadow_shadowworddominate", + ["Chilling Touch"] = "spell_frost_frostarmor", + ["Dense Dynamite"] = "inv_fabric_purplefire_01", + ["Increased Intellect"] = "inv_misc_organ_03", + ["Fire Reflector"] = "spell_fire_sealoffire", + ["Restless Strength"] = "temp", + ["Invisibility"] = "inv_potion_18", + ["Summon Infernals"] = "temp", + ["Mind Exhaustion"] = "spell_shadow_teleport", + ["Berserker Charge"] = "ability_warrior_charge", + ["Dark Rune"] = "inv_misc_rune_04", + ["Grace of Earth"] = "ability_physical_taunt", + ["Black Amnesty"] = "spell_fire_flamebolt", + ["Dismember"] = "ability_backstab", + ["Trip"] = "ability_rogue_trip", + ["Fire Shield II"] = "spell_fire_immolation", + ["Full Speed"] = "ability_warrior_innerrage", + ["Fire Shield III"] = "spell_fire_immolation", + ["Fire Shield IV"] = "spell_fire_immolation", + ["Fire Shield Effect II"] = "spell_fire_immolation", + ["Fire Shield Effect IV"] = "spell_fire_immolation", + ["Touch of Death"] = "spell_shadow_unsummonbuilding", + ["Presence of Death"] = "spell_shadow_shadetruesight", + ["Ice Claw"] = "spell_frost_iceclaw", + ["Frenzied Command"] = "ability_racial_bloodrage", + ["Glacial Roar"] = "spell_frost_frostnova", + ["Rabies"] = "spell_holy_harmundeadaura", + ["Crazed Hunger"] = "ability_racial_cannibalize", + ["Sapper Explode"] = "spell_fire_selfdestruct", + ["Quick Bloodlust"] = "spell_nature_bloodlust", + ["Curse of Thule"] = "spell_shadow_shadowpact", + ["Life Harvest"] = "spell_shadow_requiem", + ["Agonizing Pain"] = "ability_ghoulfrenzy", + ["Savage Rage"] = "spell_shadow_unholyfrenzy", + ["Blessing of Thule"] = "spell_shadow_fingerofdeath", + ["Violent Shield"] = "spell_shadow_mindbomb", + ["Slow Poison"] = "spell_nature_slowpoison", + ["Dark Sludge"] = "spell_shadow_creepingplague", + ["Drink Minor Potion"] = "spell_holy_heal", + ["Potion Strength II"] = "spell_nature_strength", + ["Rage of Thule"] = "spell_shadow_unholyfrenzy", + ["Deadly Leech Poison"] = "spell_nature_nullifypoison", + ["Ward of the Eye"] = "spell_totem_wardofdraining", + ["Soul Rend"] = "spell_shadow_teleport", + ["Fiend Fury"] = "spell_shadow_unholyfrenzy", + ["Tainted Howl"] = "spell_nature_corrosivebreath", + ["Plague Mind"] = "spell_shadow_callofbone", + ["Enchanted Quickness"] = "spell_nature_invisibilty", + ["Wail of Nightlash"] = "spell_shadow_possession", + ["Felstrom Resurrection"] = "spell_totem_wardofdraining", + ["Frenzied Rage"] = "spell_shadow_unholyfrenzy", + ["Enraging Memories"] = "spell_shadow_unholyfrenzy", + ["Deafening Screech"] = "spell_shadow_auraofdarkness", + ["Distracting Pain"] = "ability_racial_cannibalize", + ["Paralyzing Poison"] = "ability_poisonsting", + ["Minion of Morganth"] = "spell_totem_wardofdraining", + ["Bloodscalp Pet"] = "spell_nature_spiritwolf", + ["Summon Dalaran Serpent"] = "ability_ambush", + ["Skullsplitter Pet"] = "spell_nature_spiritwolf", + ["Battle Fury"] = "ability_racial_bloodrage", + ["Crystal Gaze"] = "ability_golemthunderclap", + ["Crystalline Slumber"] = "spell_nature_sleep", + ["Improved Blocking III"] = "spell_fire_firearmor", + ["Improved Blocking"] = "spell_fire_firearmor", + ["Sling Mud"] = "spell_nature_sleep", + ["Summon Spirit of Old"] = "spell_nature_purge", + ["Summon Shield Guard"] = "spell_nature_purge", + ["Summon Theurgist"] = "spell_nature_purge", + ["Ward of Laze"] = "spell_totem_wardofdraining", + ["Argus Shadow Mage Transform"] = "spell_shadow_unsummonbuilding", + ["Trelane's Freezing Touch"] = "spell_shadow_unsummonbuilding", + ["Summon Helcular's Puppets"] = "spell_shadow_haunting", + ["Resupply"] = "spell_misc_drink", + ["Encasing Webs"] = "spell_nature_earthbind", + ["Wither Touch"] = "spell_nature_drowsy", + ["Quick Flame Ward"] = "spell_fire_sealoffire", + ["Quick Frost Ward"] = "spell_fire_sealoffire", + ["Crystal Flash"] = "spell_shadow_teleport", + ["Voidwalker"] = "spell_shadow_summonvoidwalker", + ["Summon Living Flame"] = "spell_fire_fire", + ["Battle Command"] = "ability_racial_bloodrage", + ["Eject Sneed"] = "spell_fire_fire", + ["Bloodsail Companion"] = "ability_eyeoftheowl", + ["Cookie's Cooking"] = "spell_holy_heal", + ["Molten Metal"] = "spell_fire_fireball", + ["Fanatic Blade"] = "spell_fire_fire", + ["Cursed Blade"] = "spell_nature_drowsy", + ["Razor Mane"] = "spell_nature_thorns", + ["Claw Grasp"] = "inv_misc_birdbeck_02", + ["Quick Sidestep"] = "spell_nature_invisibilty", + ["Savagery"] = "ability_whirlwind", + ["Fade Out"] = "spell_nature_invisibilty", + ["Miring Mud"] = "spell_nature_stranglevines", + ["Threatening Growl"] = "ability_racial_cannibalize", + ["Stone Skin"] = "ability_golemthunderclap", + ["Crazed"] = "spell_shadow_spectralsight", + ["Summon Crimson Cannon"] = "ability_golemstormbolt", + ["Nimble Reflexes"] = "ability_meleedamage", + ["Kodo Stomp"] = "ability_warstomp", + ["Healing Ward IV Passive"] = "spell_holy_restoration", + ["Rhahk'Zor Slam"] = "inv_gauntlets_05", + ["Faded"] = "spell_nature_invisibilty", + ["Smite Stomp"] = "ability_warstomp", + ["Smite Slam"] = "inv_gauntlets_05", + ["Earthbind Totem Passive"] = "spell_nature_strengthofearthtotem02", + ["Razormane Wolf"] = "ability_druid_rake", + ["Ground Tremor"] = "spell_nature_earthquake", + ["Sling Dirt"] = "spell_nature_sleep", + ["Overseer's Poison"] = "spell_nature_corrosivebreath", + ["Intimidating Growl"] = "ability_racial_cannibalize", + ["Savannah Cub"] = "ability_druid_rake", + ["Salt Flats Racer Speed"] = "inv_misc_gear_01", + ["Piercing Shot"] = "ability_searingarrow", + ["Weak Poison Proc"] = "spell_nature_corrosivebreath", + ["Corrupted Strength"] = "spell_holy_harmundeadaura", + ["Corrupted Intellect"] = "spell_holy_harmundeadaura", + ["Foul Chill"] = "spell_frost_wisp", + ["Hide"] = "ability_stealth", + ["Shadowhorn Charge"] = "spell_nature_drowsy", + ["Gift of the Xavian"] = "spell_holy_flashheal", + ["Shadowstalker Slash"] = "ability_cheapshot", + ["Overwhelming Stench"] = "spell_shadow_animatedead", + ["Weak Frostbolt"] = "spell_frost_frostbolt02", + ["Lightning Barrier"] = "spell_nature_lightningshield", + ["Fire Shot"] = "ability_searingarrow", + ["Haunting Spirits"] = "spell_shadow_blackplague", + ["Wild Rage"] = "spell_shadow_grimward", + ["Arugal's Gift"] = "spell_shadow_chilltouch", + ["Toxic Saliva"] = "spell_nature_corrosivebreath", + ["Summon Lupine Delusions"] = "spell_shadow_teleport", + ["Diving Sweep"] = "ability_warrior_cleave", + ["Nature Protection Potion"] = "inv_misc_herb_11", + ["Lightning Hide"] = "spell_nature_lightningshield", + ["Summon Harvester Swarm"] = "ability_stealth", + ["Heal Brother"] = "spell_nature_healingwavegreater", + ["Call Bleak Worg"] = "spell_shadow_chilltouch", + ["Call Slavering Worg"] = "spell_shadow_chilltouch", + ["Call Lupine Horror"] = "spell_shadow_chilltouch", + ["Potion Toss"] = "spell_misc_drink", + ["Wailing Dead"] = "spell_shadow_possession", + ["Inferno Shell"] = "spell_fire_selfdestruct", + ["Shared Bondage"] = "spell_shadow_unsummonbuilding", + ["Gift of Ragnaros"] = "spell_fire_fire", + ["Decayed Agility"] = "spell_holy_harmundeadaura", + ["Localized Toxin"] = "spell_nature_corrosivebreath", + ["Compact Harvest Reaper"] = "spell_shadow_metamorphosis", + ["Summon Treant Ally"] = "spell_nature_forceofnature", + ["Nullify Mana"] = "spell_shadow_darkritual", + ["Area Burn"] = "spell_fire_selfdestruct", + ["Tetanus"] = "spell_holy_harmundeadaura", + ["Spirit Decay"] = "spell_holy_harmundeadaura", + ["Druid's Slumber"] = "spell_nature_sleep", + ["Silithid Pox"] = "spell_nature_nullifydisease", + ["Befuddlement"] = "spell_shadow_mindsteal", + ["Tremor Totem Passive"] = "spell_nature_tremortotem", + ["Thorns Aura"] = "spell_nature_thorns", + ["Surprise Attack"] = "ability_cheapshot", + ["Poison Cleansing Totem Passive"] = "spell_nature_poisoncleansingtotem", + ["Disease Cleansing Totem Passiv"] = "spell_nature_diseasecleansingtotem", + ["Grounding Totem Passive"] = "spell_nature_groundingtotem", + ["Explosive Sheep"] = "spell_shadow_metamorphosis", + ["Savannah Cubs"] = "ability_druid_rake", + ["Wandering Plague"] = "spell_shadow_callofbone", + ["Strong Cleave"] = "ability_warrior_cleave", + ["Lethal Toxin"] = "spell_nature_corrosivebreath", + ["Elemental Protection Totem"] = "spell_nature_nullward", + ["Elemental Protection Totem Aur"] = "spell_nature_nullward", + ["Lava Spout Totem Passive"] = "spell_fire_selfdestruct", + ["Summon Earth Rumbler"] = "spell_nature_earthquake", + ["Summon Wind Howler"] = "spell_nature_cyclone", + ["Summon Tamed Battleboar"] = "spell_magic_polymorphpig", + ["Summon Tamed Hyena"] = "ability_druid_swipe", + ["Trap"] = "inv_potion_01", + ["Mana Spike"] = "spell_holy_heal", + ["Purity"] = "spell_holy_holybolt", + ["Summon Aqua Guardian"] = "spell_frost_wisp", + ["Earthgrab Totem"] = "spell_nature_naturetouchdecay", + ["Summon Moonstalker Runt"] = "ability_druid_supriseattack", + ["Summon Crawler"] = "inv_misc_birdbeck_02", + ["Low Swipe"] = "ability_golemthunderclap", + ["Dynamite"] = "spell_fire_selfdestruct", + ["Poisoned Shot"] = "ability_poisons", + ["Summon Kurzen Mindslave"] = "spell_arcane_blink", + ["Flame Spike"] = "spell_fire_selfdestruct", + ["Summon Panthers"] = "ability_mount_blackpanther", + ["Smoke Bomb"] = "ability_stealth", + ["Ward of Zanzil"] = "spell_totem_wardofdraining", + ["Summon Fen Dweller"] = "spell_nature_abolishmagic", + ["Stealth (TEST)"] = "ability_stealth", + ["Unholy Shield"] = "spell_shadow_detectlesserinvisibility", + ["Summon Illusionary Phantasm"] = "spell_fire_sealoffire", + ["Deep Sleep"] = "spell_nature_sleep", + ["Searing Flames"] = "spell_fire_immolation", + ["Lock Down"] = "inv_gizmo_01", + ["Ink Spray"] = "spell_nature_sleep", + ["Summon Rift Traveler"] = "spell_shadow_antishadow", + ["Summon Swamp Spirit"] = "spell_nature_abolishmagic", + ["Jumping Lightning"] = "spell_nature_lightning", + ["Shadow Shell"] = "spell_shadow_antishadow", + ["Radiation Bolt"] = "spell_holy_harmundeadaura", + ["Irradiated"] = "spell_nature_abolishmagic", + ["Beast Tracking"] = "ability_tracking", + ["Radiation Cloud"] = "spell_shadow_corpseexplode", + ["Silithid Swarm"] = "spell_shadow_auraofdarkness", + ["Pacify"] = "ability_seal", + ["Flame Spray"] = "spell_fire_fire", + ["Create Weegli's Barrel"] = "inv_misc_bowl_01", + ["Grab Weapon"] = "ability_warrior_disarm", + ["Battle Net"] = "ability_ensnare", + ["Spirit of Kirith"] = "spell_frost_wisp", + ["Lag"] = "inv_gizmo_01", + ["Summon Dupe Bug"] = "spell_shadow_auraofdarkness", + ["Crowd Pummel"] = "inv_gauntlets_04", + ["Soul Bite"] = "spell_shadow_siphonmana", + ["Summon Witherbark Felhunter"] = "spell_shadow_summonfelhunter", + ["Flamespit"] = "spell_fire_flamebolt", + ["Megavolt"] = "spell_nature_chainlightning", + ["Chain Bolt"] = "spell_nature_chainlightning", + ["Radiation Poisoning"] = "spell_shadow_corpseexplode", + ["Dark Iron Land Mine"] = "spell_shadow_metamorphosis", + ["Steam Jet"] = "ability_hibernation", + ["Muscle Tear"] = "ability_gouge", + ["Summon Oozeling"] = "spell_nature_abolishmagic", + ["Curse of Tuten'kash"] = "spell_nature_drowsy", + ["Summon Shadowcaster"] = "spell_shadow_raisedead", + ["Acid of Hakkar"] = "spell_nature_acid_01", + ["Summon Skeletal Servant"] = "spell_shadow_raisedead", + ["Hex of Jammal'an"] = "spell_totem_wardofdraining", + ["Atal'ai Skeleton Totem"] = "spell_shadow_raisedead", + ["Frailty"] = "spell_shadow_animatedead", + ["Hukku's Guardians"] = "spell_shadow_summonvoidwalker", + ["Wing Flap"] = "spell_nature_earthbind", + ["Deep Slumber"] = "spell_shadow_cripple", + ["Putrid Stench"] = "spell_shadow_callofbone", + ["Jadefire"] = "spell_fire_sealoffire", + ["Curse of the Deadwood"] = "spell_shadow_gathershadows", + ["Haste Aura"] = "spell_holy_fistofjustice", + ["Dire Growl"] = "ability_racial_cannibalize", + ["Summon Spawn of Bael'Gar"] = "spell_fire_lavaspawn", + ["Seal of Sacrifice"] = "spell_holy_sealofsacrifice", + ["Rebuild"] = "spell_shadow_lifedrain", + ["Flaying Vine"] = "ability_warrior_cleave", + ["Tunneler Acid"] = "spell_nature_acid_01", + ["Molten Blast"] = "spell_fire_fire", + ["Resist Fire"] = "spell_fire_firearmor", + ["Scarshield Portal"] = "spell_arcane_teleportorgrimmar", + ["Cleave Armor"] = "ability_warrior_savageblow", + ["Fury of Ragnaros"] = "spell_holy_mindsooth", + ["Nagmara's Vanish"] = "temp", + ["Enveloping Web"] = "spell_nature_earthbind", + ["Explosive Shot"] = "spell_fire_fireball02", + ["Drink Healing Potion"] = "spell_holy_heal", + ["Throw Wrench"] = "inv_misc_wrench_01", + ["Avatar of Flame"] = "spell_fire_firebolt", + ["Head Smash"] = "ability_devour", + ["Fiery Burst"] = "spell_fire_firebolt", + ["Flamecrack"] = "spell_fire_fire", + ["Moonflare Totem"] = "spell_fire_sealoffire", + ["Moonflare"] = "spell_arcane_starfire", + ["Festering Rash"] = "spell_nature_nullifydisease", + ["Flame Buffet Totem"] = "spell_fire_searingtotem", + ["Superior Healing Ward Passive"] = "spell_holy_restoration", + ["Ice Blast"] = "spell_frost_freezingbreath", + ["Flames of the Black Flight"] = "spell_fire_sealoffire", + ["Curse of the Firebrand"] = "ability_creature_cursed_03", + ["Crystallize"] = "spell_shadow_teleport", + ["Cadaver Worms"] = "spell_shadow_requiem", + ["Empower Will"] = "ability_warrior_battleshout", + ["Mana Tide"] = "spell_holy_stoicism", + ["Debilitating Touch"] = "spell_shadow_fingerofdeath", + ["Haunting Phantoms"] = "spell_shadow_blackplague", + ["Maggot Slime"] = "spell_shadow_creepingplague", + ["Ghoul Plague"] = "spell_holy_harmundeadaura", + ["Mother's Milk"] = "ability_creature_poison_02", + ["Web Explosion"] = "ability_ensnare", + ["Stun Bomb"] = "spell_fire_selfdestruct", + ["Toxic Bolt"] = "spell_nature_corrosivebreath", + ["Tainted Mind"] = "spell_shadow_shadowpact", + ["Charged Arcane Bolt"] = "spell_arcane_starfire", + ["Piercing Screech"] = "spell_shadow_unsummonbuilding", + ["Summon Zombie"] = "spell_shadow_raisedead", + ["Add Lightning Dam - Weap 03"] = "temp", + ["Mend Dragon"] = "spell_shadow_lifedrain", + ["Flamebreak"] = "spell_holy_excorcism_02", + ["Draining Blow"] = "spell_shadow_chilltouch", + ["Enchanting Lullaby"] = "spell_shadow_soothingkiss", + ["Flash Freeze"] = "spell_frost_frostnova", + ["Bone Shards"] = "spell_shadow_scourgebuild", + ["Decay"] = "spell_shadow_contagion", + ["Shadow Barrier"] = "spell_shadow_antishadow", + ["Summon Scarlet Hound"] = "ability_hunter_pet_wolf", + ["Fatal Sting"] = "spell_nature_corrosivebreath", + ["Resist Arcane"] = "spell_arcane_blink", + ["Seal of Protection"] = "spell_holy_sealofprotection", + ["Maggot Goo"] = "ability_creature_poison_02", + ["Scald"] = "spell_fire_fireball", + ["Crusader's Hammer"] = "spell_holy_sealofmight", + ["Bone Smelt"] = "spell_shadow_raisedead", + ["Hand of Thaurissan"] = "spell_fire_fireball", + ["Corpse Explosion"] = "spell_shadow_corpseexplode", + ["Summon Risen Lackey"] = "spell_shadow_raisedead", + ["Altered Cauldron Toxin"] = "spell_holy_excorcism_02", + ["Diseased Spit"] = "spell_shadow_creepingplague", + ["Earthborer Acid"] = "spell_nature_acid_01", + ["Kirtonos Gargoyle Passive"] = "inv_shield_04", + ["Call Bloodshot"] = "ability_druid_rake", + ["Dark Plague"] = "spell_nature_nullifydisease", + ["Incapacitating Shout"] = "ability_warrior_warcry", + ["Dismounting Shot"] = "spell_shadow_teleport", + ["Dismounting Blast"] = "spell_shadow_teleport", + ["Curse of the Darkmaster"] = "spell_shadow_antishadow", + ["Holy Cleave"] = "ability_warrior_cleave", + ["Frost"] = "spell_frost_frostshock", + ["Summon Lava Spawn"] = "spell_shadow_sealofkings", + ["Magic Grounding"] = "spell_holy_sealofsalvation", + ["Inspire"] = "ability_warrior_battleshout", + ["Flame Spear"] = "ability_throw", + ["Calm Dragonkin"] = "spell_nature_invisibilitytotem", + ["Destroy Egg"] = "inv_misc_monsterclaw_02", + ["Fatal Bite"] = "ability_backstab", + ["Magma Blast"] = "spell_fire_flameshock", + ["Magic Reflection"] = "spell_frost_frostshock", + ["Aegis of Ragnaros"] = "spell_shadow_antishadow", + ["Corrosive Venom Spit"] = "spell_nature_corrosivebreath", + ["Sleepwalk"] = "spell_shadow_detectinvisibility", + ["Dominate Mind"] = "spell_shadow_shadowworddominate", + ["Summon Karang's Banner Aura"] = "temp", + ["Damage Shield"] = "spell_shadow_antishadow", + ["Putrid Breath"] = "spell_holy_harmundeadaura", + ["Manastorm"] = "spell_frost_icestorm", + ["Intense Heat"] = "spell_fire_fire", + ["Goblin Land Mine"] = "spell_shadow_metamorphosis", + ["Thorn Volley"] = "spell_nature_natureswrath", + ["Aqua Jet"] = "spell_frost_chillingblast", + ["Twisted Tranquility"] = "spell_nature_tranquility", + ["Repulsive Gaze"] = "ability_golemthunderclap", + ["Corrupt Forces of Nature"] = "spell_nature_forceofnature", + ["Chaotic Focus"] = "spell_fire_sealoffire", + ["Riptide"] = "ability_warrior_disarm", + ["Submersion"] = "spell_shadow_demonbreath", + ["Massive Geyser"] = "spell_frost_summonwaterelemental", + ["Water"] = "spell_frost_summonwaterelemental", + ["Aura of Flames"] = "spell_fire_fire", + ["Commanding Shout"] = "ability_warrior_rallyingcry", + ["Intense Pain"] = "spell_shadow_shadowwordpain", + ["Ice Nova"] = "spell_frost_frostnova", + ["Bruising Blow"] = "ability_rogue_kidneyshot", + ["Wither"] = "spell_nature_nullifydisease", + ["Harden Skin"] = "spell_nature_skinofearth", + ["Summon Hydroling"] = "spell_frost_chillingblast", + ["Booze Spit"] = "inv_drink_05", + ["Eye of Immol'thar"] = "spell_shadow_antimagicshell", + ["Grasping Vines"] = "ability_golemthunderclap", + ["Corrupted Stamina"] = "spell_holy_harmundeadaura", + ["Entropic Sting"] = "spell_nature_callstorm", + ["Demoralize"] = "ability_warrior_warcry", + ["Fool's Plight"] = "spell_magic_polymorphchicken", + ["Dragonbane"] = "ability_warrior_savageblow", + ["Cleanse Nova"] = "spell_holy_holybolt", + ["Powerful Healing Ward"] = "spell_holy_restoration", + ["Blood Funnel"] = "spell_shadow_lifedrain", + ["Wings of Despair"] = "spell_shadow_psychicscream", + ["Abomination Spit"] = "spell_nature_corrosivebreath", + ["Sweeping Slam"] = "ability_devour", + ["Grace of Air"] = "spell_nature_invisibilitytotem", + ["Arcane Eruption"] = "spell_arcane_portalironforge", + ["Energize"] = "spell_nature_cyclone", + ["Frenzy Aura"] = "spell_holy_fistofjustice", + ["Dispel"] = "spell_holy_dispelmagic", + ["Tranquil Air"] = "spell_nature_brilliance", + ["Itch"] = "spell_nature_naturetouchdecay", + ["Piercing Shriek"] = "spell_shadow_deathscream", + ["Burrow"] = "ability_vanish", + ["Summon Player"] = "inv_misc_head_human_02", + ["Shadow Mark"] = "spell_shadow_shadowward", + ["Spit"] = "spell_nature_corrosivebreath", + ["Flash"] = "spell_nature_lightningbolt", + ["Static Field"] = "spell_shadow_spectralsight", + ["Scourge Strike"] = "spell_lightning_lightningbolt01", + ["Ball Lightning"] = "spell_lightning_lightningbolt01", + ["Veil of Darkness"] = "spell_shadow_gathershadows", + ["Aura of Agony"] = "spell_shadow_curseofsargeras", + ["Poison Charge"] = "spell_nature_corrosivebreath", + ["Spider Web"] = "spell_nature_earthbind", + ["Blood Tap"] = "spell_shadow_lifedrain", + ["Chill"] = "spell_frost_icestorm", + ["Mark of Korth'azz"] = "spell_shadow_metamorphosis", + ["Web Spray"] = "ability_ensnare", + ["Decrepit Fever"] = "ability_creature_disease_03", + ["Poison Spray"] = "spell_nature_corrosivebreath", + ["Putrid Bite"] = "ability_creature_disease_03", + ["Slime Bolt"] = "spell_nature_corrosivebreath", + ["Eye Beam"] = "spell_nature_callstorm", + ["Ground Rupture"] = "spell_nature_earthquake", + ["Poison Cloud"] = "spell_nature_naturetouchdecay", + ["Gift of Arthas"] = "inv_misc_herb_14", + ["Dust Cloud"] = "ability_hibernation", + ["Nature Protection "] = "inv_potion_127", + ["Dark Glare"] = "spell_shadow_shadowbolt", + ["Spit Out"] = "spell_nature_drowsy", + ["Weak Poison"] = "spell_nature_corrosivebreath", + ["Sapta Sight"] = "ability_cheapshot", + ["Spirit"] = "spell_shadow_burningspirit", + ["Flametongue Attack"] = "spell_fire_flametounge", + ["Whipper Root Tuber"] = "temp", + ["Strength"] = "spell_nature_strength", + ["Earthbind"] = "spell_nature_strengthofearthtotem02", + ["Healing Stream"] = "inv_spear_04", + ["Tendon Rip"] = "ability_criticalstrike", + ["Blaze"] = "temp", + ["Throw Liquid Fire"] = "spell_fire_meteorstorm", + ["Digestive Acid"] = "ability_creature_disease_02", + ["Locust Swarm"] = "spell_nature_insectswarm", + ["Web Wrap"] = "spell_nature_web", + ["Mutating Injection"] = "spell_shadow_callofbone", + ["Terrifying Roar"] = "ability_devour", + ["Web"] = "ability_ensnare", + ["Black Sludge"] = "spell_shadow_callofbone", + ["Arcane Bolt"] = "spell_arcane_starfire", + ["Shock"] = "temp", + ["Hooked Net"] = "ability_ensnare", + ["Shadowbolt"] = "spell_lightning_lightningbolt01", + ["Blood Leech"] = "ability_racial_cannibalize", + ["Force Punch"] = "inv_gauntlets_31", + ["Lightning Cloud"] = "spell_nature_callstorm", + ["Thundercrash"] = "spell_nature_thunderclap", + ["Harsh Winds"] = "spell_nature_earthbind", + ["Stinger Spray"] = "inv_misc_monstertail_03", + ["Cloud of Disease"] = "spell_nature_abolishmagic", + ["Enveloping Winds"] = "spell_nature_cyclone", + ["Mark of Kazzak"] = "spell_shadow_antishadow", + ["King of the Gordok"] = "inv_crown_02", + ["Slip'kik's Savvy"] = "spell_holy_lesserheal02", + ["Major Healthstone"] = "inv_stone_04", + ["Intellect"] = "spell_holy_magicalsentry", + ["Tail Sweep"] = "inv_misc_monsterscales_05", + ["Wild Polymorph"] = "spell_nature_polymorph", + ["Silithyst"] = "spell_holiday_tow_spicecloud", + ["Torch"] = "ability_rogue_ambush", + ["Healing Potion"] = "inv_misc_herb_10", + ["Major Healing Potion"] = "inv_misc_herb_mountainsilversage", + ["Major Mana Potion"] = "inv_misc_herb_icecap", + ["Mana Potion"] = "inv_misc_herb_icecap", + ["Restore Mana"] = "inv_misc_herb_icecap", + ["Major Rejuvenation Potion"] = "inv_misc_herb_sansamroot", + ["Holy Strength"] = "spell_holy_blessingofstrength", + ["Earthstrike"] = "spell_nature_abolishmagic", + ["Rogue Armor Energize"] = "trade_engineering", + ["Relentless Strikes Effect"] = "ability_warrior_decisivestrike", + ["Net"] = "inv_misc_net_01", + ["Quick Shots"] = "ability_warrior_innerrage", + ["Dazed"] = "spell_frost_stun", + ["Volatile Infection"] = "spell_holy_harmundeadaura", + ["Corrosive Acid Spit"] = "spell_nature_acid_01", + ["Poison Mind"] = "spell_nature_corrosivebreath", + ["Knockdown"] = "ability_golemthunderclap", + ["Hand of Justice"] = "inv_jewelry_talisman_01", + ["AutoAttack"] = "inv_sword_39", + ["Lightning Strike"] = "spell_holy_mindvision", + ["Thunderfury"] = "spell_nature_cyclone", + ["Fatal Wound"] = "ability_backstab", + ["Life Steal"] = "trade_engineering", + ["Crystal Charge"] = "inv_misc_gem_opal_01", + ["Demonic Rune"] = "inv_misc_rune_04", + ["Poison"] = "spell_nature_corrosivebreath", + ["Berserker Charge"] = "ability_warrior_charge", + ["Elixir of the Mongoose"] = "inv_potion_32", + ["Greater Agility"] = "inv_potion_94", + ["Speed"] = "ability_kick", + ["Mol'dar's Moxie"] = "spell_nature_massteleport", + ["Freezing Trap Effect"] = "spell_frost_chainsofice", + ["Fengus' Ferocity"] = "spell_nature_undyingstrength", + ["Flame Lash"] = "spell_fire_flameblades", + ["Swiftness of Zanza"] = "inv_potion_31", + ["Spirit of Zandalar"] = "ability_creature_poison_05", + ["Strike of the Scorpok"] = "spell_nature_forceofnature", + ["Recently Bandaged"] = "inv_misc_bandage_08", + ["Fixate"] = "spell_shadow_charm", + ["Sayge's Dark Fortune of Damage"] = "inv_misc_orb_02", + ["Sleep"] = "spell_nature_sleep", + ["Venom Sting"] = "ability_poisonsting", + ["Draw Spirit"] = "spell_shadow_summoninfernal", + ["Corrosive Acid Breath"] = "spell_nature_acid_01", + ["Greater Arcane Elixir"] = "inv_potion_25", + ["Rallying Cry of the Dragonslayer"] = "inv_misc_head_dragon_01", + ["Winterfall Firewater"] = "inv_potion_92", + ["Restore Energy"] = "inv_drink_milk_05", + ["Rumsey Rum Black Label"] = "inv_drink_04", + ["Mighty Rage"] = "ability_warrior_innerrage", + ["Withering Heat"] = "spell_fire_fire", + ["Ancient Dread"] = "spell_shadow_curseoftounges", + ["Ignite Mana"] = "spell_fire_incinerate", + ["Ground Stomp"] = "ability_warstomp", + ["Lucifron's Curse"] = "spell_shadow_blackplague", + ["Hand of Ragnaros"] = "spell_fire_fireball", + ["Incite Flames"] = "spell_fire_flameblades", + ["Magma Shackles"] = "spell_nature_earthbind", + ["Melt Armor"] = "spell_fire_immolation", + ["Serrated Bite"] = "ability_gouge", + ["Rage of Ages"] = "spell_nature_strength", + ["Ancient Hysteria"] = "spell_shadow_unholyfrenzy", + ["Shazzrah's Curse"] = "spell_shadow_antishadow", + ["Fist of Ragnaros"] = "spell_holy_sealofwrath", + ["Magma Spit"] = "spell_fire_immolation", + ["Pyroclast Barrage"] = "spell_fire_fireball02", + ["Gehennas' Curse"] = "spell_shadow_gathershadows", + ["Impending Doom"] = "spell_shadow_nightofthedead", + ["Health II"] = "inv_potion_43", + ["Battle Squawk"] = "inv_misc_birdbeck_01", + ["Noggenfogger Elixir"] = "inv_potion_83", + ["Elixir of Brute Force"] = "inv_potion_59", + ["Diamond Flask"] = "inv_drink_01", + ["Conflagration"] = "spell_fire_incinerate", + ["Living Bomb"] = "inv_enchant_essenceastralsmall", + ["Songflower Serenade"] = "spell_holy_mindvision", + ["Free Action"] = "inv_potion_04", + ["Panic"] = "spell_shadow_deathscream", + ["Increased Agility"] = "inv_gauntlets_19", + ["Fire Protection"] = "spell_fire_firearmor", + ["Magma Splash"] = "spell_fire_immolation", + ["Bloodfang"] = "spell_shadow_lifedrain", + ["Furbolg Form"] = "inv_misc_monsterclaw_04", + ["Elemental Fire"] = "spell_fire_fire", + ["Elixir of the Giants"] = "inv_potion_61", + ["Crystal Spire"] = "inv_misc_gem_stone_01", + ["Sanctuary"] = "spell_fire_sealoffire", + ["Warrior's Wrath"] = "ability_warrior_savageblow", + ["Soul Burn"] = "spell_fire_soulburn", + ["Agility"] = "inv_scroll_02", + ["Crystal Ward"] = "inv_misc_gem_ruby_02", + ["Mind Quickening"] = "spell_nature_wispheal", + ["Feed Pet Effect"] = "ability_hunter_beasttraining", + ["Faerie Fire (Feral)"] = "spell_nature_faeriefire", + ["Shadow Vulnerability"] = "spell_shadow_blackplague", + ["Expose Weakness"] = "ability_hunter_snipershot", + ["Frost Power"] = "inv_potion_03", + ["Ephemeral Power"] = "spell_holy_mindvision", + ["Unstable Power"] = "spell_lightning_lightningbolt01", + ["Netherwind Focus"] = "spell_shadow_teleport", + ["Forbearance"] = "spell_holy_removecurse", + ["Supreme Power"] = "inv_potion_41", + ["Gordok Green Grog"] = "inv_drink_03", + ["Spirit of Boar"] = "spell_nature_purge", + ["Armor"] = "inv_scroll_07", + ["Touch of Shadow"] = "spell_shadow_psychicscream", + ["Invulnerability"] = "spell_holy_divineintervention", + ["Shadow Power"] = "inv_potion_46", + ["Infallible Mind"] = "spell_ice_lament", + ["Aura of the Blue Dragon"] = "spell_shadow_siphonmana", + ["Force Reactive Disk"] = "spell_lightning_lightningbolt01", + ["Eruption"] = "spell_fire_fire", + ["Lava Burst"] = "spell_fire_volcano", + ["Wrath of Ragnaros"] = "spell_fire_soulburn", + ["Fire Blossom"] = "spell_fire_incinerate", + ["Earthquake"] = "spell_nature_earthquake", + ["Surge"] = "ability_warrior_charge", + ["Cone of Fire"] = "spell_fire_windsofwoe", + ["Lava Breath"] = "spell_fire_windsofwoe", + ["Shadow Shock"] = "spell_shadow_shadowbolt", + ["Lava"] = "spell_fire_fire", + ["Falling"] = "spell_magic_featherfall", + ["Smash"] = "ability_thunderbolt", + ["Fire Nova"] = "spell_fire_sealoffire", + ["Gift of Life"] = "inv_misc_gem_pearl_05", + ["Berserk"] = "spell_shadow_unholyfrenzy", + ["Veil of Shadow"] = "spell_shadow_gathershadows", + ["Essence of the Red"] = "spell_fire_lavaspawn", + ["Growing Flames"] = "spell_fire_fire", + ["Brood Affliction: Blue"] = "inv_misc_head_dragon_blue", + ["Brood Affliction: Black"] = "inv_misc_head_dragon_black", + ["Brood Affliction: Green"] = "inv_misc_head_dragon_green", + ["Brood Affliction: Red"] = "inv_misc_head_dragon_01", + ["Brood Affliction: Bronze"] = "inv_misc_head_dragon_bronze", + ["Brood Power: Green"] = "spell_nature_astralrecal", + ["Brood Power: Red"] = "spell_fire_fire", + ["Brood Power: Blue"] = "spell_nature_astralrecal", + ["Burning Adrenaline"] = "inv_gauntlets_03", + ["Suppression Aura"] = "spell_fire_windsofwoe", + ["Flame Breath"] = "spell_fire_fire", + ["Bottle of Poison"] = "spell_nature_corrosivebreath", + ["Shadow of Ebonroc"] = "spell_shadow_gathershadows", + ["Flame Buffet"] = "spell_fire_fireball", + ["Thunderclap"] = "spell_nature_thunderclap", + ["Bonereaver's Edge"] = "spell_shadow_curseofsargeras", + ["Tail Lash"] = "ability_criticalstrike", + ["Dropped Weapon"] = "ability_warrior_disarm", + ["Bellowing Roar"] = "spell_shadow_charm", + ["Greater Polymorph"] = "spell_nature_polymorph", + ["Resistance"] = "inv_potion_16", + ["Restoration"] = "inv_potion_01", + ["Ignite Flesh"] = "spell_fire_fire", + ["Thorium Shield Spike"] = "inv_misc_armorkit_20", + ["Flask of the Titans"] = "inv_potion_62", + ["Corrupted Healing"] = "spell_shadow_charm", + ["Flip Out"] = "ability_rogue_disguise", + ["Inferno Effect"] = "spell_frost_stun", + ["Time Lapse"] = "spell_arcane_portalorgrimmar", + ["Frost Trap Aura"] = "spell_frost_frostnova", + ["Thorium Grenade"] = "inv_misc_bomb_08", + ["Increased Stamina"] = "inv_boots_plate_03", + ["Elixir of the Sages"] = "inv_potion_29", + ["Mana Regeneration"] = "inv_potion_45", + ["Kreeg's Stout Beatdown"] = "inv_drink_05", + ["Distilled Wisdom"] = "inv_potion_97", + ["Mark of Detonation"] = "spell_fire_selfdestruct", + ["Shadow Command"] = "spell_shadow_unholyfrenzy", + ["Burning Wish"] = "spell_shadow_psychicscream", + ["Shadow Protection"] = "spell_shadow_ragingscream", + ["Shadow Protection "] = "spell_shadow_ragingscream", + ["Spirit of Zanza"] = "inv_potion_30", + ["Reactive Fade"] = "spell_magic_lesserinvisibilty", + ["Second Wind"] = "inv_jewelry_talisman_06", + ["Siphon Blessing"] = "spell_shadow_charm", + ["Stratholme Holy Water"] = "inv_potion_75", + ["Zulian Slice"] = "trade_engineering", + ["Shadow Flame"] = "spell_fire_incinerate", + ["Brood Power: Black"] = "spell_fire_fire", + ["Bomb"] = "spell_fire_selfdestruct", + ["Knock Away"] = "inv_gauntlets_05", + ["Strike"] = "ability_rogue_ambush", + ["Wing Buffet"] = "inv_misc_monsterscales_14", + ["Fireball Volley"] = "spell_fire_flamebolt", + ["Shadow Bolt Volley"] = "spell_shadow_shadowbolt", + ["Immolation"] = "spell_shadow_summoninfernal", + ["Exploit Weakness"] = "ability_backstab", + ["Meteor"] = "spell_fire_fireball02", + ["Shadow Storm"] = "spell_shadow_shadowbolt", + ["Plague Effect"] = "spell_shadow_curseoftounges", + ["Explode"] = "spell_fire_sealoffire", + ["Poison Bolt Volley"] = "spell_nature_corrosivebreath", + ["Poison Shock"] = "spell_nature_acid_01", + ["Noxious Poison"] = "spell_nature_corrosivebreath", + ["Toxic Volley"] = "spell_nature_corrosivebreath", + ["Uppercut"] = "inv_gauntlets_05", + ["Unbalancing Strike"] = "ability_warrior_decisivestrike", + ["Trample"] = "spell_nature_natureswrath", + ["Poison Bolt"] = "spell_nature_corrosivebreath", + ["Stinger Charge"] = "ability_warrior_charge", + ["Debilitating Charge"] = "ability_warrior_charge", + ["Acid Spit"] = "spell_nature_corrosivebreath", + ["Pierce Armor"] = "spell_shadow_vampiricaura", + ["Knockback"] = "ability_kick", + ["Toxin"] = "spell_nature_corrosivebreath", + ["Head Butt"] = "inv_gauntlets_05", + ["Toxic Vapors"] = "spell_nature_corrosivebreath", + ["Spell Vulnerability"] = "spell_holy_elunesgrace", + ["Cenarion Favor"] = "spell_nature_rockbiter", + ["Nature Protection"] = "inv_potion_06", + ["Ancestral Fortitude"] = "spell_nature_undyingstrength", + ["Greater Stoneshield"] = "inv_potion_69", + ["Healing Way"] = "Spell_nature_healingway", + ["Mortal Wound"] = "ability_criticalstrike", + ["Entangle"] = "spell_nature_stranglevines", + ["True Fulfillment"] = "spell_shadow_charm", + ["Plague"] = "spell_shadow_shadowbolt", + ["Stunning Blow"] = "spell_holy_dizzy", + ["Ascendance"] = "spell_lightning_lightningbolt01", + ["Arcane Shroud"] = "spell_magic_lesserinvisibilty", + ["Greater Armor"] = "inv_potion_86", + ["Arcane Elixir"] = "inv_potion_30", + ["Greater Firepower"] = "inv_potion_60", + ["Arcane Protection"] = "inv_potion_83", + ["Warchief's Blessing"] = "spell_arcane_teleportorgrimmar", + ["Yaaarrrr"] = "ability_rogue_disguise", + ["Frost Protection"] = "spell_frost_frostarmor02", + ["Nature Protection"] = "inv_potion_06", + ["Shadow Protection"] = "inv_potion_44", + ["Holy Protection"] = "inv_potion_09", + ["Juju Flurry"] = "inv_misc_monsterscales_17", + ["Chromatic Infusion"] = "spell_holy_mindvision", + ["Brittle Armor"] = "spell_shadow_grimward", + ["Zandalarian Hero Medallion"] = "inv_jewelry_necklace_13", + ["Essence of Sapphiron"] = "inv_trinket_naxxramas06", + ["Rogue Armor Energize Effect"] = "trade_engineering", + ["Lava Bomb"] = "spell_fire_selfdestruct", + ["Corrosive Acid"] = "spell_nature_acid_01", + ["Frost Burn"] = "spell_frost_chillingblast", + ["Polymorph: Chicken"] = "spell_magic_polymorphchicken", + ["Polymorph: Cow"] = "spell_nature_polymorph", + ["Polymorph: Sheep"] = "spell_nature_polymorph", + ["Magic Dust"] = "inv_misc_dust_02", + ["Involuntary Transformation"] = "spell_shadow_charm", + ["Cauterizing Flames"] = "spell_fire_volcano", + ["Poisonous Blood"] = "spell_nature_regenerate", + ["Venom Spit"] = "spell_nature_corrosivebreath", + ["Delusions of Jin'do"] = "spell_shadow_unholyfrenzy", + ["Intimidating Roar"] = "ability_golemthunderclap", + ["Poison Cloud"] = "spell_nature_abolishmagic", + ["Hex"] = "spell_shaman_hex", + ["Enveloping Webs"] = "spell_nature_earthbind", + ["Will of Hakkar"] = "spell_shadow_shadowworddominate", + ["Brain Wash"] = "spell_shadow_shadowworddominate", + ["Whirling Trip"] = "inv_spear_05", + ["Threatening Gaze"] = "spell_shadow_charm", + ["Corrupted Blood"] = "spell_shadow_corpseexplode", + ["Cause Insanity"] = "spell_shadow_shadowworddominate", + ["Mark of Arlokk"] = "ability_hunter_snipershot", + ["Corrosive Poison"] = "spell_nature_corrosivebreath", + ["Blood Siphon"] = "spell_shadow_lifedrain", + ["Axe Flurry"] = "inv_axe_06", + ["Sonic Burst"] = "spell_shadow_teleport", + ["Fall down"] = "spell_magic_featherfall", + ["Curse of Blood"] = "spell_shadow_ritualofsacrifice", + ["Shrink"] = "spell_shadow_antishadow", + ["Parasitic Serpent"] = "inv_misc_monsterhead_03", + ["Soul Tap"] = "trade_engineering", + ["Slowing Poison"] = "spell_nature_slowpoison", + ["Web Spin"] = "spell_nature_earthbind", + ["Infected Bite"] = "spell_shadow_callofbone", + ["Tranquilizing Poison"] = "ability_creature_poison_03", + ["Intoxicating Venom"] = "ability_creature_poison_01", + ["Ancient Despair"] = "spell_shadow_mindsteal", + ["Sand Trap"] = "inv_misc_dust_02", + ["Hive'Zara Catalyst"] = "ability_creature_poison_02", + ["Creeping Plague"] = "spell_nature_bloodlust", + ["Sundering Cleave"] = "ability_warrior_sunder", + ["Consume"] = "spell_nature_drowsy", + ["Dreamless Sleep"] = "spell_nature_sleep", + ["Chromatic Mutation"] = "spell_shadow_metamorphosis", + ["Brood Power: Bronze"] = "spell_nature_astralrecal", + ["Brain Damage"] = "ability_gouge", + ["Night Dragon's Breath"] = "trade_engineering", + ["Aura of Command"] = "inv_banner_03", + ["Persistent Shield"] = "inv_misc_ahnqirajtrinket_06", + ["Stormcaller's Wrath"] = "spell_nature_starfall", + ["Swiftmend"] = "inv_relics_idolofrejuvenation", + ["Felstriker"] = "ability_backstab", + ["Fury of Forgewright"] = "spell_fire_incinerate", + ["Primal Blessing"] = "ability_hunter_harass", + ["Spinal Reaper"] = "spell_holy_holybolt", + ["Untamed Fury"] = "spell_nature_bloodlust", + ["The Eye of Diminution"] = "spell_magic_lesserinvisibilty", + ["Kiss of the Spider"] = "inv_trinket_naxxramas04", + ["Glyph of Deflection"] = "inv_trinket_naxxramas05", + ["The Eye of the Dead"] = "inv_trinket_naxxramas01", + ["Slayer's Crest"] = "inv_trinket_naxxramas03", + ["Badge of the Swarmguard"] = "inv_misc_ahnqirajtrinket_04", + ["Jom Gabbar"] = "inv_misc_enggizmos_19", + ["The Burrower's Shell"] = "spell_holy_devotionaura", + ["Thrash"] = "ability_warrior_punishingblow", + ["Invigorate"] = "spell_holy_greaterheal", + ["Head Rush"] = "spell_nature_groundingtotem", + ["Venomous Totem"] = "spell_totem_wardofdraining", + ["Enigma Resist Bonus"] = "inv_helmet_06", + ["Enigma Blizzard Bonus"] = "inv_helmet_06", + ["Adaptive Warding"] = "inv_bracer_13", + ["Not There"] = "temp", + ["Oracle Healing Bonus"] = "inv_shoulder_03", + ["Epiphany"] = "temp", + ["Aegis of Preservation"] = "spell_holy_blessingofprotection", + ["Symbols of Unending Life Finisher Bonus"] = "trade_engineering", + ["Metamorphosis Rune"] = "inv_misc_rune_06", + ["Battlegear of Eternal Justice"] = "spell_holy_righteousnessaura", + ["Blinding Light"] = "spell_holy_searinglight", + ["Nature Aligned"] = "spell_nature_spiritarmor", + ["Vampirism"] = "spell_holy_lesserheal02", + ["Cheat Death"] = "ability_rogue_cheatdeath", + ["Arcane Infused"] = "spell_nature_wispsplode", + ["Decapitate"] = "temp", + ["Gutgore Ripper"] = "spell_shadow_shadowbolt", + ["Chilled"] = "spell_frost_wisp", + ["Glimpse of Madness"] = "spell_shadow_mindsteal", + ["Engulfing Shadows"] = "spell_shadow_lifedrain02", + ["Elemental Vulnerability"] = "temp", + ["Revealed Flaw"] = "ability_warrior_decisivestrike", + ["Totemic Power"] = "temp", + ["Electric Discharge"] = "spell_lightning_lightningbolt01", + ["Stygian Grasp"] = "spell_shadow_blackplague", + ["Living Free Action"] = "inv_potion_07", + ["Devilsaur Fury"] = "ability_hunter_pet_raptor", + ["Windfury Weapon"] = "spell_nature_cyclone", + ["Great Rage"] = "ability_warrior_warcry", + ["Aura of Protection"] = "spell_holy_devotionaura", + ["Damage Absorb"] = "inv_jewelry_talisman_05", + ["Physical Protection"] = "spell_holy_devotionaura", + ["Harm Prevention Belt"] = "spell_holy_powerwordshield", + ["Rage"] = "spell_shadow_unholyfrenzy", + ["Chromatic Protection: Fire"] = "inv_ore_arcanite_01", + ["Chromatic Protection: Frost"] = "inv_ore_arcanite_01", + ["Chromatic Protection: Nature"] = "inv_ore_arcanite_01", + ["Freeze"] = "temp", + ["Shield Charge"] = "ability_warrior_charge", + + -- Original Icons + ["Abolish Disease"] = "Spell_Nature_NullifyDisease", + ["Abolish Poison Effect"] = "Spell_Nature_NullifyPoison_02", + ["Abolish Poison"] = "Spell_Nature_NullifyPoison_02", + ["Activate MG Turret"] = "INV_Weapon_Rifle_10", + ["Adrenaline Rush"] = "Spell_Shadow_ShadowWordDominate", + ["Aftermath"] = "Spell_Fire_Fire", + ["Aggression"] = "Ability_Racial_Avatar", + ["Aimed Shot"] = "INV_Spear_07", + ["Alchemy"] = "Trade_Alchemy", + ["Ambush"] = "Ability_Rogue_Ambush", + ["Amplify Curse"] = "Spell_Shadow_Contagion", + ["Amplify Magic"] = "Spell_Holy_FlashHeal", + ["Ancestral Healing"] = "Spell_Nature_UndyingStrength", + ["Ancestral Knowledge"] = "Spell_Shadow_GrimWard", + ["Ancestral Spirit"] = "Spell_Nature_Regenerate", + ["Anger Management"] = "Spell_Holy_BlessingOfStamina", + ["Anticipation"] = "Spell_Nature_MirrorImage", + ["Aquatic Form"] = "Ability_Druid_AquaticForm", + ["Arcane Brilliance"] = "Spell_Holy_ArcaneIntellect", + ["Arcane Concentration"] = "Spell_Shadow_ManaBurn", + ["Arcane Explosion"] = "Spell_Nature_WispSplode", + ["Arcane Focus"] = "Spell_Holy_Devotion", + ["Arcane Instability"] = "Spell_Shadow_Teleport", + ["Arcane Intellect"] = "Spell_Holy_MagicalSentry", + ["Arcane Meditation"] = "Spell_Shadow_SiphonMana", + ["Arcane Mind"] = "Spell_Shadow_Charm", + ["Arcane Missiles"] = "Spell_Nature_StarFall", + ["Arcane Power"] = "Spell_Nature_Lightning", + ["Arcane Resistance"] = "Spell_Nature_StarFall", + ["Arcane Shot"] = "Ability_ImpalingBolt", + ["Arcane Subtlety"] = "Spell_Holy_DispelMagic", + ["Arctic Reach"] = "Spell_Shadow_DarkRitual", + ["Aspect of the Beast"] = "Ability_Mount_PinkTiger", + ["Aspect of the Cheetah"] = "Ability_Mount_JungleTiger", + ["Aspect of the Hawk"] = "Spell_Nature_RavenForm", + ["Aspect of the Monkey"] = "Ability_Hunter_AspectOfTheMonkey", + ["Aspect of the Pack"] = "Ability_Mount_WhiteTiger", + ["Aspect of the Wild"] = "Spell_Nature_ProtectionformNature", + ["Astral Recall"] = "Spell_Nature_AstralRecal", + ["Attack"] = "Temp", + ["Attacking"] = "Temp", + ["Auto Shot"] = "Ability_Whirlwind", + ["Axe Specialization"] = "INV_Axe_06", + ["Backstab"] = "Ability_BackStab", + ["Bane"] = "Spell_Shadow_DeathPact", + ["Banish"] = "Spell_Shadow_Cripple", + ["Barkskin Effect"] = "Spell_Nature_StoneClawTotem", + ["Barkskin"] = "Spell_Nature_StoneClawTotem", + ["Barrage"] = "Ability_UpgradeMoonGlaive", + ["Bash"] = "Ability_Druid_Bash", + ["Basic Campfire"] = "Spell_Fire_Fire", + ["Battle Shout"] = "Ability_Warrior_BattleShout", + ["Battle Stance Passive"] = "Ability_Warrior_OffensiveStance", + ["Battle Stance"] = "Ability_Warrior_OffensiveStance", + ["Bear Form"] = "Ability_Racial_BearForm", + ["Beast Lore"] = "Ability_Physical_Taunt", + ["Beast Slaying"] = "INV_Misc_Pelt_Bear_Ruin_02", + ["Beast Training"] = "Ability_Hunter_BeastCall02", + ["Benediction"] = "Spell_Frost_WindWalkOn", + ["Berserker Rage"] = "Spell_Nature_AncestralGuardian", + ["Berserker Stance Passive"] = "Ability_Racial_Avatar", + ["Berserker Stance"] = "Ability_Racial_Avatar", + ["Berserking"] = "Racial_Troll_Berserk", + ["Bestial Discipline"] = "Spell_Nature_AbolishMagic", + ["Bestial Swiftness"] = "Ability_Druid_Dash", + ["Bestial Wrath"] = "Ability_Druid_FerociousBite", + ["Bite"] = "Ability_Racial_Cannibalize", + ["Black Arrow"] = "Ability_TheBlackArrow", + ["Blackout"] = "Spell_Shadow_GatherShadows", + ["Blacksmithing"] = "Trade_BlackSmithing", + ["Blade Flurry"] = "Ability_Warrior_PunishingBlow", + ["Blast Wave"] = "Spell_Holy_Excorcism_02", + ["Blessed Recovery"] = "Spell_Holy_BlessedRecovery", + ["Blessing of Freedom"] = "Spell_Holy_SealOfValor", + ["Blessing of Kings"] = "Spell_Magic_MageArmor", + ["Blessing of Light"] = "Spell_Holy_PrayerOfHealing02", + ["Blessing of Might"] = "Spell_Holy_FistOfJustice", + ["Blessing of Protection"] = "Spell_Holy_SealOfProtection", + ["Blessing of Sacrifice"] = "Spell_Holy_SealOfSacrifice", + ["Blessing of Salvation"] = "Spell_Holy_SealOfSalvation", + ["Blessing of Sanctuary"] = "Spell_Nature_LightningShield", + ["Blessing of Wisdom"] = "Spell_Holy_SealOfWisdom", + ["Blind"] = "Spell_Shadow_MindSteal", + ["Blinding Powder"] = "INV_Misc_Ammo_Gunpowder_02", + ["Blink"] = "Spell_Arcane_Blink", + ["Blizzard"] = "Spell_Frost_IceStorm", + ["Block"] = "Ability_Defend", + ["Blood Craze"] = "Spell_Shadow_SummonImp", + ["Blood Frenzy"] = "Ability_GhoulFrenzy", + ["Blood Fury"] = "Racial_Orc_BerserkerStrength", + ["Blood Pact"] = "Spell_Shadow_BloodBoil", + ["Bloodrage"] = "Ability_Racial_BloodRage", + ["Bloodthirst"] = "Spell_Nature_BloodLust", + ["Booming Voice"] = "Spell_Nature_Purge", + ["Bow Specialization"] = "INV_Weapon_Bow_12", + ["Bows"] = "INV_Weapon_Bow_05", + ["Bright Campfire"] = "Spell_Fire_Fire", + ["Brutal Impact"] = "Ability_Druid_Bash", + ["Burning Soul"] = "Spell_Fire_Fire", + ["Call Pet"] = "Ability_Hunter_BeastCall", + ["Call of Flame"] = "Spell_Fire_Immolation", + ["Call of Thunder"] = "Spell_Nature_CallStorm", + ["Camouflage"] = "Ability_Stealth", + ["Cannibalize"] = "Ability_Racial_Cannibalize", + ["Cat Form"] = "Ability_Druid_CatForm", + ["Cataclysm"] = "Spell_Fire_WindsofWoe", + ["Chain Heal"] = "Spell_Nature_HealingWaveGreater", + ["Chain Lightning"] = "Spell_Nature_ChainLightning", + ["Challenging Roar"] = "Ability_Druid_ChallangingRoar", + ["Challenging Shout"] = "Ability_BullRush", + ["Charge Rage Bonus Effect"] = "Ability_Warrior_Charge", + ["Charge"] = "Ability_Warrior_Charge", + ["Charge Stun"] = "Ability_Warrior_Charge", + ["Cheap Shot"] = "Ability_CheapShot", + ["Chilled"] = "Spell_Frost_IceStorm", + ["Claw"] = "Ability_Druid_Rake", + ["Cleanse"] = "Spell_Holy_Renew", + ["Clearcasting"] = "Spell_Shadow_ManaBurn", + ["Cleave"] = "Ability_Warrior_Cleave", + ["Clever Traps"] = "Spell_Nature_TimeStop", + ["Closing"] = "Temp", + ["Cloth"] = "INV_Chest_Cloth_21", + ["Cobra Reflexes"] = "Spell_Nature_GuardianWard", + ["Cold Blood"] = "Spell_Ice_Lament", + ["Cold Snap"] = "Spell_Frost_WizardMark", + ["Combat Endurance"] = "Spell_Nature_AncestralGuardian", + ["Combustion"] = "Spell_Fire_SealOfFire", + ["Command"] = "Ability_Warrior_WarCry", + ["Concentration Aura"] = "Spell_Holy_MindSooth", + ["Concussion Blow"] = "Ability_ThunderBolt", + ["Concussion"] = "Spell_Fire_Fireball", + ["Concussive Shot"] = "Spell_Frost_Stun", + ["Cone of Cold"] = "Spell_Frost_Glacier", + ["Conflagrate"] = "Spell_Fire_Fireball", + ["Conjure Food"] = "INV_Misc_Food_10", + ["Conjure Mana Agate"] = "INV_Misc_Gem_Emerald_01", + ["Conjure Mana Citrine"] = "INV_Misc_Gem_Opal_01", + ["Conjure Mana Jade"] = "INV_Misc_Gem_Emerald_02", + ["Conjure Mana Ruby"] = "INV_Misc_Gem_Ruby_01", + ["Conjure Water"] = "INV_Drink_06", + ["Consecration"] = "Spell_Holy_InnerFire", + ["Consume Shadows"] = "Spell_Shadow_AntiShadow", + ["Convection"] = "Spell_Nature_WispSplode", + ["Conviction"] = "Spell_Holy_RetributionAura", + ["Cooking"] = "INV_Misc_Food_15", + ["Corruption"] = "Spell_Shadow_AbominationExplosion", + ["Counterattack"] = "Ability_Warrior_Challange", + ["Counterspell"] = "Spell_Frost_IceShock", + ["Cower"] = "Ability_Druid_Cower", + ["Create Firestone (Lesser)"]="INV_Ammo_FireTar", + ["Create Firestone"]="INV_Ammo_FireTar", + ["Create Firestone (Greater)"]="INV_Ammo_FireTar", + ["Create Firestone (Major)"]="INV_Ammo_FireTar", + ["Create Healthstone (Minor)"]="INV_Stone_04", + ["Create Healthstone (Lesser)"]="INV_Stone_04", + ["Create Healthstone"]="INV_Stone_04", + ["Create Healthstone (Greater)"]="INV_Stone_04", + ["Create Healthstone (Major)"]="INV_Stone_04", + ["Create Soulstone (Minor)"]="Spell_Shadow_SoulGem", + ["Create Soulstone (Lesser)"]="Spell_Shadow_SoulGem", + ["Create Soulstone"]="Spell_Shadow_SoulGem", + ["Create Soulstone (Greater)"]="Spell_Shadow_SoulGem", + ["Create Soulstone (Major)"]="Spell_Shadow_SoulGem", + ["Create Spellstone"]="INV_Misc_Gem_Sapphire_01", + ["Create Spellstone (Greater)"]="INV_Misc_Gem_Sapphire_01", + ["Create Spellstone (Major)"]="INV_Misc_Gem_Sapphire_01", + ["Crippling Poison II"] = "Ability_PoisonSting", + ["Crippling Poison"] = "Ability_PoisonSting", + ["Critical Mass"] = "Spell_Nature_WispHeal", + ["Crossbows"] = "INV_Weapon_Crossbow_01", + ["Cruelty"] = "Ability_Rogue_Eviscerate", + ["Cultivation"] = "INV_Misc_Flower_01", + ["Cure Disease"] = "Spell_Holy_NullifyDisease", + ["Cure Poison"] = "Spell_Nature_NullifyPoison", + ["Curse of Agony"] = "Spell_Shadow_CurseOfSargeras", + ["Curse of Doom Effect"] = "Spell_Shadow_AuraOfDarkness", + ["Curse of Doom"] = "Spell_Shadow_AuraOfDarkness", + ["Curse of Exhaustion"] = "Spell_Shadow_GrimWard", + ["Curse of Idiocy"] = "Spell_Shadow_MindRot", + ["Curse of Recklessness"] = "Spell_Shadow_UnholyStrength", + ["Curse of Shadow"] = "Spell_Shadow_CurseOfAchimonde", + ["Curse of Tongues"] = "Spell_Shadow_CurseOfTounges", + ["Curse of Weakness"] = "Spell_Shadow_CurseOfMannoroth", + ["Curse of the Elements"] = "Spell_Shadow_ChillTouch", + ["Dagger Specialization"] = "INV_Weapon_ShortBlade_05", + ["Daggers"] = "Ability_SteelMelee", + ["Dampen Magic"] = "Spell_Nature_AbolishMagic", + ["Dark Pact"] = "Spell_Shadow_DarkRitual", + ["Darkness"] = "Spell_Shadow_Twilight", + ["Dash"] = "Ability_Druid_Dash", + ["Deadly Poison II"] = "Ability_Rogue_DualWeild", + ["Deadly Poison III"] = "Ability_Rogue_DualWeild", + ["Deadly Poison IV"] = "Ability_Rogue_DualWeild", + ["Deadly Poison V"] = "Ability_Rogue_DualWeild", + ["Deadly Poison"] = "Ability_Rogue_DualWeild", + ["Death Coil"] = "Spell_Shadow_DeathCoil", + ["Death Wish"] = "Spell_Shadow_DeathPact", + ["Deep Wound"] = "Ability_BackStab", + ["Defense"] = "Ability_Racial_ShadowMeld", + ["Defensive Stance Passive"] = "Ability_Warrior_DefensiveStance", + ["Defensive Stance"] = "Ability_Warrior_DefensiveStance", + ["Defensive State 2"] = "Ability_Defend", + ["Defensive State"] = "Ability_Defend", + ["Defiance"] = "Ability_Warrior_InnerRage", + ["Deflection"] = "Ability_Parry", + ["Demon Armor"] = "Spell_Shadow_RagingScream", + ["Demon Skin"] = "Spell_Shadow_RagingScream", + ["Demonic Embrace"] = "Spell_Shadow_Metamorphosis", + ["Demonic Sacrifice"] = "Spell_Shadow_PsychicScream", + ["Demoralizing Roar"] = "Ability_Druid_DemoralizingRoar", + ["Demoralizing Shout"] = "Ability_Warrior_WarCry", + ["Desperate Prayer"] = "Spell_Holy_Restoration", + ["Destructive Reach"] = "Spell_Shadow_CorpseExplode", + ["Detect Greater Invisibility"] = "Spell_Shadow_DetectInvisibility", + ["Detect Invisibility"] = "Spell_Shadow_DetectInvisibility", + ["Detect Lesser Invisibility"] = "Spell_Shadow_DetectLesserInvisibility", + ["Detect Magic"] = "Spell_Holy_Dizzy", + ["Detect Traps"] = "Ability_Spy", + ["Detect"] = "Ability_Hibernation", + ["Deterrence"] = "Ability_Whirlwind", + ["Devastation"] = "Spell_Fire_FlameShock", + ["Devotion Aura"] = "Spell_Holy_DevotionAura", + ["Devour Magic Effect"] = "Spell_Nature_Purge", + ["Devour Magic"] = "Spell_Nature_Purge", + ["Devouring Plague"] = "Spell_Shadow_BlackPlague", + ["Diplomacy"] = "INV_Misc_Note_02", + ["Dire Bear Form"] = "Ability_Racial_BearForm", + ["Disarm Trap"] = "Spell_Shadow_GrimWard", + ["Disarm"] = "Ability_Warrior_Disarm", + ["Disease Cleansing Totem"] = "Spell_Nature_DiseaseCleansingTotem", + ["Disenchant"] = "Spell_Holy_RemoveCurse", + ["Disengage"] = "Ability_Rogue_Feint", + ["Dismiss Pet"] = "Spell_Nature_SpiritWolf", + ["Dispel Magic"] = "Spell_Holy_DispelMagic", + ["Distract"] = "Ability_Rogue_Distract", + ["Distracting Shot"] = "Spell_Arcane_Blink", + ["Dive"] = "Spell_Shadow_BurningSpirit", + ["Divine Favor"] = "Spell_Holy_Heal", + ["Divine Fury"] = "Spell_Holy_SealOfWrath", + ["Divine Intellect"] = "Spell_Nature_Sleep", + ["Divine Intervention"] = "Spell_Nature_TimeStop", + ["Divine Protection"] = "Spell_Holy_Restoration", + ["Divine Shield"] = "Spell_Holy_DivineIntervention", + ["Divine Spirit"] = "Spell_Holy_DivineSpirit", + ["Divine Strength"] = "Ability_GolemThunderClap", + ["Dodge"] = "Spell_Nature_Invisibilty", + ["Drain Life"] = "Spell_Shadow_LifeDrain02", + ["Drain Mana"] = "Spell_Shadow_SiphonMana", + ["Drain Soul"] = "Spell_Shadow_Haunting", + ["Dual Wield Specialization"] = "Ability_DualWield", + ["Dual Wield"] = "Ability_DualWield", + ["Duel"] = "Temp", + ["Eagle Eye"] = "Ability_Hunter_EagleEye", + ["Earth Shock"] = "Spell_Nature_EarthShock", + ["Earthbind Totem"] = "Spell_Nature_StrengthOfEarthTotem02", + ["Efficiency"] = "Spell_Frost_WizardMark", + ["Elemental Focus"] = "Spell_Shadow_ManaBurn", + ["Elemental Fury"] = "Spell_Fire_Volcano", + ["Elemental Mastery"] = "Spell_Nature_WispHeal", + ["Elune's Grace"] = "Spell_Holy_ElunesGrace", + ["Elusiveness"] = "Spell_Magic_LesserInvisibilty", + ["Emberstorm"] = "Spell_Fire_SelfDestruct", + ["Enchanting"] = "Trade_Engraving", + ["Endurance Training"] = "Spell_Nature_Reincarnation", + ["Endurance"] = "Spell_Nature_UnyeildingStamina", + ["Engineering Specialization"] = "INV_Misc_Gear_01", + ["Engineering"] = "Trade_Engineering", + ["Enrage"] = "Ability_Druid_Enrage", + ["Enslave Demon"] = "Spell_Shadow_EnslaveDemon", + ["Entangling Roots"] = "Spell_Nature_StrangleVines", + ["Entrapment"] = "Spell_Nature_StrangleVines", + ["Escape Artist"] = "Ability_Rogue_Trip", + ["Evasion"] = "Spell_Shadow_ShadowWard", + ["Eventide"] = "Spell_Frost_Stun", + ["Eviscerate"] = "Ability_Rogue_Eviscerate", + ["Evocation"] = "Spell_Nature_Purge", + ["Execute"] = "INV_Sword_48", + ["Exorcism"] = "Spell_Holy_Excorcism_02", + ["Expansive Mind"] = "INV_Enchant_EssenceEternalLarge", + ["Explosive Trap Effect"] = "Spell_Fire_SelfDestruct", + ["Explosive Trap"] = "Spell_Fire_SelfDestruct", + ["Expose Armor"] = "Ability_Warrior_Riposte", + ["Eye for an Eye"] = "Spell_Holy_EyeforanEye", + ["Eye of Kilrogg"] = "Spell_Shadow_EvilEye", + ["Eyes of the Beast"] = "Ability_EyeOfTheOwl", + ["Fade"] = "Spell_Magic_LesserInvisibilty", + ["Faerie Fire"] = "Spell_Nature_FaerieFire", + ["Far Sight"] = "Spell_Nature_FarSight", + ["Fear Ward"] = "Spell_Holy_Excorcism", + ["Fear"] = "Spell_Shadow_Possession", + ["Feed Pet"] = "Ability_Hunter_BeastTraining", + ["Feedback"] = "Spell_Shadow_RitualOfSacrifice", + ["Feign Death"] = "Ability_Rogue_FeignDeath", + ["Feint"] = "Ability_Rogue_Feint", + ["Fel Concentration"] = "Spell_Shadow_FingerOfDeath", + ["Fel Domination"] = "Spell_Nature_RemoveCurse", + ["Fel Intellect"] = "Spell_Holy_MagicalSentry", + ["Fel Stamina"] = "Spell_Shadow_AntiShadow", + ["Felfire"] = "Spell_Fire_Fireball", + ["Feline Grace"] = "INV_Feather_01", + ["Feline Swiftness"] = "Spell_Nature_SpiritWolf", + ["Feral Aggression"] = "Ability_Druid_DemoralizingRoar", + ["Feral Charge"] = "Ability_Hunter_Pet_Bear", + ["Feral Instinct"] = "Ability_Ambush", + ["Ferocious Bite"] = "Ability_Druid_FerociousBite", + ["Ferocity"] = "INV_Misc_MonsterClaw_04", + ["Fetish"] = "INV_Misc_Horn_01", + ["Find Herbs"] = "INV_Misc_Flower_02", + ["Find Minerals"] = "Spell_Nature_Earthquake", + ["Find Treasure"] = "Racial_Dwarf_FindTreasure", + ["Fire Blast"] = "Spell_Fire_Fireball", + ["Fire Nova Totem"] = "Spell_Fire_SealOfFire", + ["Fire Power"] = "Spell_Fire_Immolation", + ["Fire Resistance Aura"] = "Spell_Fire_SealOfFire", + ["Fire Resistance Totem"] = "Spell_FireResistanceTotem_01", + ["Fire Resistance"] = "Spell_Fire_FireArmor", + ["Fire Shield"] = "Spell_Fire_FireArmor", + ["Fire Vulnerability"] = "Spell_Fire_SoulBurn", + ["Fire Ward"] = "Spell_Fire_FireArmor", + ["Fireball"] = "Spell_Fire_FlameBolt", + ["Firebolt"] = "Spell_Fire_FireBolt", + ["First Aid"] = "Spell_Holy_SealOfSacrifice", + ["Fishing Poles"] = "Trade_Fishing", + ["Fishing"] = "Trade_Fishing", + ["Fist Weapon Specialization"] = "INV_Gauntlets_04", + ["Fist Weapons"] = "INV_Gauntlets_04", + ["Flame Shock"] = "Spell_Fire_FlameShock", + ["Flame Throwing"] = "Spell_Fire_Flare", + ["Flamestrike"] = "Spell_Fire_SelfDestruct", + ["Flamethrower"] = "Spell_Fire_Incinerate", + ["Flametongue Totem"] = "Spell_Nature_GuardianWard", + ["Flametongue Weapon"] = "Spell_Fire_FlameTounge", + ["Flare"] = "Spell_Fire_Flare", + ["Flash Heal"] = "Spell_Holy_FlashHeal", + ["Flash of Light"] = "Spell_Holy_FlashHeal", + ["Flurry"] = "Ability_GhoulFrenzy", + ["Focused Casting"] = "Spell_Arcane_Blink", + ["Force of Will"] = "Spell_Nature_SlowingTotem", + ["Freezing Trap"] = "Spell_Frost_ChainsOfIce", + ["Frenzied Regeneration"] = "Ability_BullRush", + ["Frenzy"] = "INV_Misc_MonsterClaw_03", + ["Frost Armor"] = "Spell_Frost_FrostArmor02", + ["Frost Channeling"] = "Spell_Frost_Stun", + ["Frost Nova"] = "Spell_Frost_FrostNova", + ["Frost Resistance Aura"] = "Spell_Frost_WizardMark", + ["Frost Resistance Totem"] = "Spell_FrostResistanceTotem_01", + ["Frost Resistance"] = "Spell_Frost_FrostWard", + ["Frost Shock"] = "Spell_Frost_FrostShock", + ["Frost Trap"] = "Spell_Frost_FreezingBreath", + ["Frost Ward"] = "Spell_Frost_FrostWard", + ["Frostbite"] = "Spell_Frost_FrostArmor", + ["Frostbolt"] = "Spell_Frost_FrostBolt02", + ["Frostbrand Weapon"] = "Spell_Frost_FrostBrand", + ["Furious Howl"] = "Ability_Hunter_Pet_Wolf", + ["Furor"] = "Spell_Holy_BlessingOfStamina", + ["Garrote"] = "Ability_Rogue_Garrote", + ["Generic"] = "INV_Shield_09", + ["Ghost Wolf"] = "Spell_Nature_SpiritWolf", + ["Ghostly Strike"] = "Spell_Shadow_Curse", + ["Gift of Nature"] = "Spell_Nature_ProtectionformNature", + ["Gift of the Wild"] = "Spell_Nature_Regeneration", + ["Gouge"] = "Ability_Gouge", + ["Grace of Air Totem"] = "Spell_Nature_InvisibilityTotem", + ["Great Stamina"] = "Spell_Nature_UnyeildingStamina", + ["Greater Blessing of Kings"] = "Spell_Magic_GreaterBlessingofKings", + ["Greater Blessing of Light"] = "Spell_Holy_GreaterBlessingofLight", + ["Greater Blessing of Might"] = "Spell_Holy_GreaterBlessingofKings", + ["Greater Blessing of Salvation"] = "Spell_Holy_GreaterBlessingofSalvation", + ["Greater Blessing of Sanctuary"] = "Spell_Holy_GreaterBlessingofSanctuary", + ["Greater Blessing of Wisdom"] = "Spell_Holy_GreaterBlessingofWisdom", + ["Greater Heal"] = "Spell_Holy_GreaterHeal", + ["Grim Reach"] = "Spell_Shadow_CallofBone", + ["Grounding Totem"] = "Spell_Nature_GroundingTotem", + ["Grovel"] = "Temp", + ["Growl"] = "Ability_Physical_Taunt", + ["Guardian's Favor"] = "Spell_Holy_SealOfProtection", + ["Gun Specialization"] = "INV_Musket_03", + ["Guns"] = "INV_Weapon_Rifle_01", + ["Hammer of Justice"] = "Spell_Holy_SealOfMight", + ["Hammer of Wrath"] = "Ability_ThunderClap", + ["Hamstring"] = "Ability_ShockWave", + ["Harass"] = "Ability_Hunter_Harass", + ["Hardiness"] = "INV_Helmet_23", + ["Hawk Eye"] = "Ability_TownWatch", + ["Heal"] = "Spell_Holy_Heal", + ["Healing Focus"] = "Spell_Holy_HealingFocus", + ["Healing Light"] = "Spell_Holy_HolyBolt", + ["Healing Stream Totem"] = "INV_Spear_04", + ["Healing Touch"] = "Spell_Nature_HealingTouch", + ["Healing Wave"] = "Spell_Nature_MagicImmunity", + ["Health Funnel"] = "Spell_Shadow_LifeDrain", + ["Heart of the Wild"] = "Spell_Holy_BlessingOfAgility", + ["Hellfire Effect"] = "Spell_Fire_Incinerate", + ["Hellfire"] = "Spell_Fire_Incinerate", + ["Hemorrhage"] = "Spell_Shadow_LifeDrain", + ["Herbalism"] = "Spell_Nature_NatureTouchGrow", + ["Heroic Strike"] = "Ability_Rogue_Ambush", + ["Hex of Weakness"] = "Spell_Shadow_FingerOfDeath", + ["Hibernate"] = "Spell_Nature_Sleep", + ["Holy Fire"] = "Spell_Holy_SearingLight", + ["Holy Light"] = "Spell_Holy_HolyBolt", + ["Holy Nova"] = "Spell_Holy_HolyNova", + ["Holy Power"] = "Spell_Holy_Power", + ["Holy Reach"] = "Spell_Holy_Purify", + ["Holy Shield"] = "Spell_Holy_BlessingOfProtection", + ["Holy Shock"] = "Spell_Holy_SearingLight", + ["Holy Specialization"] = "Spell_Holy_SealOfSalvation", + ["Holy Wrath"] = "Spell_Holy_Excorcism", + ["Honorless Target"] = "Spell_Magic_LesserInvisibilty", + ["Horse Riding"] = "Spell_Nature_Swiftness", + ["Howl of Terror"] = "Spell_Shadow_DeathScream", + ["Humanoid Slaying"] = "Spell_Holy_PrayerOfHealing", + ["Hunter's Mark"] = "Ability_Hunter_SniperShot", + ["Hurricane"] = "Spell_Nature_Cyclone", + ["Ice Armor"] = "Spell_Frost_FrostArmor02", + ["Ice Barrier"] = "Spell_Ice_Lament", + ["Ice Block"] = "Spell_Frost_Frost", + ["Ice Shards"] = "Spell_Frost_IceShard", + ["Ignite"] = "Spell_Fire_Incinerate", + ["Illumination"] = "Spell_Holy_GreaterHeal", + ["Immolate"] = "Spell_Fire_Immolation", + ["Immolation Trap Effect"] = "Spell_Fire_FlameShock", + ["Immolation Trap"] = "Spell_Fire_FlameShock", + ["Impact"] = "Spell_Fire_MeteorStorm", + ["Impale"] = "Ability_SearingArrow", + ["Improved Ambush"] = "Ability_Rogue_Ambush", + ["Improved Arcane Explosion"] = "Spell_Nature_WispSplode", + ["Improved Arcane Missiles"] = "Spell_Nature_StarFall", + ["Improved Arcane Shot"] = "Ability_ImpalingBolt", + ["Improved Aspect of the Hawk"] = "Spell_Nature_RavenForm", + ["Improved Aspect of the Monkey"] = "Ability_Hunter_AspectOfTheMonkey", + ["Improved Backstab"] = "Ability_BackStab", + ["Improved Battle Shout"] = "Ability_Warrior_BattleShout", + ["Improved Berserker Rage"] = "Spell_Nature_AncestralGuardian", + ["Improved Blessing of Might"] = "Spell_Holy_FistOfJustice", + ["Improved Blessing of Wisdom"] = "Spell_Holy_SealOfWisdom", + ["Improved Blizzard"] = "Spell_Frost_IceStorm", + ["Improved Bloodrage"] = "Ability_Racial_BloodRage", + ["Improved Chain Heal"] = "Spell_Nature_HealingWaveGreater", + ["Improved Chain Lightning"] = "Spell_Nature_ChainLightning", + ["Improved Challenging Shout"] = "Ability_Warrior_Challange", + ["Improved Charge"] = "Ability_Warrior_Charge", + ["Improved Cheap Shot"] = "Ability_CheapShot", + ["Improved Cleave"] = "Ability_Warrior_Cleave", + ["Improved Concentration Aura"] = "Spell_Holy_MindSooth", + ["Improved Concussive Shot"] = "Spell_Frost_Stun", + ["Improved Cone of Cold"] = "Spell_Frost_Glacier", + ["Improved Corruption"] = "Spell_Shadow_AbominationExplosion", + ["Improved Counterspell"] = "Spell_Frost_IceShock", + ["Improved Curse of Agony"] = "Spell_Shadow_CurseOfSargeras", + ["Improved Curse of Exhaustion"] = "Spell_Shadow_GrimWard", + ["Improved Curse of Weakness"] = "Spell_Shadow_CurseOfMannoroth", + ["Improved Dampen Magic"] = "Spell_Nature_AbolishMagic", + ["Improved Deadly Poison"] = "Ability_Rogue_DualWeild", + ["Improved Demoralizing Shout"] = "Ability_Warrior_WarCry", + ["Improved Devotion Aura"] = "Spell_Holy_DevotionAura", + ["Improved Disarm"] = "Ability_Warrior_Disarm", + ["Improved Distract"] = "Ability_Rogue_Distract", + ["Improved Drain Life"] = "Spell_Shadow_LifeDrain02", + ["Improved Drain Mana"] = "Spell_Shadow_SiphonMana", + ["Improved Drain Soul"] = "Spell_Shadow_Haunting", + ["Improved Enrage"] = "Ability_Druid_Enrage", + ["Improved Enslave Demon"] = "Spell_Shadow_EnslaveDemon", + ["Improved Entangling Roots"] = "Spell_Nature_StrangleVines", + ["Improved Evasion"] = "Spell_Shadow_ShadowWard", + ["Improved Eviscerate"] = "Ability_Rogue_Eviscerate", + ["Improved Execute"] = "INV_Sword_48", + ["Improved Expose Armor"] = "Ability_Warrior_Riposte", + ["Improved Eyes of the Beast"] = "Ability_EyeOfTheOwl", + ["Improved Fade"] = "Spell_Magic_LesserInvisibilty", + ["Improved Feign Death"] = "Ability_Rogue_FeignDeath", + ["Improved Fire Blast"] = "Spell_Fire_Fireball", + ["Improved Fire Nova Totem"] = "Spell_Fire_SealOfFire", + ["Improved Fire Ward"] = "Spell_Fire_FireArmor", + ["Improved Fireball"] = "Spell_Fire_FlameBolt", + ["Improved Firebolt"] = "Spell_Fire_FireBolt", + ["Improved Firestone"] = "INV_Ammo_FireTar", + ["Improved Flamestrike"] = "Spell_Fire_SelfDestruct", + ["Improved Flametongue Weapon"] = "Spell_Fire_FlameTounge", + ["Improved Flash of Light"] = "Spell_Holy_FlashHeal", + ["Improved Frost Nova"] = "Spell_Frost_FreezingBreath", + ["Improved Frost Ward"] = "Spell_Frost_FrostWard", + ["Improved Frostbolt"] = "Spell_Frost_FrostBolt02", + ["Improved Frostbrand Weapon"] = "Spell_Frost_FrostBrand", + ["Improved Garrote"] = "Ability_Rogue_Garrote", + ["Improved Ghost Wolf"] = "Spell_Nature_SpiritWolf", + ["Improved Gouge"] = "Ability_Gouge", + ["Improved Grace of Air Totem"] = "Spell_Nature_InvisibilityTotem", + ["Improved Grounding Totem"] = "Spell_Nature_GroundingTotem", + ["Improved Hammer of Justice"] = "Spell_Holy_SealOfMight", + ["Improved Hamstring"] = "Ability_ShockWave", + ["Improved Healing Stream Totem"] = "INV_Spear_04", + ["Improved Healing Touch"] = "Spell_Nature_HealingTouch", + ["Improved Healing Wave"] = "Spell_Nature_MagicImmunity", + ["Improved Healing"] = "Spell_Holy_Heal02", + ["Improved Health Funnel"] = "Spell_Shadow_LifeDrain", + ["Improved Healthstone"] = "INV_Stone_04", + ["Improved Heroic Strike"] = "Ability_Rogue_Ambush", + ["Improved Hunter's Mark"] = "Ability_Hunter_SniperShot", + ["Improved Immolate"] = "Spell_Fire_Immolation", + ["Improved Imp"] = "Spell_Shadow_SummonImp", + ["Improved Inner Fire"] = "Spell_Holy_InnerFire", + ["Improved Instant Poison"] = "Ability_Poisons", + ["Improved Intercept"] = "Ability_Rogue_Sprint", + ["Improved Intimidating Shout"] = "Ability_GolemThunderClap", + ["Improved Judgement"] = "Spell_Holy_RighteousFury", + ["Improved Kick"] = "Ability_Kick", + ["Improved Kidney Shot"] = "Ability_Rogue_KidneyShot", + ["Improved Lash of Pain"] = "Spell_Shadow_Curse", + ["Improved Lay on Hands"] = "Spell_Holy_LayOnHands", + ["Improved Lesser Healing Wave"] = "Spell_Nature_HealingWaveLesser", + ["Improved Life Tap"] = "Spell_Shadow_BurningSpirit", + ["Improved Lightning Bolt"] = "Spell_Nature_Lightning", + ["Improved Lightning Shield"] = "Spell_Nature_LightningShield", + ["Improved Magma Totem"] = "Spell_Fire_SelfDestruct", + ["Improved Mana Burn"] = "Spell_Shadow_ManaBurn", + ["Improved Mana Shield"] = "Spell_Shadow_DetectLesserInvisibility", + ["Improved Mana Spring Totem"] = "Spell_Nature_ManaRegenTotem", + ["Improved Mark of the Wild"] = "Spell_Nature_Regeneration", + ["Improved Mend Pet"] = "Ability_Hunter_MendPet", + ["Improved Mind Blast"] = "Spell_Shadow_UnholyFrenzy", + ["Improved Moonfire"] = "Spell_Nature_StarFall", + ["Improved Nature's Grasp"] = "Spell_Nature_NaturesWrath", + ["Improved Overpower"] = "INV_Sword_05", + ["Improved Power Word: Fortitude"] = "Spell_Holy_WordFortitude", + ["Improved Power Word: Shield"] = "Spell_Holy_PowerWordShield", + ["Improved Prayer of Healing"] = "Spell_Holy_PrayerOfHealing02", + ["Improved Psychic Scream"] = "Spell_Shadow_PsychicScream", + ["Improved Pummel"] = "INV_Gauntlets_04", + ["Improved Regrowth"] = "Spell_Nature_ResistNature", + ["Improved Reincarnation"] = "Spell_Nature_Reincarnation", + ["Improved Rejuvenation"] = "Spell_Nature_Rejuvenation", + ["Improved Rend"] = "Ability_Gouge", + ["Improved Renew"] = "Spell_Holy_Renew", + ["Improved Retribution Aura"] = "Spell_Holy_AuraOfLight", + ["Improved Revenge"] = "Ability_Warrior_Revenge", + ["Improved Revive Pet"] = "Ability_Hunter_BeastSoothe", + ["Improved Righteous Fury"] = "Spell_Holy_SealOfFury", + ["Improved Rockbiter Weapon"] = "Spell_Nature_RockBiter", + ["Improved Rupture"] = "Ability_Rogue_Rupture", + ["Improved Sap"] = "Ability_Sap", + ["Improved Scorch"] = "Spell_Fire_SoulBurn", + ["Improved Scorpid Sting"] = "Ability_Hunter_CriticalShot", + ["Improved Seal of Righteousness"] = "Ability_ThunderBolt", + ["Improved Seal of the Crusader"] = "Spell_Holy_HolySmite", + ["Improved Searing Pain"] = "Spell_Fire_SoulBurn", + ["Improved Searing Totem"] = "Spell_Fire_SearingTotem", + ["Improved Serpent Sting"] = "Ability_Hunter_Quickshot", + ["Improved Shadow Bolt"] = "Spell_Shadow_ShadowBolt", + ["Improved Shadow Word: Pain"] = "Spell_Shadow_ShadowWordPain", + ["Improved Shield Bash"] = "Ability_Warrior_ShieldBash", + ["Improved Shield Block"] = "Ability_Defend", + ["Improved Shield Wall"] = "Ability_Warrior_ShieldWall", + ["Improved Shred"] = "Spell_Shadow_VampiricAura", + ["Improved Sinister Strike"] = "Spell_Shadow_RitualOfSacrifice", + ["Improved Slam"] = "Ability_Warrior_DecisiveStrike", + ["Improved Slice and Dice"] = "Ability_Rogue_SliceDice", + ["Improved Spellstone"] = "INV_Misc_Gem_Sapphire_01", + ["Improved Sprint"] = "Ability_Rogue_Sprint", + ["Improved Starfire"] = "Spell_Arcane_StarFire", + ["Improved Stoneclaw Totem"] = "Spell_Nature_StoneClawTotem", + ["Improved Stoneskin Totem"] = "Spell_Nature_StoneSkinTotem", + ["Improved Strength of Earth Totem"] = "Spell_Nature_EarthBindTotem", + ["Improved Succubus"] = "Spell_Shadow_SummonSuccubus", + ["Improved Sunder Armor"] = "Ability_Warrior_Sunder", + ["Improved Taunt"] = "Spell_Nature_Reincarnation", + ["Improved Thorns"] = "Spell_Nature_Thorns", + ["Improved Thunder Clap"] = "Ability_ThunderClap", + ["Improved Tranquility"] = "Spell_Nature_Tranquility", + ["Improved Vampiric Embrace"] = "Spell_Shadow_ImprovedVampiricEmbrace", + ["Improved Vanish"] = "Ability_Vanish", + ["Improved Voidwalker"] = "Spell_Shadow_SummonVoidWalker", + ["Improved Windfury Weapon"] = "Spell_Nature_Cyclone", + ["Improved Wing Clip"] = "Ability_Rogue_Trip", + ["Improved Wrath"] = "Spell_Nature_AbolishMagic", + ["Incinerate"] = "Spell_Fire_FlameShock", + ["Inferno"] = "Spell_Shadow_SummonInfernal", + ["Initiative"] = "Spell_Shadow_Fumble", + ["Inner Fire"] = "Spell_Holy_InnerFire", + ["Inner Focus"] = "Spell_Frost_WindWalkOn", + ["Innervate"] = "Spell_Nature_Lightning", + ["Insect Swarm"] = "Spell_Nature_InsectSwarm", + ["Inspiration"] = "Spell_Holy_LayOnHands", + ["Instant Poison II"] = "Ability_Poisons", + ["Instant Poison III"] = "Ability_Poisons", + ["Instant Poison IV"] = "Ability_Poisons", + ["Instant Poison V"] = "Ability_Poisons", + ["Instant Poison VI"] = "Ability_Poisons", + ["Instant Poison"] = "Ability_Poisons", + ["Intensity"] = "Spell_Fire_LavaSpawn", + ["Intercept"] = "Ability_Rogue_Sprint", + ["Intercept Stun"] = "Ability_Rogue_Sprint", + ["Intimidating Shout"] = "Ability_GolemThunderClap", + ["Intimidation"] = "Ability_Devour", + ["Iron Will"] = "Spell_Magic_MageArmor", + ["Judgement of Command"] = "Ability_Warrior_InnerRage", + ["Judgement of Justice"] = "Spell_Holy_SealOfWrath", + ["Judgement of Light"] = "Spell_Holy_HealingAura", + ["Judgement of Righteousness"] = "Ability_ThunderBolt", + ["Judgement of Wisdom"] = "Spell_Holy_RighteousnessAura", + ["Judgement of the Crusader"] = "Spell_Holy_HolySmite", + ["Judgement"] = "Spell_Holy_RighteousFury", + ["Kick"] = "Ability_Kick", + ["Kidney Shot"] = "Ability_Rogue_KidneyShot", + ["Killer Instinct"] = "Spell_Holy_BlessingOfStamina", + ["Kodo Riding"] = "Spell_Nature_Swiftness", + ["Lash of Pain"] = "Spell_Shadow_Curse", + ["Last Stand"] = "Spell_Holy_AshesToAshes", + ["Lasting Judgement"] = "Spell_Holy_HealingAura", + ["Lay on Hands"] = "Spell_Holy_LayOnHands", + ["Leader of the Pack"] = "Spell_Nature_UnyeildingStamina", + ["Leather"] = "INV_Chest_Leather_09", + ["Leatherworking"] = "INV_Misc_ArmorKit_17", + ["Lesser Heal"] = "Spell_Holy_LesserHeal", + ["Lesser Healing Wave"] = "Spell_Nature_HealingWaveLesser", + ["Lesser Invisibility"] = "Spell_Magic_LesserInvisibilty", + ["Lethal Shots"] = "Ability_SearingArrow", + ["Lethality"] = "Ability_CriticalStrike", + ["Levitate"] = "Spell_Holy_LayOnHands", + ["Libram"] = "INV_Misc_Book_11", + ["Life Tap"] = "Spell_Shadow_BurningSpirit", + ["Lightning Bolt"] = "Spell_Nature_Lightning", + ["Lightning Breath"] = "Spell_Nature_Lightning", + ["Lightning Mastery"] = "Spell_Lightning_LightningBolt01", + ["Lightning Reflexes"] = "Spell_Nature_Invisibilty", + ["Lightning Shield"] = "Spell_Nature_LightningShield", + ["Lightwell Renew"] = "Spell_Holy_SummonLightwell", + ["Lightwell"] = "Spell_Holy_SummonLightwell", + ["Long Daze"] = "Spell_Frost_Stun", + ["Mace Specialization"] = "INV_Mace_01", + ["Mace Stun Effect"] = "Spell_Frost_Stun", + ["Mage Armor"] = "Spell_MageArmor", + ["Magma Totem"] = "Spell_Fire_SelfDestruct", + ["Mail"] = "INV_Chest_Chain_05", + ["Malice"] = "Ability_Racial_BloodRage", + ["Mana Burn"] = "Spell_Shadow_ManaBurn", + ["Mana Shield"] = "Spell_Shadow_DetectLesserInvisibility", + ["Mana Spring Totem"] = "Spell_Nature_ManaRegenTotem", + ["Mana Tide Totem"] = "Spell_Frost_SummonWaterElemental", + ["Mangle"] = "Ability_Druid_Mangle.tga", + ["Mark of the Wild"] = "Spell_Nature_Regeneration", + ["Martyrdom"] = "Spell_Nature_Tranquility", + ["Master Demonologist"] = "Spell_Shadow_ShadowPact", + ["Master Summoner"] = "Spell_Shadow_ImpPhaseShift", + ["Master of Deception"] = "Spell_Shadow_Charm", + ["Maul"] = "Ability_Druid_Maul", + ["Mechanostrider Piloting"] = "Spell_Nature_Swiftness", + ["Meditation"] = "Spell_Nature_Sleep", + ["Melee Specialization"] = "INV_Axe_02", + ["Mend Pet"] = "Ability_Hunter_MendPet", + ["Mental Agility"] = "Ability_Hibernation", + ["Mental Strength"] = "Spell_Nature_EnchantArmor", + ["Mind Blast"] = "Spell_Shadow_UnholyFrenzy", + ["Mind Control"] = "Spell_Shadow_ShadowWordDominate", + ["Mind Flay"] = "Spell_Shadow_SiphonMana", + ["Mind Soothe"] = "Spell_Holy_MindSooth", + ["Mind Vision"] = "Spell_Holy_MindVision", + ["Mind-numbing Poison II"] = "Spell_Nature_NullifyDisease", + ["Mind-numbing Poison III"] = "Spell_Nature_NullifyDisease", + ["Mind-numbing Poison"] = "Spell_Nature_NullifyDisease", + ["Mining"] = "Spell_Fire_FlameBlades", + ["Mocking Blow"] = "Ability_Warrior_PunishingBlow", + ["Mongoose Bite"] = "Ability_Hunter_SwiftStrike", + ["Monster Slaying"] = "INV_Misc_Head_Dragon_Black", + ["Moonfire"] = "Spell_Nature_StarFall", + ["Moonfury"] = "Spell_Nature_MoonGlow", + ["Moonglow"] = "Spell_Nature_Sentinal", + ["Moonkin Aura"] = "Spell_Nature_MoonGlow", + ["Moonkin Form"] = "Spell_Nature_ForceOfNature", + ["Mortal Shots"] = "Ability_PierceDamage", + ["Mortal Strike"] = "Ability_Warrior_SavageBlow", + ["Multi-Shot"] = "Ability_UpgradeMoonGlaive", + ["Murder"] = "Spell_Shadow_DeathScream", + ["Natural Armor"] = "Spell_Nature_SpiritArmor", + ["Natural Shapeshifter"] = "Spell_Nature_WispSplode", + ["Natural Weapons"] = "INV_Staff_01", + ["Nature Resistance Totem"] = "Spell_Nature_NatureResistanceTotem", + ["Nature Resistance"] = "Spell_Nature_ResistNature", + ["Nature's Focus"] = "Spell_Nature_HealingWaveGreater", + ["Nature's Grace"] = "Spell_Nature_NaturesBlessing", + ["Nature's Grasp"] = "Spell_Nature_NaturesWrath", + ["Nature's Reach"] = "Spell_Nature_NatureTouchGrow", + ["Nature's Swiftness"] = "Spell_Nature_RavenForm", + ["Nightfall"] = "Spell_Shadow_Twilight", + ["Omen of Clarity"] = "Spell_Nature_CrystalBall", + ["One-Handed Axes"] = "INV_Axe_01", + ["One-Handed Maces"] = "INV_Mace_01", + ["One-Handed Swords"] = "Ability_MeleeDamage", + ["One-Handed Weapon Specialization"] = "INV_Sword_20", + ["Opening - No Text"] = "Temp", + ["Opening"] = "Temp", + ["Opportunity"] = "Ability_Warrior_WarCry", + ["Overpower"] = "Ability_MeleeDamage", + ["Paranoia"] = "Spell_Shadow_AuraOfDarkness", + ["Parry"] = "Ability_Parry", + ["Pathfinding"] = "Ability_Mount_JungleTiger", + ["Perception"] = "Spell_Nature_Sleep", + ["Permafrost"] = "Spell_Frost_Wisp", + ["Pet Aggression"] = "Ability_Druid_Maul", + ["Pet Hardiness"] = "Ability_BullRush", + ["Pet Recovery"] = "Ability_Hibernation", + ["Pet Resistance"] = "Spell_Holy_BlessingOfAgility", + ["Phase Shift"] = "Spell_Shadow_ImpPhaseShift", + ["Pick Lock"] = "Spell_Nature_MoonKey", + ["Pick Pocket"] = "INV_Misc_Bag_11", + ["Piercing Howl"] = "Spell_Shadow_DeathScream", + ["Piercing Ice"] = "Spell_Frost_Frostbolt", + ["Plate Mail"] = "INV_Chest_Plate01", + ["Poison Cleansing Totem"] = "Spell_Nature_PoisonCleansingTotem", + ["Poisons"] = "Trade_BrewPoison", + ["Polearm Specialization"] = "INV_Weapon_Halbard_01", + ["Polearms"] = "INV_Spear_06", + ["Polymorph"] = "Spell_Nature_Polymorph", + ["Polymorph: Pig"] = "Spell_Magic_PolymorphPig", + ["Polymorph: Turtle"] = "Ability_Hunter_Pet_Turtle", + ["Portal: Darnassus"] = "Spell_Arcane_PortalDarnassus", + ["Portal: Ironforge"] = "Spell_Arcane_PortalIronForge", + ["Portal: Orgrimmar"] = "Spell_Arcane_PortalOrgrimmar", + ["Portal: Stormwind"] = "Spell_Arcane_PortalStormWind", + ["Portal: Thunder Bluff"] = "Spell_Arcane_PortalThunderBluff", + ["Portal: Undercity"] = "Spell_Arcane_PortalUnderCity", + ["Pounce Bleed"] = "Ability_Druid_SupriseAttack", + ["Pounce"] = "Ability_Druid_SupriseAttack", + ["Power Infusion"] = "Spell_Holy_PowerInfusion", + ["Power Word: Fortitude"] = "Spell_Holy_WordFortitude", + ["Power Word: Shield"] = "Spell_Holy_PowerWordShield", + ["Prayer of Fortitude"] = "Spell_Holy_PrayerOfFortitude", + ["Prayer of Healing"] = "Spell_Holy_PrayerOfHealing02", + ["Prayer of Shadow Protection"] = "Spell_Holy_PrayerofShadowProtection", + ["Prayer of Spirit"] = "Spell_Holy_PrayerofSpirit", + ["Precision"] = "Ability_Marksmanship", + ["Predatory Strikes"] = "Ability_Hunter_Pet_Cat", + ["Premeditation"] = "Spell_Shadow_Possession", + ["Preparation"] = "Spell_Shadow_AntiShadow", + ["Presence of Mind"] = "Spell_Nature_EnchantArmor", + ["Primal Fury"] = "Ability_Racial_Cannibalize", + ["Prowl"] = "Ability_Druid_SupriseAttack", + ["Psychic Scream"] = "Spell_Shadow_PsychicScream", + ["Pummel"] = "INV_Gauntlets_04", + ["Purge"] = "Spell_Nature_Purge", + ["Purification"] = "Spell_Frost_WizardMark", + ["Purify"] = "Spell_Holy_Purify", + ["Pursuit of Justice"] = "Spell_Holy_PersuitofJustice", + ["Pyroblast"] = "Spell_Fire_Fireball02", + ["Pyroclasm"] = "Spell_Fire_Volcano", + ["Quickness"] = "Ability_Racial_ShadowMeld", + ["Rain of Fire"] = "Spell_Shadow_RainOfFire", + ["Rake"] = "Ability_Druid_Disembowel", + ["Ram Riding"] = "Spell_Nature_Swiftness", + ["Ranged Weapon Specialization"] = "INV_Weapon_Rifle_06", + ["Rapid Concealment"] = "Ability_Ambush", + ["Rapid Fire"] = "Ability_Hunter_RunningShot", + ["Raptor Riding"] = "Spell_Nature_Swiftness", + ["Raptor Strike"] = "Ability_MeleeDamage", + ["Ravage"] = "Ability_Druid_Ravage", + ["Readiness"] = "Spell_Nature_Sleep", + ["Rebirth"] = "Spell_Nature_Reincarnation", + ["Recklessness"] = "Ability_CriticalStrike", + ["Reckoning"] = "Spell_Holy_BlessingOfStrength", + ["Redemption"] = "Spell_Holy_Resurrection", + ["Redoubt"] = "Ability_Defend", + ["Reflection"] = "Spell_Frost_WindWalkOn", + ["Reflection "] = "Spell_Frost_WindWalkOn", + ["Regeneration"] = "Spell_Nature_Regenerate", + ["Regrowth"] = "Spell_Nature_ResistNature", + ["Reincarnation"] = "Spell_Nature_Reincarnation", + ["Rejuvenation"] = "Spell_Nature_Rejuvenation", + ["Relentless Strikes"] = "Ability_Warrior_DecisiveStrike", + ["Remorseless Attacks"] = "Ability_FiegnDead", + ["Remove Curse"] = "Spell_Holy_RemoveCurse", + ["Remove Insignia"] = "Temp", + ["Remove Lesser Curse"] = "Spell_Nature_RemoveCurse", + ["Rend"] = "Ability_Gouge", + ["Renew"] = "Spell_Holy_Renew", + ["Repentance"] = "Spell_Holy_PrayerOfHealing", + ["Resurrection"] = "Spell_Holy_Resurrection", + ["Retaliation"] = "Ability_Warrior_Challange", + ["Retribution Aura"] = "Spell_Holy_AuraOfLight", + ["Revenge Stun"] = "Ability_Warrior_Revenge", + ["Revenge"] = "Ability_Warrior_Revenge", + ["Reverberation"] = "Spell_Frost_FrostWard", + ["Revive Pet"] = "Ability_Hunter_BeastSoothe", + ["Righteous Fury"] = "Spell_Holy_SealOfFury", + ["Rip"] = "Ability_GhoulFrenzy", + ["Riposte"] = "Ability_Warrior_Challange", + ["Ritual of Doom Effect"] = "Spell_Arcane_PortalDarnassus", + ["Ritual of Doom"] = "Spell_Shadow_AntiMagicShell", + ["Ritual of Summoning"] = "Spell_Shadow_Twilight", + ["Rockbiter Weapon"] = "Spell_Nature_RockBiter", + ["Rogue Passive"] = "Ability_Stealth", + ["Ruin"] = "Spell_Shadow_ShadowWordPain", + ["Rupture"] = "Ability_Rogue_Rupture", + ["Ruthlessness"] = "Ability_Druid_Disembowel", + ["Sacrifice"] = "Spell_Shadow_SacrificialShield", + ["Safe Fall"] = "INV_Feather_01", + ["Sanctity Aura"] = "Spell_Holy_MindVision", + ["Sap"] = "Ability_Sap", + ["Savage Fury"] = "Ability_Druid_Ravage", + ["Savage Strikes"] = "Ability_Racial_BloodRage", + ["Scare Beast"] = "Ability_Druid_Cower", + ["Scatter Shot"] = "Ability_GolemStormBolt", + ["Scorch"] = "Spell_Fire_SoulBurn", + ["Scorpid Poison"] = "Ability_PoisonSting", + ["Scorpid Sting"] = "Ability_Hunter_CriticalShot", + ["Screech"] = "Ability_Hunter_Pet_Bat", + ["Seal Fate"] = "Spell_Shadow_ChillTouch", + ["Seal of Command"] = "Ability_Warrior_InnerRage", + ["Seal of Justice"] = "Spell_Holy_SealOfWrath", + ["Seal of Light"] = "Spell_Holy_HealingAura", + ["Seal of Righteousness"] = "Ability_ThunderBolt", + ["Seal of Wisdom"] = "Spell_Holy_RighteousnessAura", + ["Seal of the Crusader"] = "Spell_Holy_HolySmite", + ["Searing Light"] = "Spell_Holy_SearingLightPriest", + ["Searing Pain"] = "Spell_Fire_SoulBurn", + ["Searing Totem"] = "Spell_Fire_SearingTotem", + ["Seduction"] = "Spell_Shadow_MindSteal", + ["Sense Demons"] = "Spell_Shadow_Metamorphosis", + ["Sense Undead"] = "Spell_Holy_SenseUndead", + ["Sentry Totem"] = "Spell_Nature_RemoveCurse", + ["Serpent Sting"] = "Ability_Hunter_Quickshot", + ["Setup"] = "Spell_Nature_MirrorImage", + ["Shackle Undead"] = "Spell_Nature_Slow", + ["Shadow Affinity"] = "Spell_Shadow_ShadowWard", + ["Shadow Bolt"] = "Spell_Shadow_ShadowBolt", + ["Shadow Focus"] = "Spell_Shadow_BurningSpirit", + ["Shadow Mastery"] = "Spell_Shadow_ShadeTrueSight", + ["Shadow Protection"] = "Spell_Shadow_AntiShadow", + ["Shadow Reach"] = "Spell_Shadow_ChillTouch", + ["Shadow Resistance Aura"] = "Spell_Shadow_SealOfKings", + ["Shadow Resistance"] = "Spell_Shadow_AntiShadow", + ["Shadow Trance"] = "Spell_Shadow_Twilight", + ["Shadow Ward"] = "Spell_Shadow_AntiShadow", + ["Shadow Weaving"] = "Spell_Shadow_BlackPlague", + ["Shadow Word: Pain"] = "Spell_Shadow_ShadowWordPain", + ["Shadowburn"] = "Spell_Shadow_ScourgeBuild", + ["Shadowform"] = "Spell_Shadow_Shadowform", + ["Shadowguard"] = "Spell_Nature_LightningShield", + ["Shadowmeld Passive"] = "Ability_Ambush", + ["Shadowmeld"] = "Ability_Ambush", + ["Sharpened Claws"] = "INV_Misc_MonsterClaw_04", + ["Shatter"] = "Spell_Frost_FrostShock", + ["Shell Shield"] = "Ability_Hunter_Pet_Turtle", + ["Shield Bash"] = "Ability_Warrior_ShieldBash", + ["Shield Block"] = "Ability_Defend", + ["Shield Slam"] = "INV_Shield_05", + ["Shield Specialization"] = "INV_Shield_06", + ["Shield Wall"] = "Ability_Warrior_ShieldWall", + ["Shield"] = "INV_Shield_04", + ["Shoot Bow"] = "Ability_Marksmanship", + ["Shoot Crossbow"] = "Ability_Marksmanship", + ["Shoot Gun"] = "Ability_Marksmanship", + ["Shoot"] = "Ability_ShootWand", + ["Shred"] = "Spell_Shadow_VampiricAura", + ["Silence"] = "Spell_Shadow_ImpPhaseShift", + ["Silent Resolve"] = "Spell_Nature_ManaRegenTotem", + ["Sinister Strike"] = "Spell_Shadow_RitualOfSacrifice", + ["Siphon Life"] = "Spell_Shadow_Requiem", + ["Skinning"] = "INV_Misc_Pelt_Wolf_01", + ["Slam"] = "Ability_Warrior_DecisiveStrike", + ["Slice and Dice"] = "Ability_Rogue_SliceDice", + ["Slow Fall"] = "Spell_Magic_FeatherFall", + ["Smelting"] = "Spell_Fire_FlameBlades", + ["Smite"] = "Spell_Holy_HolySmite", + ["Soothe Animal"] = "Ability_Hunter_BeastSoothe", + ["Soothing Kiss"] = "Spell_Shadow_SoothingKiss", + ["Soul Fire"] = "Spell_Fire_Fireball02", + ["Soul Link"] = "Spell_Shadow_GatherShadows", + ["Soulstone Resurrection"] = "INV_Misc_Orb_04", + ["Spell Lock"] = "Spell_Shadow_MindRot", + ["Spell Warding"] = "Spell_Holy_SpellWarding", + ["Spirit Bond"] = "Ability_Druid_DemoralizingRoar", + ["Spirit Tap"] = "Spell_Shadow_Requiem", + ["Spirit of Redemption"] = "INV_Enchant_EssenceEternalLarge", + ["Spiritual Focus"] = "Spell_Arcane_Blink", + ["Spiritual Guidance"] = "Spell_Holy_SpiritualGuidence", + ["Spiritual Healing"] = "Spell_Nature_MoonGlow", + ["Sprint"] = "Ability_Rogue_Sprint", + ["Starfire"] = "Spell_Arcane_StarFire", + ["Starshards"] = "Spell_Arcane_StarFire", + ["Staves"] = "INV_Staff_08", + ["Stealth"] = "Ability_Stealth", + ["Stoneclaw Totem"] = "Spell_Nature_StoneClawTotem", + ["Stoneform"] = "Spell_Shadow_UnholyStrength", + ["Stoneskin Totem"] = "Spell_Nature_StoneSkinTotem", + ["Stormstrike"] = "Spell_Holy_SealOfMight", + ["Strength of Earth Totem"] = "Spell_Nature_EarthBindTotem", + ["Stuck"] = "Spell_Shadow_Teleport", + ["Subtlety"] = "Ability_EyeOfTheOwl", + ["Suffering"] = "Spell_Shadow_BlackPlague", + ["Summon Charger"] = "Ability_Mount_Charger", + ["Summon Dreadsteed"] = "Ability_Mount_Dreadsteed", + ["Summon Felhunter"] = "Spell_Shadow_SummonFelHunter", + ["Summon Felsteed"] = "Spell_Nature_Swiftness", + ["Summon Imp"] = "Spell_Shadow_SummonImp", + ["Summon Succubus"] = "Spell_Shadow_SummonSuccubus", + ["Summon Voidwalker"] = "Spell_Shadow_SummonVoidWalker", + ["Summon Warhorse"] = "Spell_Nature_Swiftness", + ["Sunder Armor"] = "Ability_Warrior_Sunder", + ["Suppression"] = "Spell_Shadow_UnsummonBuilding", + ["Surefooted"] = "Ability_Kick", + ["Survivalist"] = "Spell_Shadow_Twilight", + ["Sweeping Strikes"] = "Ability_Rogue_SliceDice", + ["Swipe"] = "INV_Misc_MonsterClaw_03", + ["Sword Specialization"] = "INV_Sword_27", + ["Tactical Mastery"] = "Spell_Nature_EnchantArmor", + ["Tailoring"] = "Trade_Tailoring", + ["Tainted Blood"] = "Spell_Shadow_LifeDrain", + ["Tame Beast"] = "Ability_Hunter_BeastTaming", + ["Tamed Pet Passive"] = "Ability_Mount_PinkTiger", + ["Taunt"] = "Spell_Nature_Reincarnation", + ["Teleport: Darnassus"] = "Spell_Arcane_TeleportDarnassus", + ["Teleport: Ironforge"] = "Spell_Arcane_TeleportIronForge", + ["Teleport: Moonglade"] = "Spell_Arcane_TeleportMoonglade", + ["Teleport: Orgrimmar"] = "Spell_Arcane_TeleportOrgrimmar", + ["Teleport: Stormwind"] = "Spell_Arcane_TeleportStormWind", + ["Teleport: Thunder Bluff"] = "Spell_Arcane_TeleportThunderBluff", + ["Teleport: Undercity"] = "Spell_Arcane_TeleportUnderCity", + ["The Human Spirit"] = "INV_Enchant_ShardBrilliantSmall", + ["Thick Hide"] = "INV_Misc_Pelt_Bear_03", + ["Thorns"] = "Spell_Nature_Thorns", + ["Throw"] = "Ability_Throw", + ["Throwing Specialization"] = "INV_ThrowingAxe_03", + ["Throwing Weapon Specialization"] = "INV_ThrowingKnife_01", + ["Thrown"] = "INV_ThrowingKnife_02", + ["Thunder Clap"] = "Spell_Nature_ThunderClap", + ["Thundering Strikes"] = "Ability_ThunderBolt", + ["Thunderstomp"] = "Ability_Hunter_Pet_Gorilla", + ["Tidal Focus"] = "Spell_Frost_ManaRecharge", + ["Tidal Mastery"] = "Spell_Nature_Tranquility", + ["Tiger Riding"] = "Spell_Nature_Swiftness", + ["Tiger's Fury"] = "Ability_Mount_JungleTiger", + ["Torment"] = "Spell_Shadow_GatherShadows", + ["Totem"] = "Spell_Nature_StoneClawTotem", + ["Totemic Focus"] = "Spell_Nature_MoonGlow", + ["Touch of Weakness"] = "Spell_Shadow_DeadofNight", + ["Toughness"] = "Spell_Holy_Devotion", + ["Track Beasts"] = "Ability_Tracking", + ["Track Demons"] = "Spell_Shadow_SummonFelHunter", + ["Track Dragonkin"] = "INV_Misc_Head_Dragon_01", + ["Track Elementals"] = "Spell_Frost_SummonWaterElemental", + ["Track Giants"] = "Ability_Racial_Avatar", + ["Track Hidden"] = "Ability_Stealth", + ["Track Humanoids"] = "Ability_Tracking", + ["Track Undead"] = "Spell_Shadow_DarkSummoning", + ["Tranquil Air Totem"] = "Spell_Nature_Brilliance", + ["Tranquil Spirit"] = "Spell_Holy_ElunesGrace", + ["Tranquility"] = "Spell_Nature_Tranquility", + ["Tranquilizing Shot"] = "Spell_Nature_Drowsy", + ["Trap Mastery"] = "Ability_Ensnare", + ["Travel Form"] = "Ability_Druid_TravelForm", + ["Tremor Totem"] = "Spell_Nature_TremorTotem", + ["Trueshot Aura"] = "Ability_TrueShot", + ["Turn Undead"] = "Spell_Holy_TurnUndead", + ["Two-Handed Axes and Maces"] = "INV_Axe_10", + ["Two-Handed Axes"] = "INV_Axe_04", + ["Two-Handed Maces"] = "INV_Mace_04", + ["Two-Handed Swords"] = "Ability_MeleeDamage", + ["Two-Handed Weapon Specialization"] = "INV_Axe_09", + ["Unarmed"] = "Ability_GolemThunderClap", + ["Unbreakable Will"] = "Spell_Magic_MageArmor", + ["Unbridled Wrath Effect"] = "Spell_Nature_StoneClawTotem", + ["Unbridled Wrath"] = "Spell_Nature_StoneClawTotem", + ["Undead Horsemanship"] = "Spell_Nature_Swiftness", + ["Underwater Breathing"] = "Spell_Shadow_DemonBreath", + ["Unending Breath"] = "Spell_Shadow_DemonBreath", + ["Unholy Power"] = "Spell_Shadow_ShadowWordDominate", + ["Unleashed Fury"] = "Ability_BullRush", + ["Unyielding Faith"] = "Spell_Holy_UnyieldingFaith", + ["Vampiric Embrace"] = "Spell_Shadow_UnsummonBuilding", + ["Vanish"] = "Ability_Vanish", + ["Vanished"] = "Ability_Vanish", + ["Vengeance"] = "Spell_Nature_Purge", + ["Vigor"] = "Spell_Nature_EarthBindTotem", + ["Vile Poisons"] = "Ability_Rogue_FeignDeath", + ["Vindication"] = "Spell_Holy_Vindication", + ["Viper Sting"] = "Ability_Hunter_AimedShot", + ["Volley"] = "Ability_Marksmanship", + ["Wand Specialization"] = "INV_Wand_01", + ["Wands"] = "Ability_ShootWand", + ["War Stomp"] = "Ability_WarStomp", + ["Water Breathing"] = "Spell_Shadow_DemonBreath", + ["Water Walking"] = "Spell_Frost_WindWalkOn", + ["Weakened Soul"] = "Spell_Holy_AshesToAshes", + ["Whirlwind"] = "Ability_Whirlwind", + ["Will of the Forsaken"] = "Spell_Shadow_RaiseDead", + ["Windfury Totem"] = "Spell_Nature_Windfury", + ["Windfury Weapon"] = "Spell_Nature_Cyclone", + ["Windwall Totem"] = "Spell_Nature_EarthBind", + ["Wing Clip"] = "Ability_Rogue_Trip", + ["Winter's Chill"] = "Spell_Frost_ChillingBlast", + ["Wisp Spirit"] = "Spell_Nature_WispSplode", + ["Wolf Riding"] = "Spell_Nature_Swiftness", + ["Wound Poison II"] = "INV_Misc_Herb_16", + ["Wound Poison III"] = "INV_Misc_Herb_16", + ["Wound Poison IV"] = "INV_Misc_Herb_16", + ["Wound Poison"] = "INV_Misc_Herb_16", + ["Wrath"] = "Spell_Nature_AbolishMagic", + ["Wyvern Sting"] = "INV_Spear_02" +} + +BabbleSpell = {} +function BabbleSpell:GetSpellIcon(spell) + if spellIcons[spell] then + return "Interface\\Icons\\" .. spellIcons[spell] + end + return nil +end + +function BabbleSpell:GetTranslation(spell) + return spell +end diff --git a/src/dpslog/WeirdDPSMate/enUS/DPSMate_ParserENUS.lua b/src/dpslog/WeirdDPSMate/enUS/DPSMate_ParserENUS.lua new file mode 100644 index 0000000..4d40e22 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/enUS/DPSMate_ParserENUS.lua @@ -0,0 +1,2623 @@ +local t = {} +local strgfind = string.gfind +local tnbr = tonumber +local npcdb = NPCDB +local strsub = string.sub +local GetTime = GetTime +local strfind = string.find +local DB = DPSMate.DB +local CP = DPSMate.CombatPatterns + +---------------------------------------------------------------------------------- +-------------- Init -------------- +---------------------------------------------------------------------------------- +local Kicks = {} +local DmgProcs = {} +local CC = {} +local FailDT = {} +local Procs = {} +local OtherExceptions = {} +local Dispels = {} +local RCD = {} +local FailDB = {} +local ShieldFlags = {} +local BuffExceptions = {} + +local Player = "" +local AAttack = "AutoAttack" + +local GlobalStrings = { + "COMBATHITCRITOTHEROTHER", + "COMBATHITCRITSCHOOLOTHEROTHER", + "COMBATHITCRITOTHERSELF", + "COMBATHITCRITSCHOOLOTHERSELF", + "COMBATHITCRITSCHOOLSELFOTHER", + "COMBATHITCRITSELFOTHER", + "COMBATHITOTHEROTHER", + "COMBATHITSCHOOLOTHEROTHER", + "COMBATHITSCHOOLOTHERSELF", + "COMBATHITOTHERSELF", + "COMBATHITSCHOOLSELFOTHER", + "COMBATHITSELFOTHER", + "DAMAGESHIELDOTHEROTHER", + "DAMAGESHIELDOTHERSELF", + "DAMAGESHIELDSELFOTHER", + "ERR_COMBAT_DAMAGE_SSI", + "HEALEDCRITOTHEROTHER", + "HEALEDCRITOTHERSELF", + "HEALEDCRITSELFOTHER", + "HEALEDCRITSELFSELF", + "HEALEDOTHEROTHER", + "HEALEDOTHERSELF", + "HEALEDSELFOTHER", + "HEALEDSELFSELF", + "PERIODICAURADAMAGEOTHEROTHER", + "PERIODICAURADAMAGEOTHERSELF", + "PERIODICAURADAMAGESELFOTHER", + "PERIODICAURADAMAGESELFSELF", + "PERIODICAURAHEALOTHEROTHER", + "PERIODICAURAHEALOTHERSELF", + "PERIODICAURAHEALSELFOTHER", + "PERIODICAURAHEALSELFSELF", + "PET_DAMAGE_PERCENTAGE", + "SPELLEXTRAATTACKSOTHER", + "SPELLEXTRAATTACKSOTHER_SINGULAR", + "SPELLEXTRAATTACKSSELF", + "SPELLEXTRAATTACKSSELF_SINGULAR", + "SPELLHAPPINESSDRAINOTHER", + "SPELLHAPPINESSDRAINSELF", + "SPELLLOGCRITOTHEROTHER", + "SPELLLOGCRITOTHERSELF", + "SPELLLOGCRITSCHOOLOTHEROTHER", + "SPELLLOGCRITSCHOOLOTHERSELF", + "SPELLLOGCRITSCHOOLSELFOTHER", + "SPELLLOGCRITSCHOOLSELFSELF", + "SPELLLOGCRITSELFOTHER", + "SPELLLOGCRITSELFSELF", + "SPELLLOGOTHEROTHER", + "SPELLLOGOTHERSELF", + "SPELLLOGSCHOOLOTHEROTHER", + "SPELLLOGSCHOOLOTHERSELF", + "SPELLLOGSCHOOLSELFOTHER", + "SPELLLOGSCHOOLSELFSELF", + "SPELLLOGSELFOTHER", + "SPELLLOGSELFSELF", + "SPELLPOWERDRAINOTHEROTHER", + "SPELLPOWERDRAINOTHERSELF", + "SPELLPOWERDRAINSELFOTHER", + "SPELLPOWERLEECHOTHEROTHER", + "SPELLPOWERLEECHOTHERSELF", + "SPELLPOWERLEECHSELFOTHER", + "SPELLSPLITDAMAGEOTHEROTHER", + "SPELLSPLITDAMAGEOTHERSELF", + "SPELLSPLITDAMAGESELFOTHER", + "VSENVIRONMENTALDAMAGE_DROWNING_OTHER", + "VSENVIRONMENTALDAMAGE_DROWNING_SELF", + "VSENVIRONMENTALDAMAGE_FALLING_OTHER", + "VSENVIRONMENTALDAMAGE_FALLING_SELF", + "VSENVIRONMENTALDAMAGE_FATIGUE_OTHER", + "VSENVIRONMENTALDAMAGE_FATIGUE_SELF", + "VSENVIRONMENTALDAMAGE_FIRE_OTHER", + "VSENVIRONMENTALDAMAGE_FIRE_SELF", + "VSENVIRONMENTALDAMAGE_LAVA_OTHER", + "VSENVIRONMENTALDAMAGE_LAVA_SELF", + "VSENVIRONMENTALDAMAGE_SLIME_OTHER", + "VSENVIRONMENTALDAMAGE_SLIME_SELF", + "POWERGAINOTHEROTHER", + "POWERGAINOTHERSELF", + "POWERGAINSELFOTHER", + "POWERGAINSELFSELF", + "AURAAPPLICATIONADDEDOTHERHARMFUL", + "AURAAPPLICATIONADDEDOTHERHELPFUL", + "AURAAPPLICATIONADDEDSELFHARMFUL", + "AURAAPPLICATIONADDEDSELFHELPFUL", + "AURAADDEDSELFHELPFUL", + "AURAADDEDOTHERHELPFUL", + "AURAREMOVEDSELF", + "AURAREMOVEDOTHER", + "AURAADDEDSELFHARMFUL", + "AURAADDEDOTHERHARMFUL", + "AURADISPELSELF", + "AURADISPELOTHER", + "AURASTOLENOTHEROTHER", + "AURASTOLENOTHERSELF", + "AURASTOLENSELFOTHER", + "AURASTOLENSELFSELF", + "AURA_END", + "SIMPLECASTOTHEROTHER", + "SIMPLECASTOTHERSELF", + "SIMPLECASTSELFOTHER", + "SIMPLECASTSELFSELF", + "COMBATLOG_HONORGAIN", + "COMBATLOG_HONORAWARD", + "MISSEDSELFOTHER", + "MISSEDOTHERSELF", + "MISSEDOTHEROTHER", + "SPELLMISSSELFSELF", + "SPELLMISSSELFOTHER", + "SPELLMISSOTHERSELF", + "SPELLMISSOTHEROTHER", + "VSBLOCKSELFOTHER", + "VSBLOCKOTHERSELF", + "VSBLOCKOTHEROTHER", + "SPELLBLOCKEDSELFOTHER", + "SPELLBLOCKEDOTHERSELF", + "SPELLBLOCKEDOTHEROTHER", + "VSPARRYSELFOTHER", + "VSPARRYOTHERSELF", + "VSPARRYOTHEROTHER", + "SPELLPARRIEDOTHEROTHER", + "SPELLPARRIEDOTHERSELF", + "SPELLPARRIEDSELFOTHER", + "SPELLPARRIEDSELFSELF", + "SPELLINTERRUPTOTHEROTHER", + "SPELLINTERRUPTOTHERSELF", + "SPELLINTERRUPTSELFOTHER", + "SPELLEVADEDOTHEROTHER", + "SPELLEVADEDSELFOTHER", + "SPELLEVADEDOTHERSELF", + "SPELLEVADEDSELFSELF", + "VSEVADEOTHEROTHER", + "VSEVADEOTHERSELF", + "VSEVADESELFOTHER", + "VSABSORBSELFOTHER", + "VSABSORBOTHERSELF", + "VSABSORBOTHEROTHER", + "SPELLLOGABSORBSELFSELF", + "SPELLLOGABSORBSELFOTHER", + "SPELLLOGABSORBOTHERSELF", + "SPELLLOGABSORBOTHEROTHER", + "VSDODGESELFOTHER", + "VSDODGEOTHERSELF", + "VSDODGEOTHEROTHER", + "SPELLDODGEDSELFSELF", + "SPELLDODGEDSELFOTHER", + "SPELLDODGEDOTHERSELF", + "SPELLDODGEDOTHEROTHER", + "VSRESISTSELFOTHER", + "VSRESISTOTHERSELF", + "VSRESISTOTHEROTHER", + "SPELLRESISTSELFSELF", + "SPELLRESISTSELFOTHER", + "SPELLRESISTOTHERSELF", + "SPELLRESISTOTHEROTHER", + "PROCRESISTSELFSELF", + "PROCRESISTSELFOTHER", + "PROCRESISTOTHERSELF", + "PROCRESISTOTHEROTHER", + "SPELLREFLECTSELFSELF", + "SPELLREFLECTSELFOTHER", + "SPELLREFLECTOTHERSELF", + "SPELLREFLECTOTHEROTHER", + "VSDEFLECTSELFOTHER", + "VSDEFLECTOTHERSELF", + "VSDEFLECTOTHEROTHER", + "SPELLDEFLECTEDSELFSELF", + "SPELLDEFLECTEDSELFOTHER", + "SPELLDEFLECTEDOTHERSELF", + "SPELLDEFLECTEDOTHEROTHER", + "VSIMMUNESELFOTHER", + "VSIMMUNEOTHERSELF", + "VSIMMUNEOTHEROTHER", + "SPELLIMMUNESELFSELF", + "SPELLIMMUNESELFOTHER", + "SPELLIMMUNEOTHERSELF", + "SPELLIMMUNEOTHEROTHER", + "UNITDIESSELF", + "UNITDIESOTHER", + "UNITDESTROYEDOTHER", + "ERR_KILLED_BY_S", + "SELFKILLOTHER", + "PARTYKILLOTHER", + "INSTAKILLSELF", + "INSTAKILLOTHER", + "SPELLCASTGOOTHER", + "SPELLCASTGOOTHERTARGETTED", + "SPELLCASTGOSELF", + "SPELLCASTGOSELFTARGETTED", + "SPELLCASTOTHERSTART", + "SPELLCASTSELFSTART", + "SPELLTERSE_OTHER", + "SPELLTERSE_SELF", + "SPELLTERSEPERFORM_OTHER", + "SPELLTERSEPERFORM_SELF", + "SIMPLEPERFORMOTHEROTHER", + "SIMPLEPERFORMOTHERSELF", + "SIMPLEPERFORMSELFOTHER", + "SIMPLEPERFORMSELFSELF", + "SPELLPERFORMGOOTHER", + "SPELLPERFORMGOOTHERTARGETTED", + "SPELLPERFORMGOSELF", + "SPELLPERFORMGOSELFTARGETTED", + "SPELLPERFORMOTHERSTART", + "SPELLPERFORMSELFSTART", + "DISPELFAILEDOTHEROTHER", + "DISPELFAILEDSELFOTHER", + "DISPELFAILEDOTHERSELF", + "DISPELFAILEDSELFSELF", + "IMMUNESPELLSELFSELF", + "IMMUNESPELLSELFOTHER", + "IMMUNESPELLOTHERSELF", + "IMMUNESPELLOTHEROTHER", + "IMMUNESELFSELF", + "IMMUNESELFOTHER", + "IMMUNEOTHERSELF", + "IMMUNEOTHEROTHER", +} + +function DPSMate.Parser:InitParser() + -- Localizing pointer + Kicks = self.Kicks + DmgProcs = self.DmgProcs + Player = self.player + CC = self.CC + FailDT = self.FailDT + Procs = self.procs + OtherExceptions = self.OtherExceptions + Dispels = self.Dispels + RCD = self.RCD + FailDB = self.FailDB + ShieldFlags = DB.ShieldFlags + BuffExceptions = self.BuffExceptions + + -- Applying SWStats FixLogStrings function to Globals + for _, val in GlobalStrings do + local glb = getglobal(val) + local str = string.gsub(glb, "(%%%d?$?s)('s)", "%1% %2") + setglobal(val, str) + end + + -- Build pattern tables from the (now-normalized) WoW globals + DPSMate.CombatPatterns:BuildPatterns() +end + +function DPSMate.Parser:TestSuit() + local hardName = "Peter's Cannonball" + local hardName2 = "Shino's Cannonball's Head" + local hardAbName = "Nature's Swiftness of Whatever" + + local test = 21 + for i=1,10 do + for p=1,40 do + if test == 1 then + DPSMate.Parser:FriendlyPlayerDamage(hardName..p.." 's "..hardAbName.." hits "..hardName2.." for 22 Fire damage. (22 absorbed)"); + DPSMate.Parser:FriendlyPlayerDamage(hardName..p.." 's "..hardAbName.." was blocked by "..hardName2.."."); + DPSMate.Parser:FriendlyPlayerDamage(hardName..p.." 's "..hardAbName.." is parried by "..hardName2.."."); + DPSMate.Parser:FriendlyPlayerDamage(hardName..p.." 's "..hardAbName.." missed "..hardName2.."."); + DPSMate.Parser:FriendlyPlayerDamage(hardName..p.." interrupts "..hardName2.." 's "..hardAbName.."."); + elseif test == 2 then + DPSMate.Parser:SelfHits("You hit "..hardName.." for 22 Fire damage. (22 absorbed)") + DPSMate.Parser:SelfHits("You hit "..hardName.." for 22 Fire damage. (glancing)") + DPSMate.Parser:SelfHits("You fall and lose 26 health.") + DPSMate.Parser:SelfHits("You lose 25 health for swimming in lava.") + DPSMate.Parser:SelfHits("You suffer 24 points of fire damage.") + DPSMate.Parser:SelfHits("You are drowning and lose 23 health.") + DPSMate.Parser:SelfHits("You lose 22 health for swimming in slime.") + elseif test == 3 then + DPSMate.Parser:SelfMisses("You miss "..hardName..".") + DPSMate.Parser:SelfMisses("You attack. "..hardName.. " absorbs all the damage.") + DPSMate.Parser:SelfMisses("You attack. "..hardName.. " dodges.") + DPSMate.Parser:SelfMisses("You attack. "..hardName.. " parries.") + DPSMate.Parser:SelfMisses("You attack. "..hardName.. " blocks.") + elseif test == 4 then + DPSMate.Parser:SelfSpellDMG("Your "..hardAbName.." hits "..hardName.." for 22 Fire damage. (22 absorbed)") + DPSMate.Parser:SelfSpellDMG("Your "..hardAbName.." was blocked by "..hardName..".") + DPSMate.Parser:SelfSpellDMG("Your "..hardAbName.." was dodged by "..hardName..".") + DPSMate.Parser:SelfSpellDMG("Your "..hardAbName.." is parried by "..hardName..".") + DPSMate.Parser:SelfSpellDMG("Your "..hardAbName.." missed "..hardName..".") + DPSMate.Parser:SelfSpellDMG("Your "..hardAbName.." is absorbed by "..hardName..".") + elseif test == 5 then + DPSMate.Parser:FriendlyPlayerHits(hardName2.." hits "..hardName.." for 22 Fire damage. (22 absorbed)") + DPSMate.Parser:FriendlyPlayerHits(hardName2.." hits "..hardName.." for 22 Fire damage. (glancing)") + DPSMate.Parser:FriendlyPlayerHits(hardName2.." falls and loses 26 health.") + DPSMate.Parser:FriendlyPlayerHits(hardName2.." loses 25 health for swimming in lava.") + DPSMate.Parser:FriendlyPlayerHits(hardName2.." suffers 24 points of fire damage.") + DPSMate.Parser:FriendlyPlayerHits(hardName2.." is drowning and loses 23 health.") + DPSMate.Parser:FriendlyPlayerHits(hardName2.." loses 22 health for swimming in slime.") + elseif test == 6 then + DPSMate.Parser:PeriodicDamage(hardName.." is afflicted by "..hardAbName..".") + DPSMate.Parser:PeriodicDamage(hardName.." suffers 22 Fire damage from "..hardName2.." 's "..hardAbName..". (22 absorbed)") + DPSMate.Parser:PeriodicDamage(hardName.." suffers 22 Fire damage from your "..hardAbName..". (22 absorbed)") + DPSMate.Parser:PeriodicDamage(hardName.." 's "..hardAbName.." is absorbed by "..hardName2..".") + DPSMate.Parser:PeriodicDamage("Your "..hardAbName.." is absorbed by "..hardName2..".") + elseif test == 7 then + DPSMate.Parser:FriendlyPlayerMisses(hardName.." misses "..hardName2..".") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. "..hardName2.." absorbs all the damage.") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. You absorb all the damage.") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. "..hardName2.." dodges.") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. You dodge.") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. "..hardName2.." parries.") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. You parry.") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. "..hardName2.." blocks.") + DPSMate.Parser:FriendlyPlayerMisses(hardName.." attacks. You block.") + elseif test == 8 then + DPSMate.Parser:SpellDamageShieldsOnSelf("You reflect 22 Fire damage to "..hardName..".") + elseif test == 9 then + DPSMate.Parser:SpellDamageShieldsOnOthers(hardName.." reflects 22 Fire damage to "..hardName2..".") -- No results o.o? + elseif test == 10 then + DPSMate.Parser:CreatureVsSelfHits(hardName.." hits you for 22 Fire damage. (22 blocked)") + elseif test == 11 then + DPSMate.Parser:CreatureVsSelfMisses("") -- TODO + elseif test == 12 then + DPSMate.Parser:CreatureVsSelfSpellDamage(hardName.." 's "..hardAbName.." hits you for 22 Fire damage. (22 blocked)") + DPSMate.Parser:CreatureVsSelfSpellDamage(hardName.." 's "..hardAbName.." crits you for 22 Fire damage. (22 blocked)") + DPSMate.Parser:CreatureVsSelfSpellDamage(hardName.." 's "..hardAbName.." misses you.") + DPSMate.Parser:CreatureVsSelfSpellDamage(hardName.." 's "..hardAbName.." was parried.") + DPSMate.Parser:CreatureVsSelfSpellDamage(hardName.." 's "..hardAbName.." was dodged.") + DPSMate.Parser:CreatureVsSelfSpellDamage(hardName.." 's "..hardAbName.." was resisted.") + DPSMate.Parser:CreatureVsSelfSpellDamage("You interrupt "..hardName.." 's "..hardAbName..".") + DPSMate.Parser:CreatureVsSelfSpellDamage("You absorb "..hardName.." 's "..hardAbName..".") + elseif test == 13 then + DPSMate.Parser:PeriodicSelfDamage("You suffer 22 Fire damage from "..hardName.." 's "..hardAbName..". (22 resisted)") + DPSMate.Parser:PeriodicSelfDamage("You suffer 22 Fire damage from your "..hardAbName..". (22 resisted)") + DPSMate.Parser:PeriodicSelfDamage("You are afflicted by "..hardAbName.." (3).") + DPSMate.Parser:PeriodicSelfDamage("You absorb "..hardName.." 's "..hardAbName..".") + elseif test == 14 then + DPSMate.Parser:CreatureVsCreatureHits(hardName.." hits "..hardName2.." for 22 Fire damage. (crushing)") + DPSMate.Parser:CreatureVsCreatureHits(hardName.." crits "..hardName2.." for 22 Fire damage. (crushing)") + elseif test == 15 then + DPSMate.Parser:CreatureVsCreatureMisses(hardName.." attacks. "..hardName2.." absorbs all the damage.") + DPSMate.Parser:CreatureVsCreatureMisses(hardName.." attacks. "..hardName2.." parries.") + DPSMate.Parser:CreatureVsCreatureMisses(hardName.." attacks. "..hardName2.." dodges.") + DPSMate.Parser:CreatureVsCreatureMisses(hardName.." attacks. "..hardName2.." blocks.") + DPSMate.Parser:CreatureVsCreatureMisses(hardName.." misses "..hardName2..".") + elseif test == 16 then + DPSMate.Parser:SpellPeriodicDamageTaken(hardName.." suffers 22 Fire damage from "..hardName2.." 's "..hardAbName..". (22 resisted)") + DPSMate.Parser:SpellPeriodicDamageTaken(hardName.." suffers 22 Fire damage from your "..hardAbName..". (22 resisted)") + DPSMate.Parser:SpellPeriodicDamageTaken(hardName.." is afflicted by "..hardAbName.." (3).") + DPSMate.Parser:SpellPeriodicDamageTaken(hardName.." 's "..hardAbName.." is absorbed by "..hardName2..".") + elseif test == 17 then + DPSMate.Parser:CreatureVsCreatureSpellDamage(hardName.." 's "..hardAbName.." hits "..hardName2.." for 22 Fire damage. (22 resisted)") + DPSMate.Parser:CreatureVsCreatureSpellDamage(hardName.." 's "..hardAbName.." crits "..hardName2.." for 22 Fire damage. (22 resisted)") + DPSMate.Parser:CreatureVsCreatureSpellDamage(hardName.." 's "..hardAbName.." was dodged by "..hardName2..".") + DPSMate.Parser:CreatureVsCreatureSpellDamage(hardName.." 's "..hardAbName.." was parried by "..hardName2..".") + DPSMate.Parser:CreatureVsCreatureSpellDamage(hardName.." 's "..hardAbName.." missed "..hardName2..".") + DPSMate.Parser:CreatureVsCreatureSpellDamage(hardName.." 's "..hardAbName.." was resisted by "..hardName2..".") + DPSMate.Parser:CreatureVsCreatureSpellDamage(hardName.." 's "..hardAbName.." is absorbed by "..hardName2..".") + elseif test == 18 then + DPSMate.Parser:SpellSelfBuff("Your "..hardAbName.." critically heals "..hardName.." for 22.") + DPSMate.Parser:SpellSelfBuff("Your "..hardAbName.." heals "..hardName.." for 22.") + DPSMate.Parser:SpellSelfBuff("You gain 22 Energy from "..hardAbName..".") + DPSMate.Parser:SpellSelfBuff("You gain 22 Rage from "..hardAbName..".") + DPSMate.Parser:SpellSelfBuff("You gain 22 Mana from "..hardAbName..".") + DPSMate.Parser:SpellSelfBuff("You gain 2 extra attack through "..hardAbName..".") + DPSMate.Parser:SpellSelfBuff("You gain 2 extra attacks through "..hardAbName..".") + elseif test == 19 then + DPSMate.Parser:SpellPeriodicSelfBuff("You gain 22 health from "..hardName.." 's "..hardAbName..".") + DPSMate.Parser:SpellPeriodicSelfBuff("You gain 22 health from "..hardAbName..".") + DPSMate.Parser:SpellPeriodicSelfBuff("You gain "..hardAbName..".") + elseif test == 20 then + DPSMate.Parser:SpellPeriodicFriendlyPlayerBuffs(hardName.." gains 22 health from "..hardName2.." 's "..hardAbName..".") + DPSMate.Parser:SpellPeriodicFriendlyPlayerBuffs(hardName.." gains 22 health from your "..hardAbName..".") + DPSMate.Parser:SpellPeriodicFriendlyPlayerBuffs(hardName.." gains 22 health from "..hardAbName..".") + DPSMate.Parser:SpellPeriodicFriendlyPlayerBuffs(hardName.." gains "..hardAbName..".") + elseif test == 21 then + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." 's "..hardAbName.." critically heals "..hardName2.." for 22.") + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." 's "..hardAbName.." heals "..hardName2.." for 22.") + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." begins to cast "..hardAbName..".") + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." gains 22 Energy from "..hardName2.." 's "..hardAbName..".") + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." gains 22 Rage from "..hardName2.." 's "..hardAbName..".") + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." gains 22 Mana from "..hardName2.." 's "..hardAbName..".") + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." gains 2 extra attack through "..hardAbName..".") + DPSMate.Parser:SpellHostilePlayerBuff(hardName.." gains 2 extra attacks through "..hardAbName..".") + end + end + end +end + +local function GetNextWord(msg, k, untilList, flg) + local bestI, bestJ, bestCat = nil, nil, nil + for cat, val in pairs(untilList) do + local i,j = strfind(msg, val, k, true); + if i and (bestI == nil or i < bestI) then + bestI, bestJ, bestCat = i, j, cat + end + end + if bestCat then + if flg then + return nil, bestCat, bestJ+1 + else + return strsub(msg, k, bestI-1), bestCat, bestJ+1 + end + end + return nil, -1 -- Nothing found +end + +local function GetDamage(nextword) + local i,j = strfind(nextword, " ", 1, true); + if i then -- We have a prefix + local amount = tnbr(strsub(nextword, 1, j-1)); + i = j + 1 + _,j = strfind(nextword, " ", j+1, true); + return amount, strsub(nextword, i, j-1) + else + return tnbr(nextword), "" + end + local debug = DPSMate.Debug and DPSMate.Debug:Store("GetDamage returns nil: Input:"..(nextword or "INPUT NIL")) or DPSMate:SendMessage("GetDamage returns nil: Input:"..(nextword or "INPUT NIL")) + return nil, nil +end + +local function GetPrefix(msg, k) + -- Prefix like (x absorbed) etc. + local i,j = strfind(msg, " (", k, true); + if i then + k = j+1 + i,j = strfind(msg, " ", k, true); + + local prefixAmount = 0; + if i then + prefixAmount = tnbr(strsub(msg, k, j-1)); + k = j+1 + end + i,j = strfind(msg, ")", k, true); + return prefixAmount, strsub(msg, k, j-1), k + end + return nil, nil, nil +end + +---------------------------------------------------------------------------------- +-------------- Damage Done -------------- +---------------------------------------------------------------------------------- + +local SHChoices = {"hit ", "crit ", "fall and lose ", "lose ", "suffer ", "are drowning and lose ", "critically strike "} +function DPSMate.Parser:SelfHits(msg) + -- Pattern-based matching (auto-adapts to server combat log format) + if CP.ready then + local clean, absorbed, blocked, glancing, crushing = CP:StripTrailers(msg) + local hitType, r = CP:TryMatch(clean, CP.selfMeleeHit) + if hitType then + local hit, crit = 0, 0 + if hitType == "hit" then hit = 1 else crit = 1 end + local glance_val = 0 + if glancing then glance_val = 1; hit = 0; crit = 0 end + local block_val = blocked + if block_val == 1 then hit = 0; crit = 0 end + if absorbed > 0 then + DB:SetUnregisterVariables(absorbed, AAttack, Player) + end + DB:EnemyDamage(true, nil, Player, AAttack, hit, crit, 0, 0, 0, 0, r.amount, r.target, block_val, 0) + if self.TargetParty[r.target] then + DB:BuildFail(1, r.target, Player, AAttack, r.amount) + DB:DeathHistory(r.target, Player, AAttack, r.amount, hit, crit, 0, 0) + else + DB:DamageDone(Player, AAttack, hit, crit, 0, 0, 0, 0, r.amount, glance_val, block_val) + end + return + end + -- Try environment damage patterns + hitType, r = CP:TryMatch(clean, CP.envDmgSelf) + if hitType then + local envName = strupper(strsub(hitType, 1, 1)) .. strsub(hitType, 2) + DB:DamageTaken(Player, envName, 1, 0, 0, 0, 0, 0, r.amount, "Environment", 0, 0) + DB:DeathHistory(Player, "Environment", envName, r.amount, 1, 0, 0, 0) + if hitType == "lava" then DB:AddSpellSchool("Lava","fire") end + if hitType == "fire" then DB:AddSpellSchool("Fire","fire") end + return + end + end + + -- Legacy fallback + local i,j,k = 0,0,5 + local nextword, choice; + _, choice, k = GetNextWord(msg, k, SHChoices, true) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("1: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("1: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice < 3 or choice == 7 then + local hit, crit = 0, 0 + if choice == 1 then hit = 1 else crit = 1 end + i,j = strfind(msg, " for ", k, true) + local target = strsub(msg, k, i-1) + k = j+1 + i, j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1); + k = j+1 + + local amount, school = GetDamage(nextword) + local prefixAmount, prefixCase, k = GetPrefix(msg, k) + + local glance, block = 0,0 + if prefixCase then + if prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, AAttack, Player) + elseif prefixCase == "glancing" then glance = 1; hit=0; crit=0 + else block = 1 end -- We could do more with that info + end + + DB:EnemyDamage(true, nil, Player, AAttack, hit, crit, 0, 0, 0, 0, amount, target, block, 0) -- glance? + if self.TargetParty[target] then + DB:BuildFail(1, target, Player, AAttack, amount) + DB:DeathHistory(target, Player, AAttack, amount, hit, crit, 0, 0) + else + DB:DamageDone(Player, AAttack, hit, crit, 0, 0, 0, 0, amount, glance, block) + end + return + elseif choice == 3 then + i, j = strfind(msg, " health.", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + DB:DamageTaken(Player, "Falling", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(Player, "Environment", "Falling", amount, 1, 0, 0, 0) + return + elseif choice == 4 then + i, j = strfind(msg, " health", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + k = j+1 + i, j = strfind(msg, "lava", k, true) + if i then + DB:DamageTaken(Player, "Lava", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(Player, "Environment", "Lava", amount, 1, 0, 0, 0) + DB:AddSpellSchool("Lava","fire") + else -- Slime + DB:DamageTaken(Player, "Slime", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(Player, "Environment", "Slime", amount, 1, 0, 0, 0) + end + return + elseif choice == 5 then + i, j = strfind(msg, " points ", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + DB:DamageTaken(Player, "Fire", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(Player, "Environment", "Fire", amount, 1, 0, 0, 0) + DB:AddSpellSchool("Fire","fire") + return + else + i, j = strfind(msg, " health.", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + DB:DamageTaken(Player, "Drowning", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(Player, "Environment", "Drowning", amount, 1, 0, 0, 0) + return + end +end + +local SMChoices = {"miss ", "attack. ", "tack but "} +local SMChoices2 = {" absorbs ", " dodges.", " parries.", " blocks.", " deflects."} +function DPSMate.Parser:SelfMisses(msg) + local i,j,k = 0,0,5 + local nextword, choice; + _, choice, k = GetNextWord(msg, k, SMChoices, true) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("2: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("2: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 3 then return end + + if choice == 1 then + i, j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + DB:EnemyDamage(true, DPSMateEDT, Player, AAttack, 0, 0, 1, 0, 0, 0, 0, target, 0, 0) + DB:DamageDone(Player, AAttack, 0, 0, 1, 0, 0, 0, 0, 0, 0) + return + else + nextword, choice, k = GetNextWord(msg, k, SMChoices2, false) + if choice == 1 then + DB:Absorb(AAttack, nextword, Player) + else + local parry, dodge, block = 0,0,0 + if choice == 2 then dodge = 1 + elseif choice == 3 then parry = 1 + else block = 1 end -- Contains deflect(?) + DB:EnemyDamage(true, nil, Player, AAttack, 0, 0, 0, parry, dodge, 0, 0, nextword, block, 0) + DB:DamageDone(Player, AAttack, 0, 0, 0, parry, dodge, 0, 0, 0, block) + end + return + end +end + +local SSDChoices = {" hits ", " crits ", " was ", " is parried by ", " missed ", " is absorbed by ", " cast ", " failed.", "You interrupt ", " is reflected back ", "You perform ", "You resisted ", "ZONE_INFO: ", "COMBATANT_INFO: ", "LOOT: ", " critically hits ", " critically strikes "} +function DPSMate.Parser:SelfSpellDMG(msg) + if strfind(msg, " is immune to ", 1, true) then return end + + -- Pattern-based matching for spell hits/crits + if CP.ready then + local clean, absorbed = CP:StripTrailers(msg) + local hitType, r = CP:TryMatch(clean, CP.selfSpellHit) + if hitType then + local hit, crit = 0, 0 + if hitType == "hit" then hit = 1 else crit = 1 end + local ability = r.ability + local target = r.target or Player + local amount = r.amount + local school = r.school + + if target == "you" then target = Player end + if school then DB:AddSpellSchool(ability, school) end + local block = 0 + if absorbed > 0 then DB:SetUnregisterVariables(absorbed, ability, Player) end + + if Kicks[ability] then DB:AssignPotentialKick(Player, ability, target, GetTime()) end + if DmgProcs[ability] then DB:BuildBuffs(Player, Player, ability, true) end + if self.IgnoredDmgSpells[ability] then return end + DB:EnemyDamage(true, nil, Player, ability, hit, crit, 0, 0, 0, 0, amount, target, block, 0) + if self.TargetParty[target] then + DB:BuildFail(1, target, Player, ability, amount) + DB:DeathHistory(target, Player, ability, amount, hit, crit, 0, 0) + else + DB:DamageDone(Player, ability, hit, crit, 0, 0, 0, 0, amount, 0, block) + end + return + end + -- Try self spell misses + hitType, r = CP:TryMatch(clean, CP.selfSpellMiss) + if hitType then + local ability = r.ability + local target = r.target + if target == "you" then target = Player end + if hitType == "miss" then + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 1, 0, 0, 0, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 1, 0, 0, 0, 0, 0, 0) + elseif hitType == "resist" then + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 0, 0, 1, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 0, 0, 1, 0, 0, 0) + elseif hitType == "parry" then + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 1, 0, 0, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 1, 0, 0, 0, 0, 0) + elseif hitType == "dodge" then + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 0, 1, 0, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 0, 1, 0, 0, 0, 0) + elseif hitType == "absorb" then + DB:Absorb(ability, target, Player) + elseif hitType == "block" then + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 0, 0, 0, 0, target, 1, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 0, 0, 0, 0, 0, 1) + elseif hitType == "immune" then + -- immune, no action needed + end + return + end + end + + -- Legacy fallback + local i,j,k = 0,0,0 + local nextword, choice, ability; + ability, choice, k = GetNextWord(msg, k, SSDChoices, false) + if choice == -1 then + -- Last resort: try periodic damage via legacy parser + if strfind(msg, " suffers ", 1, true) then + self:PeriodicDamage(msg) + elseif strfind(msg, "is immune", 1, true) then + return + else + local debug = DPSMate.Debug and DPSMate.Debug:Store("3: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("3: Event not parsed yet, inform Shino! => "..msg)) + end + return + end + local o,p = strfind(ability, "Your ", 1, true); + if o then + ability = strsub(ability, p+1); + end + + if choice == 8 then return end + if choice == 10 then return end + if choice == 11 then return end + --if choice == 13 then return end + if choice == 13 or choice == 14 or choice == 15 then return end + + -- TODO: You resisted your Flames. + if choice == 12 then + return + end + + if choice < 3 or choice == 16 or choice == 17 then + local hit, crit = 0,0 + if choice == 1 then hit = 1 else crit = 1 end + i,j = strfind(msg, " for ", k, true) + local target = strsub(msg, k, i-1) + k = j+1 + i, j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1); + k = j+1 + + local amount, school = GetDamage(nextword) + local prefixAmount, prefixCase, k = GetPrefix(msg, k) + + if target == "you" then target = Player end + + DB:AddSpellSchool(ability,school) + local block = 0 + if prefixCase then + if prefixCase == "absorbed" then DB:SetUnregisterVariables(prefixAmount, ability, Player) + elseif prefixCase == "blocked" then block = 1; hit=0; crit=0 + else end -- Partial resists(?) + end + + if Kicks[ability] then DB:AssignPotentialKick(Player, ability, target, GetTime()) end + if DmgProcs[ability] then DB:BuildBuffs(Player, Player, ability, true) end + if self.IgnoredDmgSpells[ability] then return end + DB:EnemyDamage(true, nil, Player, ability, hit, crit, 0, 0, 0, 0, amount, target, block, 0) + if self.TargetParty[target] then + DB:BuildFail(1, target, Player, ability, amount) + DB:DeathHistory(target, Player, ability, amount, hit, crit, 0, 0) + else + DB:DamageDone(Player, ability, hit, crit, 0, 0, 0, 0, amount, 0, block) + end + return + elseif choice == 3 then + i,j = strfind(msg, " by ", k, true); + local case = strsub(msg, k, i-1); + k = j+1 + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + + if case == "dodged" then + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 0, 1, 0, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 0, 1, 0, 0, 0, 0) + elseif case == "blocked" then + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 0, 0, 0, 0, target, 1, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 0, 0, 0, 0, 0, 1) + else + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 0, 0, 1, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 0, 0, 1, 0, 0, 0) + end + return + elseif choice == 4 then + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 0, 1, 0, 0, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 0, 1, 0, 0, 0, 0, 0) + return + elseif choice == 5 then + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + DB:EnemyDamage(true, nil, Player, ability, 0, 0, 1, 0, 0, 0, 0, target, 0, 0) + DB:DamageDone(Player, ability, 0, 0, 1, 0, 0, 0, 0, 0, 0) + return + elseif choice == 6 then + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + DB:Absorb(ability, target, Player) + return + elseif choice == 7 then + i,j = strfind(msg, " on ", k, true) + if i then + ability = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + if target=="you" then target = Player end + if Dispels[ability] then DB:AwaitDispel(ability, target, Player, GetTime()) end + if RCD[ability] then DPSMate:Broadcast(2, Player, target, ability) end + return + else + i,j = strfind(msg, ".", k, true) + ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, "Unknown", Player, GetTime()) end + return + end + return + elseif choice == 9 then + i,j = strfind(msg, ".", k, true); + nextword = strsub(msg, k, j-1); + i,j = strfind(nextword, " 's ", 1, true) + local target = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + + local causeAbility = "Counterspell" + local usr = DPSMateUser[Player] + if usr then + if usr[2] == "priest" then + causeAbility = "Silence" + end + if usr[4] and usr[6] then + local owner = DPSMate:GetUserById(usr[6]) + if owner and DPSMateUser[owner] then + causeAbility = "Spell Lock" + end + end + end + DB:Kick(Player, target, causeAbility, ability) + return + end +end + +local PDChoices = {" suffers ", " is afflicted by ", " is absorbed by ", " drains ", " was resisted by "} +function DPSMate.Parser:PeriodicDamage(msg) + -- Pattern-based matching for periodic damage (auto-detected field mappings) + if CP.ready then + local clean, absorbed = CP:StripTrailers(msg) + local hitType, r = CP:TryMatch(clean, CP.periodicDmg) + if hitType then + local sufferer = r.target or Player + local caster = r.source or Player + local amount = r.amount + local school = r.school + local ability = r.ability + if not ability or not amount then return end + + if absorbed > 0 then + DB:SetUnregisterVariables(absorbed, ability.."(Periodic)", caster) + end + DB:EnemyDamage(true, nil, caster, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, sufferer, 0, 0) + DB:DamageDone(caster, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, 0, 0) + if self.TargetParty[sufferer] and self.TargetParty[caster] then + DB:BuildFail(1, sufferer, caster, ability.."(Periodic)", amount) + DB:DeathHistory(sufferer, caster, ability.."(Periodic)", amount, 1, 0, 0, 0) + end + DB:AddSpellSchool(ability.."(Periodic)", school) + return + end + end + + -- Legacy fallback + local i,j,k = 0,0,0 + local nextword, choice, source; + source, choice, k = GetNextWord(msg, k, PDChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("4: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("4: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 4 then return end + + if choice == 1 then + i,j = strfind(msg, " from ", k, true) + nextword = strsub(msg, k, i-1) + k = j+1 + local amount, school = GetDamage(nextword) + i,j = strfind(msg, " 's ", k, true) + local target; + if i and j then + target = strsub(msg, k, i-1) + k = j+1 + else + target = Player + k = k + 5 + end + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1); + local prefixAmount, prefixCase, k = GetPrefix(msg, k) + + if prefixCase and prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, ability.."(Periodic)", target) + end + DB:EnemyDamage(true, nil, target, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, source, 0, 0) + DB:DamageDone(target, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, 0, 0) + if self.TargetParty[source] and self.TargetParty[target] then DB:BuildFail(1, source, target, ability.."(Periodic)", amount);DB:DeathHistory(source, target, ability.."(Periodic)", amount, 1, 0, 0, 0) end + DB:AddSpellSchool(ability.."(Periodic)",school) + return + elseif choice == 2 then + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + i,j = strfind(ability, "(", 1, true) + if i then ability = strsub(ability, 1, i-2) end + DB:ConfirmAfflicted(source, ability, GetTime()) + if CC[ability] then + DB:BuildActiveCC(source, ability) + end + return + elseif choice == 5 then + i,j = strfind(source, " 's ", 1, true) + if not i then return end + local ability = strsub(source, j+1) + source = strsub(msg, 1, i-1) + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + DB:EnemyDamage(true, nil, source, ability.."(Periodic)", 0, 0, 0, 0, 0, 1, 0, target, 0, 0) + DB:DamageDone(source, ability.."(Periodic)", 0, 0, 0, 0, 0, 1, 0, 0, 0) + return + else + nextword = source + i,j = strfind(nextword, " 's ", 1, true) + local ability; + if i then + source = strsub(nextword, 1, i-1); + ability = strsub(nextword, j+1) + else + source = Player + ability = strsub(nextword, 5) + end + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + DB:Absorb(ability.."(Periodic)", target, source) + return + end +end + +local FPDList = {" hits ", " crits ", " was ", " is parried by ", " missed ", " misses ", " is absorbed by ", " fail", " is reflected back ", " immune ", " causes ", " critically hits ", " critically strikes "} +local FPDList2 = {" begins to cast ", " begins to perform ", " is killed by ", " casts ", " performs "} +function DPSMate.Parser:FriendlyPlayerDamage(msg) + if strfind(msg, " is immune to ", 1, true) then return end + + -- Pattern-based matching for other player spell damage + if CP.ready then + local clean, absorbed = CP:StripTrailers(msg) + local hitType, r = CP:TryMatch(clean, CP.otherSpellHit) + if hitType then + local hit, crit = 0, 0 + if hitType == "hit" then hit = 1 else crit = 1 end + local source = self:QualifyPetSource(r.source) + local ability = r.ability + local target = r.target + local amount = r.amount + local school = r.school + + if target == "you" then target = Player end + if school then DB:AddSpellSchool(ability, school) end + local block = 0 + if absorbed > 0 then DB:SetUnregisterVariables(absorbed, ability, source) end + + if Kicks[ability] then DB:AssignPotentialKick(source, ability, target, GetTime()) end + if DmgProcs[ability] then DB:BuildBuffs(source, source, ability, true) end + if self.IgnoredDmgSpells[ability] then return end + DB:EnemyDamage(true, nil, source, ability, hit, crit, 0, 0, 0, 0, amount, target, block, 0) + if self.TargetParty[target] then + if self.TargetParty[source] then + DB:BuildFail(1, target, source, ability, amount) + end + DB:DeathHistory(target, source, ability, amount, hit, crit, 0, 0) + elseif target ~= source then + DB:DamageDone(source, ability, hit, crit, 0, 0, 0, 0, amount, 0, block) + end + return + end + -- Try other spell misses + hitType, r = CP:TryMatch(clean, CP.otherSpellMiss) + if hitType then + local source = self:QualifyPetSource(r.source) + local ability = r.ability + local target = r.target + if target == "you" then target = Player end + if hitType == "miss" then + DB:EnemyDamage(true, nil, source, ability, 0, 0, 1, 0, 0, 0, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 1, 0, 0, 0, 0, 0, 0) + elseif hitType == "resist" then + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 0, 0, 1, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 0, 0, 0, 1, 0, 0, 0) + elseif hitType == "parry" then + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 1, 0, 0, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 0, 1, 0, 0, 0, 0, 0) + elseif hitType == "dodge" then + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 0, 1, 0, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 0, 0, 1, 0, 0, 0, 0) + elseif hitType == "absorb" then + DB:Absorb(ability, target, source) + elseif hitType == "block" then + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 0, 0, 0, 0, target, 1, 0) + DB:DamageDone(source, ability, 0, 0, 0, 0, 0, 0, 0, 0, 1) + elseif hitType == "evade" then + -- evade, no action needed + end + return + end + end + + -- Legacy fallback + local i,j,k = 0,0,0; + local nextword, choice; + i,j = strfind(msg, " interrupts ", 1, true); + if not i then + i,j = strfind(msg, " 's ", 1, true); + if not i then + local source + source, choice, k = GetNextWord(msg, k, FPDList2, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("5: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("5: Event not parsed yet, inform Shino! => "..msg)) + return + end + + if choice < 3 then + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + DB:RegisterPotentialKick(source, ability, GetTime()); + elseif choice == 3 then + return -- Not handled + else + i,j = strfind(msg, " on ", k, true) + if i then + local ability = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + if target=="you" then target = Player end + if Dispels[ability] then DB:AwaitDispel(ability, target, source, GetTime()) end + if RCD[ability] then DPSMate:Broadcast(2, source, target, ability) end + return + else + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, "Unknown", source, GetTime()) end + return + end + end + return + else + if strfind(msg, "You absorb ", 1, true) then + i,j = strfind(msg, " 's ", 1, true); + local target = strsub(msg, 1, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + DB:Absorb(ability, Player, target) + return + else + local o,p = strfind(msg, " resists? ", 1); + if o then + local tar = strsub(msg, 1, o-1); + if tar == "You" then + tar = Player; + end + + i,j = strfind(msg, " 's ", 1, true); + local src = self:QualifyPetSource(strsub(msg, p+1, i-1)) + i = strfind(msg, ".", j+1, true) + local ab = strsub(msg, j+1, i-1) + DB:EnemyDamage(true, nil, src, ab, 0, 0, 0, 0, 0, 1, 0, tar, 0, 0) + DB:DamageDone(src, ab, 0, 0, 0, 0, 0, 1, 0, 0, 0) + return + end + + local ability; + local source = self:QualifyPetSource(strsub(msg, 1, j-4)); + k = j+1 + + ability, choice, k = GetNextWord(msg, k, FPDList, false) + if choice == -1 then + if strfind(msg, "is immune", 1, true) then return end + local debug = DPSMate.Debug and DPSMate.Debug:Store("6: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("6: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 8 then return end -- fails + if choice == 9 then return end -- is reflected back + if choice == 10 then return end -- immune + + if choice == 11 then -- causes (Soul Link, Blessing of Sacrifice, etc.) + local si, _, amountStr = strfind(msg, "(%d+) damage%.", k) + if si then + local amount = tnbr(amountStr) + local target = strsub(msg, k, si-2) + + if target == "you" then target = Player end + + local prefixAmount, prefixCase, _ = GetPrefix(msg, si) + if prefixCase and prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, ability, source) + end + + DB:EnemyDamage(true, nil, source, ability, 1, 0, 0, 0, 0, 0, amount, target, 0, 0) + if self.TargetParty[target] then + if self.TargetParty[source] then + DB:BuildFail(1, target, source, ability, amount) + end + DB:DeathHistory(target, source, ability, amount, 1, 0, 0, 0) + else + DB:DamageDone(source, ability, 1, 0, 0, 0, 0, 0, amount, 0, 0) + end + end + return + end + + if choice < 3 or choice == 12 or choice == 13 then + local hit = 0 + if choice == 1 then hit=1 end + local crit = 0 + if choice == 2 or choice == 12 or choice == 13 then crit=1 end + + i,j = strfind(msg, " for ", k, true); + local target = strsub(msg, k, i-1); + k = j+1 + i,j = strfind(msg, ".", k, true); + nextword = strsub(msg, k, j-1); + local amount, school = GetDamage(nextword) + + if target=="you" then target=Player end + + local prefixAmount, prefixCase, k = GetPrefix(msg, k) + local block = 0 + if prefixCase then + if prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, ability, source) + elseif prefixCase == "blocked" then + block = 1; hit=0; crit=0 + end + end + + if Kicks[ability] then DB:AssignPotentialKick(source, ability, target, GetTime()) end + if DmgProcs[ability] then DB:BuildBuffs(source, source, ability, true) end + if self.IgnoredDmgSpells[ability] then return end + DB:EnemyDamage(true, nil, source, ability, hit, crit, 0, 0, 0, 0, amount, target, block, 0) + if self.TargetParty[target] then -- Fixes the issue for pvp death logging + if self.TargetParty[source] then + DB:BuildFail(1, target, source, ability, amount); + end + DB:DeathHistory(target, source, ability, amount, hit, crit, 0, 0) + elseif target ~= source then + DB:DamageDone(source, ability, hit, crit, 0, 0, 0, 0, amount, 0, block) + end + DB:AddSpellSchool(ability,school) + + return + elseif (choice == 3) then + i,j = strfind(msg, " by ", k, true); + if not i then + -- Resisted + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 0, 0, 1, 0, "Unknown", 0, 0) + DB:DamageDone(source, ability, 0, 0, 0, 0, 0, 1, 0, 0, 0) + return + end + + local case = strsub(msg, k, i-1); + k = j+1 + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + + if case == "dodged" then + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 0, 1, 0, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 0, 0, 1, 0, 0, 0, 0) + elseif case == "blocked" then + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 0, 0, 0, 0, target, 1, 0) + DB:DamageDone(source, ability, 0, 0, 0, 0, 0, 0, 0, 0, 1) + else + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 0, 0, 1, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 0, 0, 0, 1, 0, 0, 0) + end + return + elseif (choice == 4) then + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + DB:EnemyDamage(true, nil, source, ability, 0, 0, 0, 1, 0, 0, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 0, 1, 0, 0, 0, 0, 0) + return + elseif choice < 7 then + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + DB:EnemyDamage(true, nil, source, ability, 0, 0, 1, 0, 0, 0, 0, target, 0, 0) + DB:DamageDone(source, ability, 0, 0, 1, 0, 0, 0, 0, 0, 0) + return + elseif choice == 7 then + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, j-1); + DB:Absorb(ability, target, source) + return + end + end + end + else + local source = strsub(msg, k, i-1); + k = j+1 + i,j = strfind(msg, " 's ", k, true); + if not i then + local debug = DPSMate.Debug and DPSMate.Debug:Store("26: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("26: Event not parsed yet, inform Shino! => "..msg)) + return + end + + local target = strsub(msg, k, j-4); + k = j+1 + i,j = strfind(msg, ".", k, true); + local ability = strsub(msg, k, j-1); + + local causeAbility = "Counterspell" + local usr = DPSMateUser[source] + if usr then + if usr[2] == "priest" then + causeAbility = "Silence" + end + if usr[4] and usr[6] then + local owner = DPSMate:GetUserById(usr[6]) + if owner and DPSMateUser[owner] then + causeAbility = "Spell Lock" + source = owner + end + end + end + DB:Kick(source, target, causeAbility, ability) + end +end + +local FPHChoices = {" hits ", " crits ", " falls and loses ", " loses ", " suffers ", " is drowning and loses ", " critically strikes ", " critically hits "} +function DPSMate.Parser:FriendlyPlayerHits(msg) + -- Pattern-based matching for other player melee hits + if CP.ready then + local clean, absorbed, blocked, glancing, crushing = CP:StripTrailers(msg) + local hitType, r = CP:TryMatch(clean, CP.otherMeleeHit) + if hitType then + local hit, crit = 0, 0 + if hitType == "hit" then hit = 1 else crit = 1 end + local source = self:QualifyPetSource(r.source) + local target = r.target + local amount = r.amount + + if target == "you" then target = Player end + + local glance_val = 0 + if glancing then glance_val = 1; hit = 0; crit = 0 end + local block_val = blocked + if block_val == 1 then hit = 0; crit = 0 end + if absorbed > 0 then + DB:SetUnregisterVariables(absorbed, AAttack, source) + end + + DB:EnemyDamage(true, nil, source, AAttack, hit, crit, 0, 0, 0, 0, amount, target, block_val, 0) + if self.TargetParty[target] then + if self.TargetParty[source] then + DB:BuildFail(1, target, source, AAttack, amount) + end + DB:DeathHistory(target, source, AAttack, amount, hit, crit, 0, 0) + else + DB:DamageDone(source, AAttack, hit, crit, 0, 0, 0, 0, amount, glance_val, block_val) + end + return + end + -- Try other melee misses + local hitType2, r2 = CP:TryMatch(clean, CP.otherMeleeMiss) + if hitType2 then + local source = self:QualifyPetSource(r2.source) + local target = r2.target + if target == "you" then target = Player end + if hitType2 == "miss" then + DB:EnemyDamage(true, nil, source, AAttack, 0, 0, 1, 0, 0, 0, 0, target, 0, 0) + DB:DamageDone(source, AAttack, 0, 0, 1, 0, 0, 0, 0, 0, 0) + elseif hitType2 == "parry" then + DB:EnemyDamage(true, nil, source, AAttack, 0, 0, 0, 1, 0, 0, 0, target, 0, 0) + DB:DamageDone(source, AAttack, 0, 0, 0, 1, 0, 0, 0, 0, 0) + elseif hitType2 == "dodge" then + DB:EnemyDamage(true, nil, source, AAttack, 0, 0, 0, 0, 1, 0, 0, target, 0, 0) + DB:DamageDone(source, AAttack, 0, 0, 0, 0, 1, 0, 0, 0, 0) + elseif hitType2 == "block" then + DB:EnemyDamage(true, nil, source, AAttack, 0, 0, 0, 0, 0, 0, 0, target, 1, 0) + DB:DamageDone(source, AAttack, 0, 0, 0, 0, 0, 0, 0, 0, 1) + elseif hitType2 == "absorb" then + DB:Absorb(AAttack, target, source) + end + return + end + -- Try environment damage patterns + hitType, r = CP:TryMatch(clean, CP.envDmgOther) + if hitType then + local envName = strupper(strsub(hitType, 1, 1)) .. strsub(hitType, 2) + DB:DamageTaken(r.source, envName, 1, 0, 0, 0, 0, 0, r.amount, "Environment", 0, 0) + DB:DeathHistory(r.source, "Environment", envName, r.amount, 1, 0, 0, 0) + if hitType == "lava" then DB:AddSpellSchool("Lava","fire") end + if hitType == "fire" then DB:AddSpellSchool("Fire","fire") end + return + end + end + + -- Legacy fallback + local i,j,k = 0,0,0 + local nextword, choice, source; + source, choice, k = GetNextWord(msg, k, FPHChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("7: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("7: Event not parsed yet, inform Shino! => "..msg)) + return + end + source = self:QualifyPetSource(source) + if choice < 3 or choice == 7 or choice == 8 then + local hit, crit = 0, 0 + if choice == 1 then hit = 1 else crit = 1 end + i,j = strfind(msg, " for ", k, true) + local target = strsub(msg, k, i-1) + k = j+1 + i, j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1); + k = j+1 + + if target=="you" then target=Player end + + local amount, school = GetDamage(nextword) + local prefixAmount, prefixCase, k = GetPrefix(msg, k) + + local glance, block = 0,0 + if prefixCase then + if prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, AAttack, source) + elseif prefixCase == "glancing" then glance = 1; hit=0; crit=0 + else block = 1 end -- We could do more with that info + end + + DB:EnemyDamage(true, nil, source, AAttack, hit, crit, 0, 0, 0, 0, amount, target, block, 0) + if self.TargetParty[target] then + if self.TargetParty[source] then + DB:BuildFail(1, target, source, AAttack, amount); + end + DB:DeathHistory(target, source, AAttack, amount, hit, crit, 0, 0) + else + DB:DamageDone(source, AAttack, hit, crit, 0, 0, 0, 0, amount, glance, block) + end + return + elseif choice == 3 then + i, j = strfind(msg, " health.", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + DB:DamageTaken(source, "Falling", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(source, "Environment", "Falling", amount, 1, 0, 0, 0) + return + elseif choice == 4 then + i, j = strfind(msg, " health", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + k = j+1 + i, j = strfind(msg, "lava", k, true) + if i then + DB:DamageTaken(source, "Lava", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(source, "Environment", "Lava", amount, 1, 0, 0, 0) + DB:AddSpellSchool("Lava","fire") + else -- Slime + DB:DamageTaken(source, "Slime", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(source, "Environment", "Slime", amount, 1, 0, 0, 0) + end + return + elseif choice == 5 then + i, j = strfind(msg, " points ", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + DB:DamageTaken(source, "Fire", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(source, "Environment", "Fire", amount, 1, 0, 0, 0) + DB:AddSpellSchool("Fire","fire") + return + else + i, j = strfind(msg, " health.", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + DB:DamageTaken(source, "Drowning", 1, 0, 0, 0, 0, 0, amount, "Environment", 0, 0) + DB:DeathHistory(source, "Environment", "Drowning", amount, 1, 0, 0, 0) + return + end +end + +local FPMChoices = {" misses ", " attacks. ", " attacks but "} +local FPMChoices2 = {" dodge", " parr", " block"} +function DPSMate.Parser:FriendlyPlayerMisses(msg) + local i,j,k = 0,0,0 + local nextword, choice, source; + source, choice, k = GetNextWord(msg, k, FPMChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("8: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("8: Event not parsed yet, inform Shino! => "..msg)) + return + end + source = self:QualifyPetSource(source) + if choice == 1 then + i, j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1); + k = j+1 + if target == "you" then target = Player end + DB:EnemyDamage(true, nil, source, AAttack, 0, 0, 1, 0, 0, 0, 0, target, 0, 0) + DB:DamageDone(source, AAttack, 0, 0, 1, 0, 0, 0, 0, 0, 0) + return + elseif choice == 2 then + i, j = strfind(msg, "absorb", k, true) + local target; + if i then + target = strsub(msg, k, i-1) + if target == "You" then target = Player end + DB:Absorb(AAttack, target, source) + return + else + target, choice, _ = GetNextWord(msg, k, FPMChoices2, false) + if target == "You" then target = Player end + local parry, dodge, block = 0,0,0 + if choice == 1 then dodge = 1 + elseif choice == 2 then parry = 1 + else block = 1 end + + DB:EnemyDamage(true, nil, source, AAttack, 0, 0, 0, parry, dodge, 0, 0, target, block, 0) + DB:DamageDone(source, AAttack, 0, 0, 0, parry, dodge, 0, 0, 0, block) + return + end + else + -- Ignore but is immune etc + return + end +end + +function DPSMate.Parser:SpellDamageShieldsOnSelf(msg) + -- Pattern-based matching for self damage shields + if CP.ready then + local clean, absorbed = CP:StripTrailers(msg) + local hitType, r = CP:TryMatch(clean, CP.dmgShield) + if hitType then + local target = r.target or Player + local amount = r.amount + if target == "you" then target = Player end + if not amount then return end + if absorbed > 0 then DB:SetUnregisterVariables(absorbed, "Reflection", Player) end + DB:EnemyDamage(true, nil, Player, "Reflection", 1, 0, 0, 0, 0, 0, amount, target, 0, 0) + DB:DamageDone(Player, "Reflection", 1, 0, 0, 0, 0, 0, amount, 0, 0) + return + end + end + + -- Legacy fallback + local i,j = strfind(msg, " to ", 1, true) + if not i then + return + end + local nextword = strsub(msg, 13, i-1) + local amount, _ = GetDamage(nextword) + _,i = strfind(msg, ".", j+1, true) + local target = strsub(msg, j+1, i-1) + + if target == "you" then target = Player end + DB:EnemyDamage(true, nil, Player, "Reflection", 1, 0, 0, 0, 0, 0, amount, target, 0, 0) + DB:DamageDone(Player, "Reflection", 1, 0, 0, 0, 0, 0, amount, 0, 0) + return +end + +function DPSMate.Parser:SpellDamageShieldsOnOthers(msg) + -- Pattern-based matching for other damage shields + if CP.ready then + local clean, absorbed = CP:StripTrailers(msg) + local hitType, r = CP:TryMatch(clean, CP.dmgShield) + if hitType then + local source = r.source + local target = r.target + local amount = r.amount + if not amount then return end + if not source and not target then return end + + if source and (npcdb:Contains(source) or strfind(source, "%s")) then + if not target then target = Player end + DB:EnemyDamage(false, nil, target, "Reflection", 1, 0, 0, 0, 0, 0, amount, source, 0, 0) + DB:DamageTaken(target, "Reflection", 1, 0, 0, 0, 0, 0, amount, source, 0, 0) + DB:DeathHistory(target, source, "Reflection", amount, 1, 0, 0, 0) + else + if not source then source = Player end + if not target then target = Player end + DB:EnemyDamage(true, nil, source, "Reflection", 1, 0, 0, 0, 0, 0, amount, target, 0, 0) + DB:DamageDone(source, "Reflection", 1, 0, 0, 0, 0, 0, amount, 0, 0) + end + return + end + end + + -- Legacy fallback + local k; + local i,j = strfind(msg, " reflects ", 1, true) + if not i then + -- There may be resist events, but dont think they are relevant + return + end + + local source = strsub(msg, 1, i-1) + k = j+1 + i,j = strfind(msg, " to ", k, true) + local amount, _ = GetDamage(strsub(msg, k, i-1)) + k = j+1 + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + + if npcdb:Contains(source) or strfind(source, "%s") then + DB:EnemyDamage(false, nil, target, "Reflection", 1, 0, 0, 0, 0, 0, amount, source, 0, 0) + DB:DamageTaken(target, "Reflection", 1, 0, 0, 0, 0, 0, amount, source, 0, 0) + DB:DeathHistory(target, source, "Reflection", amount, 1, 0, 0, 0) + else + DB:EnemyDamage(true, nil, source, "Reflection", 1, 0, 0, 0, 0, 0, amount, target, 0, 0) + DB:DamageDone(source, "Reflection", 1, 0, 0, 0, 0, 0, amount, 0, 0) + end + return +end + +---------------------------------------------------------------------------------- +-------------- Damage taken -------------- +---------------------------------------------------------------------------------- + +local CVSHChoices = {" hits ", " crits ", " performs ", " critically strikes "} +function DPSMate.Parser:CreatureVsSelfHits(msg) + local i,j,k = 0,0,0 + local source, choice, nextword; + source, choice, k = GetNextWord(msg, k, CVSHChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("9: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("9: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice < 3 or choice == 4 then + local hit, crit = 0,0 + if choice == 1 then hit = 1 else crit = 1 end + i,j = strfind(msg, " for ", k, true) + local target = strsub(msg, k, i-1); + k = j+1 + if target == "you" then target = Player end + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + k = j+1 + local amount, _ = GetDamage(nextword) + local prefixAmount, prefixCase, _ = GetPrefix(msg, k) + local crush, block, blockAmount = 0,0,0 + if prefixCase then + if prefixCase == "crushing" then crush = 1; hit=0; crit=0; + elseif prefixCase == "blocked" then block = 1; hit=0; crit=0; blockAmount=prefixAmount; + elseif prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, AAttack, source) + end + end + DB:EnemyDamage(false, nil, target, AAttack, hit, crit, 0, 0, 0, 0, amount, source, block, crush) + DB:DamageTaken(target, AAttack, hit, crit, 0, 0, 0, 0, amount, source, crush, blockAmount) + DB:DeathHistory(target, source, AAttack, amount, hit, crit, 0, crush) + else + i,j = strfind(msg, " on ", k, true) + if i then + local ability = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + if target=="you" then target = Player end + if Dispels[ability] then DB:AwaitDispel(ability, target, source, GetTime()) end + if RCD[ability] then DPSMate:Broadcast(2, source, target, ability) end + return + else + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, "Unknown", source, GetTime()) end + return + end + return + end + return +end + +local CVSMChoices = {" misses ", " attacks. You absorb ", " attacks. ", " attacks but "} +local CVSMChoices2 = {" dodge", " parry", " block", " crush"} +function DPSMate.Parser:CreatureVsSelfMisses(msg) + local i,j,k = 0,0,0 + local source, choice; + source, choice, k = GetNextWord(msg, k, CVSMChoices, false) + + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("10: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("10: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 4 then return end + + if choice == 1 then + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1); + if target == "you" then target = Player end + DB:EnemyDamage(false, nil, target, AAttack, 0, 0, 1, 0, 0, 0, 0, source, 0, 0) + DB:DamageTaken(target, AAttack, 0, 0, 1, 0, 0, 0, 0, source, 0, 0) + elseif choice == 2 then + DB:Absorb(AAttack, Player, source) + else + local target; + target, choice, k = GetNextWord(msg, k, CVSMChoices2, false) + if target == "You" then target = Player end + local parry, dodge, crush = 0,0,0 + if choice == 2 then parry = 1 + elseif choice == 1 then dodge = 1 + else crush = 1 end + DB:EnemyDamage(false, nil, target, AAttack, 0, 0, 0, parry, dodge, 0, 0, source, crush, 0) + DB:DamageTaken(target, AAttack, 0, 0, 0, parry, dodge, 0, 0, source, 0, crush) + end + return +end + +local CVSSDChoices = {" hits ", " crits ", " misses you.", " was parried.", " was dodged.", " was resisted.", "You interrupt ", "You absorb ", " performs ", " fail", " was resisted by ", " was blocked.", " missed ", " was dodged by ", " was parried by ", " was blocked by ", "You resist ", " critically hits ", " critically strikes ", " casts "} +function DPSMate.Parser:CreatureVsSelfSpellDamage(msg) + local i,j,k = 0,0,0 + local nextword, choice; + nextword, choice, k = GetNextWord(msg, k, CVSSDChoices, false) + if choice == -1 then + if strfind(msg, " damaged.", 1, true) or strfind(msg, "is immune", 1, true) then return end + local debug = DPSMate.Debug and DPSMate.Debug:Store("11: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("11: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 10 or choice == 20 then return end + + if choice < 3 or choice == 18 or choice == 19 then + local hit,crit = 0,0 + if choice == 1 then hit=1 else crit=1 end + i,j = strfind(nextword, " 's ", 1, true); + local source = strsub(nextword, 1, i-1); + local ability = strsub(nextword, j+1) + i,j = strfind(msg, " for ", k, true); + local target = strsub(msg, k, i-1) + if target == "you" then target = Player end + k = j+1 + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + k = j+1 + local amount, school = GetDamage(nextword) + local prefixAmount, prefixCase = GetPrefix(msg, k) + + local block = 0 + if prefixCase then + if prefixCase == "blocked" then block=1; hit=0; crit=0 + elseif prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, ability, source) + end + end + + DB:UnregisterPotentialKick(target, ability, GetTime()) + DB:EnemyDamage(false, nil, target, ability, hit, crit, 0, 0, 0, 0, amount, source, block, 0) + DB:DamageTaken(target, ability, hit, crit, 0, 0, 0, 0, amount, source, 0, block) + DB:DeathHistory(target, source, ability, amount, hit, crit, 0, 0) + if FailDT[ability] then DB:BuildFail(2, source, target, ability, amount) end + DB:AddSpellSchool(ability,school) + return + elseif choice < 7 or choice == 12 or choice == 17 then + local miss, parry, dodge, resist, block = 0,0,0,0,0 + if choice == 3 then miss = 1 + elseif choice == 4 then parry = 1 + elseif choice == 5 then dodge = 1 + elseif choice == 12 then block = 1 + else resist = 1 end + + i,j = strfind(nextword, " 's ", 1, true); + local source = strsub(nextword, 1, i-1); + local ability = strsub(nextword, j+1) + + DB:EnemyDamage(false, nil, Player, ability, 0, 0, miss, parry, dodge, resist, 0, source, block, 0) + DB:DamageTaken(Player, ability, 0, 0, miss, parry, dodge, resist, 0, source, 0, block) + return + elseif choice == 7 or choice == 8 then + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + + i,j = strfind(nextword, " 's ", 1, true); + local source = strsub(nextword, 1, i-1); + local ability = strsub(nextword, j+1) + + if choice == 7 then + local causeAbility = "Counterspell" + local usr = DPSMateUser[Player] + if usr then + if usr[2] == "priest" then + causeAbility = "Silence" + end + end + DB:Kick(Player, source, causeAbility, ability) + else + DB:Absorb(ability, Player, source) + end + return + elseif choice < 11 then + i,j = strfind(msg, " on ", k, true) + if i then + local ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, Player, source, GetTime()) end + if RCD[ability] then DPSMate:Broadcast(2, source, Player, ability) end + return + else + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, Player, source, GetTime()) end + return + end + return + else + local miss, dodge, parry, block, resist = 0,0,0,0,0 + if choice == 13 then miss = 1 + elseif choice == 14 then dodge = 1 + elseif choice == 15 then parry = 1 + elseif choice == 16 then block = 1 + else resist = 1 end + + i,j = strfind(nextword, " 's ", 1, true); + local source = strsub(nextword, 1, i-1); + local ability = strsub(nextword, j+1); + i,j = strfind(msg, ".", k, true); + local target = strsub(msg, k, i-1); + DB:EnemyDamage(false, nil, target, ability, 0, 0, miss, parry, dodge, resist, 0, source, 0, block); + DB:DamageTaken(target, ability, 0, 0, miss, parry, dodge, resist, 0, source, 0, block); + return + end +end + +local PSDChoices = {"You suffer ", " suffers ", "You are afflicted by ", " is afflicted by ", "You absorb ", " absorbs ", " was resisted.", " was resisted by ", " drains "} +function DPSMate.Parser:PeriodicSelfDamage(msg) + local i,j,k = 0,0,0 + local nextword, choice; + local target; + target, choice, k = GetNextWord(msg, k, PSDChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("12: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("12: Event not parsed yet, inform Shino! => "..msg)) + return + end + + -- Do not track drain gains + if choice == 9 then return end + + if choice < 3 then + if choice == 1 then target = Player end + i,j = strfind(msg, " from ", k, true); + nextword = strsub(msg, k, i-1); + local amount, school = GetDamage(nextword) + k = j+1 + + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + + i,j = strfind(nextword, " 's ", 1, true); + local source, ability + if i then + source = strsub(nextword, 1, i-1); + ability = strsub(nextword, j+1) + else + source = Player + ability = strsub(nextword, 6) + end + + -- Not used + --local prefixAmount, prefixCase = GetPrefix(msg, k) + + DB:EnemyDamage(false, nil, target, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, source, 0, 0) + DB:DamageTaken(target, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, source, 0, 0) + DB:DeathHistory(target, source, ability.."(Periodic)", amount, 1, 0, 0, 0) + if FailDT[ability] then DB:BuildFail(2, source, target, ability, amount) end + DB:AddSpellSchool(ability.."(Periodic)",school) + return + elseif choice < 5 then + if choice == 3 then target = Player end + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + i,j = strfind(ability, "(", 1, true) + if i then ability=strsub(ability, 1, i-2) end + + DB:BuildBuffs("Unknown", target, ability, false) + if CC[ability] then DB:BuildActiveCC(target, ability) end + return + elseif choice < 7 then + if choice == 5 then target = Player end + i,j = strfind(msg, " 's ", k, true); + local source = strsub(msg, k, i-1); + local ability = strsub(msg, j+1) + local pi = strfind(ability, ".", 1, true) + if pi then ability = strsub(ability, 1, pi-1) end + DB:Absorb(ability.."(Periodic)", target, source) + return + elseif choice == 8 then + i,j = strfind(nextword, " 's ", 1, true); + local source = strsub(nextword, 1, i-1); + local ability = strsub(nextword, j+1); + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + + DB:EnemyDamage(false, nil, target, ability.."(Periodic)", 0, 0, 0, 0, 0, 1, 0, source, 0, 0) + DB:DamageTaken(target, ability.."(Periodic)", 0, 0, 0, 0, 0, 1, 0, source, 0, 0) + return + else + i,j = strfind(msg, " 's ", 1, true); + local source = strsub(msg, 1, i-1); + local ability = strsub(msg, j+1) + local pi = strfind(ability, ".", 1, true) + if pi then ability = strsub(ability, 1, pi-1) end + + DB:EnemyDamage(false, nil, Player, ability, 0, 0, 0, 0, 0, 1, 0, source, 0, 0) + DB:DamageTaken(Player, ability, 0, 0, 0, 0, 0, 1, 0, source, 0, 0) + end +end + +local CVCHChoices = {" hits ", " crits ", " critically strikes "} +function DPSMate.Parser:CreatureVsCreatureHits(msg) + local i,j,k = 0,0,0 + local nextword, choice, source; + source, choice, k = GetNextWord(msg, k, CVCHChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("13: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("14: Event not parsed yet, inform Shino! => "..msg)) + return + end + local hit, crit = 0,0 + if choice == 1 then hit = 1 else crit = 1 end + i,j = strfind(msg, " for ", k, true) + local target = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + local amount = GetDamage(nextword) + k = j+1 + local prefixAmount, prefixCase = GetPrefix(msg, k) + + local crush, block = 0,0 + if prefixCase then + if prefixCase == "crushing" then crush = 1; hit=0; crit=0; + elseif prefixCase == "blocked" then block = 1; hit = 0; crit = 0; + elseif prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, AAttack, source) + end + end + + DB:EnemyDamage(false, nil, target, AAttack, hit, crit, 0, 0, 0, 0, amount, source, block, crush) + DB:DamageTaken(target, AAttack, hit, crit, 0, 0, 0, 0, amount, source, crush, block) + DB:DeathHistory(target, source, AAttack, amount, hit, crit, 0, crush) + return +end + +local CVCMChoices = {" attacks. ", " misses ", " attacks but "} +local CVCMChoices2 = {" parries.", " dodges.", " blocks."} +function DPSMate.Parser:CreatureVsCreatureMisses(msg) + local i,j,k = 0,0,0 + local nextword, choice, source; + source, choice, k = GetNextWord(msg, k, CVCMChoices, false) + + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("14: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("14: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 1 then + i,j = strfind(msg, " absorbs ", k, true) + if i then + local target = strsub(msg, k, i-1) + DB:Absorb(AAttack, target, source) + return + else + local target; + target, choice = GetNextWord(msg, k, CVCMChoices2, false) + local parry, dodge, block = 0,0,0 + if choice == 1 then parry = 1 + elseif choice == 2 then dodge = 1 + else block = 1 end + + DB:EnemyDamage(false, nil, target, AAttack, 0, 0, 0, parry, dodge, 0, 0, source, block, 0) + DB:DamageTaken(target, AAttack, 0, 0, 0, parry, dodge, 0, 0, source, 0, block) + return + end + elseif choice == 2 then + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + DB:EnemyDamage(false, nil, target, AAttack, 0, 0, 1, 0, 0, 0, 0, source, 0, 0) + DB:DamageTaken(target, AAttack, 0, 0, 1, 0, 0, 0, 0, source, 0, 0) + return + else + -- Is immune stuff + return + end +end + +local SPDTChoices = {" suffers ", " is afflicted by ", " is absorbed by ", " was resisted by ", " Mana "} +function DPSMate.Parser:SpellPeriodicDamageTaken(msg) + local i,j,k = 0,0,0 + local nextword, choice, source; + source, choice, k = GetNextWord(msg, k, SPDTChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("15: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("15: Event not parsed yet, inform Shino! => "..msg)) + return + end + + if choice == 1 then + i,j = strfind(msg, " from ", k, true); + nextword = strsub(msg, k, i-1); + local amount, school = GetDamage(nextword) + k = j+1 + + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + + i,j = strfind(nextword, " 's ", 1, true); + local target, ability + if i then + target = strsub(nextword, 1, i-1); + ability = strsub(nextword, j+1) + else + target = Player + ability = strsub(nextword, 6) + end + + -- local prefixAmount, prefixCase = GetPrefix(msg, k) + DB:EnemyDamage(false, nil, source, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, target, 0, 0) + DB:DamageTaken(source, ability.."(Periodic)", 1, 0, 0, 0, 0, 0, amount, target, 0, 0) + DB:DeathHistory(source, target, ability.."(Periodic)", amount, 1, 0, 0, 0) + if FailDT[ability] then DB:BuildFail(2, target, source, ability, amount) end + DB:AddSpellSchool(ability.."(Periodic)", school) + return + elseif choice == 2 then + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + i,j = strfind(ability, "(", 1, true) + if i then ability=strsub(ability, 1, i-2) end + DB:BuildBuffs("Unknown", source, ability, false) + if CC[ability] then DB:BuildActiveCC(source, ability) end + return + elseif choice == 3 then + nextword = source + i,j = strfind(nextword, " 's ", 1, true) + source = strsub(nextword, 1, i-1) + local ability = strsub(nextword, j+1) + + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + DB:Absorb(ability.."(Periodic)", source, target) + return + elseif choice == 4 then + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + + nextword = source + i,j = strfind(nextword, " 's ", 1, true); + source = strsub(nextword, 1, i-1); + local ability = strsub(nextword, j+1) + DB:EnemyDamage(false, nil, target, ability, 0, 0, 0, 0, 0, 1, 0, source, 0, 0) + DB:DamageTaken(target, ability, 0, 0, 0, 0, 0, 1, 0, source, 0, 0) + return + else + -- Ignore mana events, we dont track them yet + return + end +end + +local CVCSDChoices = {" hits ", " crits ", " was dodged by ", " was parried by ", " missed ", " was resisted by ", " is absorbed by ", " begins to cast ", " begins to perform ", " performs ", " casts ", " fails.", " was blocked by ", " interrupts ", " causes ", " is immune to ", " is killed by ", " was evaded by ", " critically hits ", " critically strikes "} +function DPSMate.Parser:CreatureVsCreatureSpellDamage(msg) + local i,j,k = 0,0,0 + local nextword, choice, source, ability; + nextword, choice, k = GetNextWord(msg, k, CVCSDChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("16: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("16: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 12 or choice == 16 then return end -- Fail events + if choice == 15 then -- causes (Soul Link, Blessing of Sacrifice, etc.) + i,j = strfind(nextword, " 's ", 1, true) + if i then + source = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + local si, _, amountStr = strfind(msg, "(%d+) damage%.", k) + if si then + local amount = tnbr(amountStr) + local target = strsub(msg, k, si-2) + local prefixAmount, prefixCase = GetPrefix(msg, si) + local block = 0 + if prefixCase then + if prefixCase == "blocked" then block = 1 + elseif prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, ability, source) + end + end + DB:EnemyDamage(false, nil, target, ability, 1, 0, 0, 0, 0, 0, amount, source, block, 0) + DB:DamageTaken(target, ability, 1, 0, 0, 0, 0, 0, amount, source, 0, block) + DB:DeathHistory(target, source, ability, amount, 1, 0, 0, 0) + end + end + return + end + -- We do not track monster deaths + if choice == 17 then return end + -- We do not track evades + if choice == 18 then return end + + if choice == 10 or choice == 11 then + source = nextword + i,j = strfind(msg, " on ", k, true) + if i then + local ability = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + if target=="you" then target = Player end + if Dispels[ability] then DB:AwaitDispel(ability, target, source, GetTime()) end + if RCD[ability] then DPSMate:Broadcast(2, source, target, ability) end + return + else + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, "Unknown", source, GetTime()) end + return + end + elseif choice == 14 then + source = nextword; + i,j = strfind(msg, " 's ", 1, true); + local target = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + ability = strsub(msg, k, i-1) + DB:Kick(source, target, "Unknown", ability) + return + else + i,j = strfind(nextword, " 's ", 1, true) + + if not i then + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + DB:RegisterPotentialKick(nextword, ability, GetTime()); + return + end + + source = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + + if choice < 3 or choice == 19 or choice == 20 then + local hit,crit = 0,0 + if choice == 1 then hit=1 else crit = 1 end + i,j = strfind(msg, " for ", k, true) + local target = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + local amount, school = GetDamage(nextword) + local prefixAmount, prefixCase = GetPrefix(msg, k) + + local block = 0 + if prefixCase then + if prefixCase == "blocked" then block = 1 + elseif prefixCase == "absorbed" then + DB:SetUnregisterVariables(prefixAmount, ability, source) + end + end + + DB:UnregisterPotentialKick(target, ability, GetTime()) + DB:EnemyDamage(false, nil, target, ability, hit, crit, 0, 0, 0, 0, amount, source, block, 0) + DB:DamageTaken(target, ability, hit, crit, 0, 0, 0, 0, amount, source, 0, block) + DB:DeathHistory(target, source, ability, amount, hit, crit, 0, 0) + if FailDT[ability] then DB:BuildFail(2, source, target, ability, amount) end + DB:AddSpellSchool(ability,school) + return + elseif choice < 7 then + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + local miss, parry, dodge, resist = 0,0,0,0 + if choice == 3 then dodge = 1 + elseif choice == 4 then parry = 1 + elseif choice == 5 then miss = 1 + else resist = 1 end + DB:EnemyDamage(false, nil, target, ability, 0, 0, miss, parry, dodge, resist, 0, source, 0, 0) + DB:DamageTaken(target, ability, 0, 0, miss, parry, dodge, resist, 0, source, 0, 0) + return + elseif choice == 7 then + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + DB:Absorb(ability, source, target) + return + else + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + DB:EnemyDamage(false, nil, target, ability, 0, 0, 0, 0, 0, 0, 0, source, 1, 0) + DB:DamageTaken(target, ability, 0, 0, 0, 0, 0, 0, 0, source, 0, 1) + return + end + end +end + +---------------------------------------------------------------------------------- +-------------- Healing -------------- +---------------------------------------------------------------------------------- + +local SSBChoices = {"Your ", "You gain ", "You cast ", "You perform "} +local SSBChoices2 = {" critically heals ", " heals "} +local SSBChoices3 = {" Energy from ", " extra attack through ", " extra attacks through ", " Rage from ", " Mana from "} +function DPSMate.Parser:SpellSelfBuff(msg) + local i,j,k = 0,0,0 + local nextword, choice; + _, choice, k = GetNextWord(msg, k, SSBChoices, true) + if choice == -1 then + -- Fallback: gains from . + i,j = strfind(msg, " gains ", 1, true) + if i then + local source = strsub(msg, 1, i-1) + k = j+1 + nextword, choice, k = GetNextWord(msg, k, SSBChoices3, false) + if choice > 0 then + i,j = strfind(msg, ".", k, true) + if i then + local ability = strsub(msg, k, i-1) + if choice < 4 then + DB:RegisterNextSwing(source, tnbr(nextword), ability) + DB:BuildBuffs(source, source, ability, true) + DB:DestroyBuffs(source, ability) + elseif choice == 4 then + if Procs[ability] and not OtherExceptions[ability] then + DB:BuildBuffs(source, source, ability, true) + DB:DestroyBuffs(source, ability) + end + elseif choice == 5 then + if Procs[ability] then + DB:BuildBuffs(source, source, ability, true) + DB:DestroyBuffs(source, ability) + end + end + end + return + end + end + local debug = DPSMate.Debug and DPSMate.Debug:Store("17: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("17: Event not parsed yet, inform Shino! => "..msg)) + return + end + + if choice == 1 then + local ability + ability, choice, k = GetNextWord(msg, k, SSBChoices2, false) + local hit, crit = 0,0 + if choice == 1 then crit = 1 else hit = 1 end + i,j = strfind(msg, " for ", k, true) + if not i then return end + local target = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + + + if target=="you" then target=Player end + local overheal = self:GetOverhealByName(amount, target) + DB:HealingTaken(0, nil, target, ability, hit, crit, amount, Player) + DB:HealingTaken(1, nil, target, ability, hit, crit, amount-overheal, Player) + DB:Healing(0, nil, Player, ability, hit, crit, amount-overheal, target) + if overheal>0 then + DB:Healing(2, nil, Player, ability, hit, crit, overheal, target) + DB:HealingTaken(2, nil, target, ability, hit, crit, overheal, Player) + end + DB:Healing(1, nil, Player, ability, hit, crit, amount, target) + DB:DeathHistory(target, Player, ability, amount, hit, crit, 1, 0) + return + elseif choice == 2 then + local nextword + nextword, choice, k = GetNextWord(msg, k, SSBChoices3, false) + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + if choice == 1 then + DB:BuildBuffs(Player, Player, ability, true) + DB:DestroyBuffs(Player, ability) + elseif choice < 4 then + DB:RegisterNextSwing(Player, tnbr(nextword), ability) + DB:BuildBuffs(Player, Player, ability, true) + DB:DestroyBuffs(Player, ability) + elseif choice == 4 then + if Procs[ability] and not OtherExceptions[ability] then + DB:BuildBuffs(Player, Player, ability, true) + DB:DestroyBuffs(Player, ability) + end + elseif choice == 5 then + if Procs[ability] then + DB:BuildBuffs(Player, Player, ability, true) + DB:DestroyBuffs(Player, ability) + end + end + return + elseif choice >= 3 then + i,j = strfind(msg, " on ", k, true) + if i then + local ability = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, target, Player, GetTime()) end + if RCD[ability] then DPSMate:Broadcast(2, Player, target, ability) end + return + else + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, Player, Player, GetTime()) end + return + end + end +end + +local HealingStream = "Healing Stream" +local SPSBChoices = { " health from ", "."} +local SPSBChoices1 = { "Happiness", "fades"} +function DPSMate.Parser:SpellPeriodicSelfBuff(msg) + local i,j,k = 0,0,0 + local nextword, choice, _; + local source = Player; + local i,j = strfind(msg, " gains ", 1, true) + if i and j then + source = strsub(msg, 1, i-1); + nextword = strsub(msg, j+1); + k = j + 1 + else + k = 10 + end + + nextword, choice, k = GetNextWord(msg, k, SPSBChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("18: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("18: Event not parsed yet, inform Shino! => "..msg)) + return + end + if choice == 1 then + local amount = GetDamage(nextword) + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + i,j = strfind(nextword, " 's ", 1, true) + local target, ability + if i then + target = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + else + target = Player + ability = strsub(nextword, 1) + end + + if ability==HealingStream then + target = self:AssociateShaman(source, target, false) + end + local overheal = self:GetOverhealByName(amount, source) + DB:HealingTaken(0, nil, source, ability.."(Periodic)", 1, 0, amount, target) + DB:HealingTaken(1, nil, source, ability.."(Periodic)", 1, 0, amount-overheal, target) + DB:Healing(0, nil, target, ability.."(Periodic)", 1, 0, amount-overheal, source) + if overheal>0 then + DB:Healing(2, nil, target, ability.."(Periodic)", 1, 0, overheal, source) + DB:HealingTaken(2, nil, source, ability.."(Periodic)", 1, 0, overheal, target) + end + DB:Healing(1, nil, target, ability.."(Periodic)", 1, 0, amount, source) + DB:DeathHistory(source, target, ability.."(Periodic)", amount, 1, 0, 1, 0) + return + else + _, choice, k = GetNextWord(msg, 1, SPSBChoices1, false) + + if choice > 0 then return end + i,j = strfind(nextword, "(", 1, true) + if i then nextword = strsub(nextword, 1, i-2) end + DB:ConfirmBuff(source, nextword, GetTime()) + if Dispels[nextword] then + DB:RegisterHotDispel(source, nextword) + end + if ShieldFlags[nextword] then DB:ConfirmAbsorbApplication(nextword, source, GetTime()) end + if RCD[nextword] then DPSMate:Broadcast(1, source, nextword) end + if FailDB[nextword] then DB:BuildFail(3, "Environment", source, nextword, 0) end + return + end +end + +function DPSMate.Parser:SpellPeriodicFriendlyPlayerBuffs(msg) + local i,j,k = 0,0,0 + i,j = strfind(msg, " gains ", 1, true) + if not i then + -- Drain event + -- Also you gain whatever + -- Is Slain whatever + return + end + + local source = strsub(msg, 1, i-1) + k = j+1 + i,j = strfind(msg, " health from ", k, true) + if i then + local amount = tnbr(strsub(msg, k, i-1)) + k = j+1 + i,j = strfind(msg, ".", k, true) + local nextword = strsub(msg, k, i-1) + + local target, ability + i,j = strfind(nextword, " 's ", 1, true) + if i then + target = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + else + i,j = strfind(nextword, "your ", 1, true) + if i then + target = Player + ability = strsub(nextword, j+1) + else + target = source + ability = nextword + end + end + + if ability==HealingStream then + target = self:AssociateShaman(amount, target, false) + end + local overheal = self:GetOverhealByName(amount, source) + DB:HealingTaken(0, nil, source, ability.."(Periodic)", 1, 0, amount, target) + DB:HealingTaken(1, nil, source, ability.."(Periodic)", 1, 0, amount-overheal, target) + DB:Healing(0, nil, target, ability.."(Periodic)", 1, 0, amount-overheal, source) + if overheal>0 then + DB:Healing(2, nil, target, ability.."(Periodic)", 1, 0, overheal, source) + DB:HealingTaken(2, nil, source, ability.."(Periodic)", 1, 0, overheal, target) + end + DB:Healing(1, nil, target, ability.."(Periodic)", 1, 0, amount, source) + DB:DeathHistory(source, target, ability.."(Periodic)", amount, 1, 0, 1, 0) + return + else + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + i,j = strfind(ability, "(", 1, true) + if i then ability = strsub(ability, 1, i-2) end + + if self.BuffExceptions[ability] then return end + + if ShieldFlags[ability] then DB:ConfirmAbsorbApplication(ability, source, GetTime()) end + + DB:ConfirmBuff(source, ability, GetTime()) + if Dispels[ability] then + DB:RegisterHotDispel(source, ability) + end + if RCD[ability] then DPSMate:Broadcast(1, source, ability) end + if FailDB[ability] then DB:BuildFail(3, "Environment", source, ability, 0) end + return + end +end + +local SHPBChoices = {" critically heals ", " heals ", " begins to cast ", " begins to perform ", " gains ", " casts ", " performs ", " were resisted by ", " was resisted by ", " resists ", " fail", "You gain ", " is reflected back by ", "You resist ", " was evaded by "} +local SHPBChoices2 = {" extra attack through ", " extra attacks through ", " Energy from ", " Rage from ", " Mana from "} +function DPSMate.Parser:SpellHostilePlayerBuff(msg) + local i,j,k = 0,0,0 + local nextword, choice; + nextword, choice, k = GetNextWord(msg, k, SHPBChoices, false) + if choice == -1 then + local debug = DPSMate.Debug and DPSMate.Debug:Store("19: Event not parsed yet => "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("19: Event not parsed yet, inform Shino! => "..msg)) + return + end + + -- Ignoring for now + -- Saltpillar's Thorns were resisted by Blackhand Veteran + if choice >= 8 and choice <= 11 then return end + -- Spell reflect, resist, evade — not tracked + if choice >= 13 then return end + + if choice < 3 then + i,j = strfind(nextword, " 's ", 1, true) + local source, ability + if i then + source = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + else + i,j = strfind(nextword, "Your ", 1, true) + if i then + source = Player + ability = strsub(nextword, j+1) + else + source = Player + ability = nextword + end + end + i,j = strfind(msg, " for ", k, true) + local target = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local amount = tnbr(strsub(msg, k, i-1)) + + local hit,crit = 0,0 + if choice == 1 then crit=1 else hit =1 end + if target == "you" then target = Player end + + local overheal = self:GetOverhealByName(amount, target) + DB:HealingTaken(0, nil, target, ability, hit, crit, amount, source) + DB:HealingTaken(1, nil, target, ability, hit, crit, amount-overheal, source) + DB:Healing(0, nil, source, ability, hit, crit, amount-overheal, target) + if overheal>0 then + DB:Healing(2, nil, source, ability, hit, crit, overheal, target) + DB:HealingTaken(2, nil, target, ability, hit, crit, overheal, source) + end + DB:Healing(1, nil, source, ability, hit, crit, amount, target) + DB:DeathHistory(target, source, ability, amount, hit, crit, 1, 0) + + if Procs[ability] and not OtherExceptions[ability] then + DB:BuildBuffs(source, target, ability, true) + end + return + elseif choice < 5 then + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + DB:RegisterPotentialKick(nextword, ability, GetTime()) + return + elseif choice == 5 or choice == 12 then + local source = nextword + if choice == 12 then + source = Player + end + nextword, choice, k = GetNextWord(msg, k, SHPBChoices2, false) + local amount = tnbr(nextword) + i,j = strfind(msg, ".", k, true) + nextword = strsub(msg, k, i-1) + + -- TODO: Dafuq? => This will never happen + if choice < 3 then + local ability = nextword + + if ShieldFlags[ability] then DB:ConfirmAbsorbApplication(ability, source, GetTime()) end + DB:RegisterNextSwing(source, amount, ability) + DB:BuildBuffs(source, source, ability, true) + DB:DestroyBuffs(source, ability) + else + i,j = strfind(nextword, " 's ", 1, true) + local target, ability + if i then + target = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + else + target = source + ability = nextword + end + + if choice == 3 then + DB:BuildBuffs(target, source, ability, true) + DB:DestroyBuffs(target, ability) + elseif choice == 4 then + if Procs[ability] and not OtherExceptions[ability] then + DB:BuildBuffs(target, source, ability, true) + DB:DestroyBuffs(target, ability) + end + elseif choice == 5 then + if Procs[ability] then + DB:BuildBuffs(target, source, ability, true) + DB:DestroyBuffs(target, ability) + end + end + end + return + else + i,j = strfind(msg, " on ", k, true) + if i then + local ability = strsub(msg, k, i-1) + k = j+1 + i,j = strfind(msg, ".", k, true) + local target = strsub(msg, k, i-1) + if target=="you" then target = Player end + if Dispels[ability] then DB:AwaitDispel(ability, target, nextword, GetTime()) end + if RCD[ability] then DPSMate:Broadcast(2, nextword, target, ability) end + return + else + i,j = strfind(msg, ".", k, true) + local ability = strsub(msg, k, i-1) + if Dispels[ability] then DB:AwaitDispel(ability, "Unknown", source, GetTime()) end + return + end + end +end + +---------------------------------------------------------------------------------- +-------------- Absorbs -------------- +---------------------------------------------------------------------------------- + +-- At CreatureVsSelfHits +function DPSMate.Parser:CreatureVsSelfHitsAbsorb(msg) + return +end + +-- At CreatureVsCreatureHits +function DPSMate.Parser:CreatureVsCreatureHitsAbsorb(msg) + return +end + +-- At CreatureVsSelfSpellDamage +function DPSMate.Parser:CreatureVsSelfSpellDamageAbsorb(msg) + return +end + +-- At CreatureVsCreatureSpellDamage +function DPSMate.Parser:CreatureVsCreatureSpellDamageAbsorb(msg) + return +end + +-- At SpellPeriodicSelfBuff +function DPSMate.Parser:SpellPeriodicSelfBuffAbsorb(msg) + return +end + +-- At SpellPeriodicFriendlyPlayerBuffs +function DPSMate.Parser:SpellPeriodicFriendlyPlayerBuffsAbsorb(msg) + return +end + +function DPSMate.Parser:SpellAuraGoneSelf(msg) + local i,j = strfind(msg, " from ", 1, true) + if not i then return end + i = strfind(msg, ".", j+1, true) + if not i then return end + local source = strsub(msg, j+1, i -1) + if source == "you" then source = Player end + local i,j = strfind(msg, " fades ", 1, true) + if not i then return end + local ability = strsub(msg, 1, i-1) + i,j = strfind(ability, "(", 1, true) + if i then ability = strsub(ability, 1, i-2) end + if BuffExceptions[ability] then return end + if ShieldFlags[ability] then DB:UnregisterAbsorb(ability, source) end + if RCD[ability] then DPSMate:Broadcast(6, source, ability) end + DB:DestroyBuffs(source, ability) + DB:UnregisterHotDispel(source, ability) + DB:RemoveActiveCC(source, ability) + return +end + +function DPSMate.Parser:SpellAuraGoneParty(msg) + local i,j = strfind(msg, " fades from ", 1, true) + if not i then return end + local ability = strsub(msg, 1, i-1) + local i = strfind(msg, ".", j+1, true) + if not i then return end + local target = strsub(msg, j+1, i-1) + + i,j = strfind(ability, "(", 1, true) + if i then ability = strsub(ability, 1, i-2) end + if self.BuffExceptions[ability] then return end + if ShieldFlags[ability] then DB:UnregisterAbsorb(ability, target) end + if RCD[ability] then DPSMate:Broadcast(6, target, ability) end + DB:DestroyBuffs(target, ability) + DB:UnregisterHotDispel(target, ability) + DB:RemoveActiveCC(target, ability) + return +end + +function DPSMate.Parser:SpellAuraGoneOther(msg) + local i,j = strfind(msg, " fades from ", 1, true) + local ability = strsub(msg, 1, i-1) + local i = strfind(msg, ".", j+1, true) + local target = strsub(msg, j+1, i-1) + + i,j = strfind(ability, "(", 1, true) + if i then ability = strsub(ability, 1, i-2) end + if BuffExceptions[ability] then return end + if ShieldFlags[ability] then DB:UnregisterAbsorb(ability, target) end + if RCD[ability] then DPSMate:Broadcast(6, target, ability) end + DB:DestroyBuffs(target, ability) + DB:UnregisterHotDispel(target, ability) + DB:RemoveActiveCC(target, ability) + return +end + +---------------------------------------------------------------------------------- +-------------- Dispels -------------- +---------------------------------------------------------------------------------- + +-- At SpellSelfBuff +function DPSMate.Parser:SpellSelfBuffDispels(msg) + return +end + +-- At SpellHostilePlayerBuff +function DPSMate.Parser:SpellHostilePlayerBuffDispels(msg) + return +end + +function DPSMate.Parser:SpellBreakAura(msg) + local i,j = strfind(msg, " is removed.", 1, true) + local nextword = strsub(msg, 1, i-1) + i,j = strfind(msg, " 's ", 1, true) + local source, ability + if i then + source = strsub(nextword, 1, i-1) + ability = strsub(nextword, j+1) + else + source = Player + ability = strsub(nextword, 6) + end + DB:ConfirmRealDispel(ability, source, GetTime()) + return +end + +---------------------------------------------------------------------------------- +-------------- Deaths -------------- +---------------------------------------------------------------------------------- + +local CFDChoices = {" dies. ", " die.", " dies.", " is slain by ", " is destroyed.", "You have slain ", " slays "} +function DPSMate.Parser:CombatFriendlyDeath(msg) + local i,j,k = 0,0,0 + local source, choice + source, choice, k = GetNextWord(msg, k, CFDChoices, false) + if not source then + local debug = DPSMate.Debug and DPSMate.Debug:Store("30: Event not parsed correctly : "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("30: Event not parsed yet, inform Shino! => "..msg)) + return; + end + if choice == 2 then + source = Player + end + + if choice == 6 then + source = strsub(msg, k, -1); + end + + if choice == 7 then + return; + end + + DB:UnregisterDeath(source) + return +end + +function DPSMate.Parser:CombatHostileDeaths(msg) + local i,j = strfind(msg, "You have ", 1, true) + if i then return end + + i,j = strfind(msg, " dies.", 1, true) + if not i then + return + end + local source = strsub(msg, 1, i-1) + if not source then + local debug = DPSMate.Debug and DPSMate.Debug:Store("31: Event not parsed correctly : "..msg) or (DPSMate.ShowMsg and DPSMate:SendMessage("31: Event not parsed yet, inform Shino! => "..msg)) + return; + end + DB:UnregisterDeath(source) + return +end + +---------------------------------------------------------------------------------- +-------------- Interrupts -------------- +---------------------------------------------------------------------------------- + +-- At CreatureVsCreatureSpellDamage +function DPSMate.Parser:CreatureVsCreatureSpellDamageInterrupts(msg) + return +end + +-- At SpellHostilePlayerBuff +function DPSMate.Parser:HostilePlayerSpellDamageInterrupts(msg) + return +end + +function DPSMate.Parser:PetHits(msg) + self._petOwner = self.player + self:FriendlyPlayerHits(msg) + self._petOwner = nil +end + +function DPSMate.Parser:PetMisses(msg) + self._petOwner = self.player + self:FriendlyPlayerMisses(msg) + self._petOwner = nil +end + +function DPSMate.Parser:PetSpellDamage(msg) + self._petOwner = self.player + self:FriendlyPlayerDamage(msg) + self._petOwner = nil +end diff --git a/src/dpslog/WeirdDPSMate/enUS/NPCDB-1.0.lua b/src/dpslog/WeirdDPSMate/enUS/NPCDB-1.0.lua new file mode 100644 index 0000000..b7b154c --- /dev/null +++ b/src/dpslog/WeirdDPSMate/enUS/NPCDB-1.0.lua @@ -0,0 +1,3329 @@ +--[[ +Name: NPCDB-1.0 +Revision: $Rev: 17545 $ +Author(s): Shino (Geigerkind) +Website: http://legacy-logs/ +Description: A library to provide localizations for relevant npcs. +]] + +local npcs = { + ["Waypoint"] = true, + ["Spawnpoint"] = true, + ["Stormwind City Guard"] = true, + ["Infernal"] = true, + ["Blue Dragonspawn"] = true, + ["Earth Elemental"] = true, + ["Maginor Dumas"] = true, + ["Master Mathias Shaw"] = true, + ["Kendor Kabonka"] = true, + ["Grizzle Halfmane"] = true, + ["Dungar Longdrink"] = true, + ["High Priestess Laurena"] = true, + ["Felhunter"] = true, + ["Demisette Cloyce"] = true, + ["General Marcus Jonathan"] = true, + ["Lieutenant Doren"] = true, + ["Water Elemental"] = true, + ["Thor"] = true, + ["Grimtooth"] = true, + ["El Pollo Grande"] = true, + ["Mai'Zoth"] = true, + ["Coldridge Mountaineer"] = true, + ["Donal Osgood"] = true, + ["Stonard Hunter"] = true, + ["Stonard Orc"] = true, + ["Stonard Wayfinder"] = true, + ["Stonard Grunt"] = true, + ["Stonard Cartographer"] = true, + ["Stonard Shaman"] = true, + ["Keras Wolfheart"] = true, + ["Ander Germaine"] = true, + ["Osborne the Night Man"] = true, + ["Lord Grayson Shadowbreaker"] = true, + ["Ariena Stormfeather"] = true, + ["Swamp Talker"] = true, + ["Brother Neals"] = true, + ["Malosh"] = true, + ["Haromm"] = true, + ["Ogromm"] = true, + ["Kartosh"] = true, + ["Banalash"] = true, + ["Red Dragonspawn"] = true, + ["Red Wyrmkin"] = true, + ["Red Scalebane"] = true, + ["Scalebane Lieutenant"] = true, + ["Wyrmkin Firebrand"] = true, + ["Scalebane Royal Guard"] = true, + ["Jade"] = true, + ["Grom'gol Grunt"] = true, + ["Watcher Merant"] = true, + ["Angus Stern"] = true, + ["Senator Barin Redstone"] = true, + ["Archbishop Benedictus"] = true, + ["Felder Stover"] = true, + ["Charys Yserian"] = true, + ["Adair Gilroy"] = true, + ["Elly Langston"] = true, + ["Mayda Thane"] = true, + ["Georgio Bolero"] = true, + ["Rogvar"] = true, + ["Thysta"] = true, + ["Ian Strom"] = true, + ["Grimand Elmore"] = true, + ["Zardeth of the Black Claw"] = true, + ["Helgrum the Swift"] = true, + ["Fel'zerul"] = true, + ["Jannos Ironwill"] = true, + ["Morgg Stormshot"] = true, + ["Menethil Guard"] = true, + ["Mok'rash"] = true, + ["Negolash"] = true, + ["Gunther Arcanus"] = true, + ["Bethor Iceshard"] = true, + ["King Mukla"] = true, + ["Shellei Brondir"] = true, + ["Thorgrum Borrelson"] = true, + ["Gryth Thurden"] = true, + ["Northshire Guard"] = true, + ["Deathguard Randolph"] = true, + ["Deathguard Oliver"] = true, + ["Deathguard Phillip"] = true, + ["Deathguard Bartrand"] = true, + ["Highlord Bolvar Fordragon"] = true, + ["Lady Katrana Prestor"] = true, + ["Grand Admiral Jes-Tereth"] = true, + ["Mithras Ironhill"] = true, + ["Caledra Dawnbreeze"] = true, + ["Stormwind Royal Guard"] = true, + ["Zun'dartha"] = true, + ["Skeletal Flayer"] = true, + ["Skeletal Sorcerer"] = true, + ["Skeletal Terror"] = true, + ["Skeletal Executioner"] = true, + ["Skeletal Warlord"] = true, + ["Skeletal Acolyte"] = true, + ["Slavering Ghoul"] = true, + ["Rotting Ghoul"] = true, + ["Soulless Ghoul"] = true, + ["Searing Ghoul"] = true, + ["Freezing Ghoul"] = true, + ["Cold Wraith"] = true, + ["Blood Wraith"] = true, + ["Hungering Wraith"] = true, + ["Wailing Death"] = true, + ["Flesh Golem"] = true, + ["Vile Slime"] = true, + ["Devouring Ooze"] = true, + ["Carrion Vulture"] = true, + ["Rotting Behemoth"] = true, + ["Decaying Horror"] = true, + ["Diseased Black Bear"] = true, + ["Diseased Grizzly"] = true, + ["Diseased Wolf"] = true, + ["Carrion Lurker"] = true, + ["Venom Mist Lurker"] = true, + ["Plague Lurker"] = true, + ["Scarlet Mage"] = true, + ["Scarlet Sentinel"] = true, + ["Scarlet Hunter"] = true, + ["Scarlet Magus"] = true, + ["Scarlet Knight"] = true, + ["Scarlet Paladin"] = true, + ["Scarlet Invoker"] = true, + ["Scarlet Cavalier"] = true, + ["Scarlet Judge"] = true, + ["Scarlet Interrogator"] = true, + ["Scarlet High Clerist"] = true, + ["Grand Inquisitor Isillien"] = true, + ["Scarlet Executioner"] = true, + ["Highlord Taelan Fordring"] = true, + ["Foreman Jerris"] = true, + ["Foreman Marcrid"] = true, + ["High Protector Tarsen"] = true, + ["High Protector Lorik"] = true, + ["Foulmane"] = true, + ["Lord Maldazzar"] = true, + ["Putridius"] = true, + ["The Husk"] = true, + ["Araj the Summoner"] = true, + ["Darkmaster Gandling"] = true, + ["High Priest Thel'danis"] = true, + ["Tirion Fordring"] = true, + ["Scarlet Worker"] = true, + ["Scarlet Lumberjack"] = true, + ["Scarlet Smith"] = true, + ["Treant"] = true, + ["Stormwind City Patroller"] = true, + ["Senator Mehr Stonehallow"] = true, + ["Ancient Protector"] = true, + ["Master Apothecary Faranell"] = true, + ["Natheril Raincaller"] = true, + ["High Executor Darthalia"] = true, + ["Zora Guthrek"] = true, + ["Karos Razok"] = true, + ["Borgus Stoutarm"] = true, + ["Aethalas"] = true, + ["Lyranne Feathersong"] = true, + ["Southshore Guard"] = true, + ["Zarise"] = true, + ["Daryl Stack"] = true, + ["Tarren Mill Deathguard"] = true, + ["Felicia Maline"] = true, + ["Varimathras"] = true, + ["Darla Harris"] = true, + ["Major Samuelson"] = true, + ["Commander Aggro'gosh"] = true, + ["Bro'kin"] = true, + ["Larimaine Purdue"] = true, + ["Fleet Master Seahorn"] = true, + ["Baron Revilgaz"] = true, + ["Saltwater Snapjaw"] = true, + ["Skymane Gorilla"] = true, + ["Jaguero Stalker"] = true, + ["Zanzil the Outcast"] = true, + ["Catelyn the Blade"] = true, + ["Fleet Master Firallon"] = true, + ["Captain Keelhaul"] = true, + ["Hammerfall Guardian"] = true, + ["Sly Garrett"] = true, + ["Viznik Goldgrubber"] = true, + ["Vilebranch Witch Doctor"] = true, + ["Vilebranch Headhunter"] = true, + ["Vilebranch Shadowcaster"] = true, + ["Vilebranch Berserker"] = true, + ["Vilebranch Hideskinner"] = true, + ["Vilebranch Shadow Hunter"] = true, + ["Vilebranch Blood Drinker"] = true, + ["Vilebranch Soul Eater"] = true, + ["Vilebranch Aman'zasi Guard"] = true, + ["Green Sludge"] = true, + ["Jade Ooze"] = true, + ["Razorbeak Skylord"] = true, + ["Mechanical Dragonling"] = true, + ["Vilebranch Wolf Pup"] = true, + ["Vilebranch Raiding Wolf"] = true, + ["Ruppo Zipcoil"] = true, + ["Highvale Ranger"] = true, + ["Hanashi"] = true, + ["Shadra"] = true, + ["Archaedas"] = true, + ["Blacklash"] = true, + ["Hematus"] = true, + ["King Magni Bronzebeard"] = true, + ["Zaruk"] = true, + ["Susan Tillinghast"] = true, + ["Malygen"] = true, + ["Kurden Bloodclaw"] = true, + ["Bale"] = true, + ["Cedrik Prose"] = true, + ["Brikk Keencraft"] = true, + ["Jaxin Chong"] = true, + ["Crazk Sparks"] = true, + ["Hurklor"] = true, + ["Jansen Underwood"] = true, + ["Urda"] = true, + ["Gringer"] = true, + ["Gyll"] = true, + ["Gorrik"] = true, + ["Grunenstur Balindom"] = true, + ["Hurom Juggendolf"] = true, + ["Durdek Karrin"] = true, + ["Garek"] = true, + ["Silvermane Stalker"] = true, + ["Savage Owlbeast"] = true, + ["Zaricotl"] = true, + ["Lanie Reed"] = true, + ["Tal"] = true, + ["Una"] = true, + ["Siln Skychaser"] = true, + ["Beram Skychaser"] = true, + ["Turak Runetotem"] = true, + ["Sheal Runetotem"] = true, + ["Kary Thunderhorn"] = true, + ["Holt Thunderhorn"] = true, + ["Torm Ragetotem"] = true, + ["Sark Ragetotem"] = true, + ["Malakai Cross"] = true, + ["Father Cobb"] = true, + ["Archmage Shymm"] = true, + ["Thurston Xane"] = true, + ["Cairne Bloodhoof"] = true, + ["Honor Guard"] = true, + ["Bluffwatcher"] = true, + ["Unseen"] = true, + ["Brave Proudsnout"] = true, + ["Brave Lightninghorn"] = true, + ["Brave Running Wolf"] = true, + ["Brave Greathoof"] = true, + ["Nazgrel"] = true, + ["Orgrimmar Grunt"] = true, + ["Gabrielle Chase"] = true, + ["Grisha"] = true, + ["Doras"] = true, + ["Olvia"] = true, + ["Grol'dar"] = true, + ["Mirket"] = true, + ["Zevrost"] = true, + ["Ormok"] = true, + ["Sergra Darkthorn"] = true, + ["Grelkor"] = true, + ["Kardris Dreamseeker"] = true, + ["Ormak Grimshot"] = true, + ["Grezz Ragefist"] = true, + ["Sorek"] = true, + ["Gazlowe"] = true, + ["Shenthul"] = true, + ["Xor'juul"] = true, + ["Melor Stonehoof"] = true, + ["Ancient of Lore"] = true, + ["Ancient of War"] = true, + ["Tarhus"] = true, + ["Ratchet Bruiser"] = true, + ["Arch Druid Fandral Staghelm"] = true, + ["Teldrassil Sentinel"] = true, + ["Sewer Beast"] = true, + ["Aman"] = true, + ["Devrak"] = true, + ["Onu"] = true, + ["Kurll"] = true, + ["Rarck"] = true, + ["Vrang Wildgore"] = true, + ["Raene Wolfrunner"] = true, + ["Jadenvis Seawatcher"] = true, + ["Gruna"] = true, + ["Syurana"] = true, + ["Vesprystus"] = true, + ["Caylais Moonfeather"] = true, + ["Brakgul Deathbringer"] = true, + ["Healing Stream Totem IV"] = true, + ["Healing Stream Totem V"] = true, + ["Shandris Feathermoon"] = true, + ["Magatha Grimtotem"] = true, + ["Zor Lonetree"] = true, + ["Rat"] = true, + ["Arias'ta Bladesinger"] = true, + ["Elanaria"] = true, + ["Astarii Starseeker"] = true, + ["Jandria"] = true, + ["Jeen'ra Nightrunner"] = true, + ["Ainethil"] = true, + ["Lysheana"] = true, + ["Ealyshia Dewwhisper"] = true, + ["Geenia Sunshadow"] = true, + ["Dorion"] = true, + ["Telonis"] = true, + ["Erion Shadewhisper"] = true, + ["Anishar"] = true, + ["Mathrengyl Bearwalker"] = true, + ["Denatharion"] = true, + ["Frostsaber Companion"] = true, + ["Nightshade"] = true, + ["Brogus Thunderbrew"] = true, + ["Lana Thunderbrew"] = true, + ["Darnassus Sentinel"] = true, + ["Daelyshia"] = true, + ["Gorm Grimtotem"] = true, + ["Cor Grimtotem"] = true, + ["Tharm"] = true, + ["Gorkas"] = true, + ["Nyse"] = true, + ["Thyssiana"] = true, + ["Baldruc"] = true, + ["Strashaz Warrior"] = true, + ["Strashaz Serpent Guard"] = true, + ["Strashaz Myrmidon"] = true, + ["Strashaz Sorceress"] = true, + ["Strashaz Siren"] = true, + ["Strashaz Hydra"] = true, + ["Teloren"] = true, + ["Darnassian Protector"] = true, + ["Vilebranch Scalper"] = true, + ["Vilebranch Soothsayer"] = true, + ["Jade Sludge"] = true, + ["Emerald Ooze"] = true, + ["Haunting Vision"] = true, + ["Rotting Cadaver"] = true, + ["Blighted Zombie"] = true, + ["Scarlet Avenger"] = true, + ["Scarlet Spellbinder"] = true, + ["Michael Garrett"] = true, + ["Kaal Soulreaper"] = true, + ["Luther Pickman"] = true, + ["Kaelystia Hatebringer"] = true, + ["Pierce Shackleton"] = true, + ["Miles Dexter"] = true, + ["Gregory Charles"] = true, + ["Christoph Walker"] = true, + ["Angela Curthas"] = true, + ["Aelthalyste"] = true, + ["Father Lazarus"] = true, + ["Doctor Herbert Halsey"] = true, + ["Christopher Drakul"] = true, + ["Booty Bay Bruiser"] = true, + ["Kildar"] = true, + ["Truk Wildbeard"] = true, + ["Nazeer Bloodpike"] = true, + ["Stone Keeper"] = true, + ["Guard Edward"] = true, + ["Guard Jarad"] = true, + ["Combat Master Criton"] = true, + ["Captain Garran Vimes"] = true, + ["Theramore Lieutenant"] = true, + ["Thrall"] = true, + ["Theramore Practicing Guard"] = true, + ["Lady Jaina Proudmoore"] = true, + ["Guard Lasiter"] = true, + ["Aldwin Laughlin"] = true, + ["Theramore Guard"] = true, + ["Krumn"] = true, + ["Combat Master Szigeti"] = true, + ["Guard Kahil"] = true, + ["Guard Lana"] = true, + ["Guard Narrisha"] = true, + ["Guard Tark"] = true, + ["Captain Andrews"] = true, + ["Captain Thomas"] = true, + ["Daera Brightspear"] = true, + ["Olmin Burningbeard"] = true, + ["Brogun Stoneshield"] = true, + ["Jondor Steelbrow"] = true, + ["Jonivera Farmountain"] = true, + ["Svalbrad Farmountain"] = true, + ["Kurdrum Barleybeard"] = true, + ["Theodrus Frostbeard"] = true, + ["Braenna Flintcrag"] = true, + ["Juli Stormkettle"] = true, + ["Nittlebur Sparkfizzle"] = true, + ["Valgar Highforge"] = true, + ["Beldruk Doombrow"] = true, + ["Brandur Ironhammer"] = true, + ["Grumnus Steelshaper"] = true, + ["Hulfdan Blackbeard"] = true, + ["Ormyr Flinteye"] = true, + ["Briarthorn"] = true, + ["Alexander Calder"] = true, + ["Medic Tamberlyn"] = true, + ["Medic Helaina"] = true, + ["Murk Spitter"] = true, + ["Murk Worm"] = true, + ["Saturated Ooze"] = true, + ["Gordunni Warlord"] = true, + ["Atal'ai Warrior"] = true, + ["Atal'ai Witch Doctor"] = true, + ["Groddoc Thunderer"] = true, + ["Mummified Atal'ai"] = true, + ["Unliving Atal'ai"] = true, + ["Atal'ai Priest"] = true, + ["Atal'ai Corpse Eater"] = true, + ["Atal'ai Deathwalker"] = true, + ["Atal'ai High Priest"] = true, + ["Ironfur Patriarch"] = true, + ["Sprite Dragon"] = true, + ["Nightmare Scalebane"] = true, + ["Nightmare Wyrmkin"] = true, + ["Nightmare Wanderer"] = true, + ["Rabid Longtooth"] = true, + ["Hakkari Frostwing"] = true, + ["Rage Scar Yeti"] = true, + ["Elder Rage Scar"] = true, + ["Ferocious Rage Scar"] = true, + ["Frayfeather Patriarch"] = true, + ["Lethlas"] = true, + ["Phantim"] = true, + ["Jademir Oracle"] = true, + ["Jademir Tree Warder"] = true, + ["Jademir Boughguard"] = true, + ["Lady Szallah"] = true, + ["Diamond Head"] = true, + ["Bloodroar the Stalker"] = true, + ["Antilus the Soarer"] = true, + ["Arash-ethis"] = true, + ["Qirot"] = true, + ["Land Walker"] = true, + ["Cliff Giant"] = true, + ["Shore Strider"] = true, + ["Deep Strider"] = true, + ["Wave Strider"] = true, + ["Northspring Harpy"] = true, + ["Northspring Roguefeather"] = true, + ["Northspring Slayer"] = true, + ["Northspring Windcaller"] = true, + ["High Explorer Magellas"] = true, + ["Sage Palerunner"] = true, + ["Quartermaster Lungertz"] = true, + ["Veyzhak the Cannibal"] = true, + ["Zekkis"] = true, + ["Kazkaz the Unholy"] = true, + ["Glasshide Petrifier"] = true, + ["Scorpid Dunestalker"] = true, + ["Rabid Blisterpaw"] = true, + ["Searing Roc"] = true, + ["Surf Glider"] = true, + ["Giant Surf Glider"] = true, + ["Coral Shark"] = true, + ["Hazzali Wasp"] = true, + ["Hazzali Stinger"] = true, + ["Hazzali Swarmer"] = true, + ["Hazzali Worker"] = true, + ["Hazzali Tunneler"] = true, + ["Hazzali Sandreaver"] = true, + ["Centipaar Wasp"] = true, + ["Centipaar Stinger"] = true, + ["Centipaar Swarmer"] = true, + ["Centipaar Worker"] = true, + ["Centipaar Tunneler"] = true, + ["Centipaar Sandreaver"] = true, + ["Sea Elemental"] = true, + ["Sea Spray"] = true, + ["Coast Strider"] = true, + ["Deep Dweller"] = true, + ["Dune Smasher"] = true, + ["Raging Dune Smasher"] = true, + ["Dunemaul Enforcer"] = true, + ["Dunemaul Ogre Mage"] = true, + ["Dunemaul Brute"] = true, + ["Dunemaul Warlock"] = true, + ["Wu Shen"] = true, + ["Thistleshrub Dew Collector"] = true, + ["Thistleshrub Rootshaper"] = true, + ["Brother Joshua"] = true, + ["Gnarled Thistleshrub"] = true, + ["Katherine the Pure"] = true, + ["Sandahl"] = true, + ["Elsharin"] = true, + ["Kaerbrus"] = true, + ["Sheldras Moontree"] = true, + ["Theridran"] = true, + ["Einris Brightspear"] = true, + ["Ulfir Ironbeard"] = true, + ["Grunt Zuul"] = true, + ["Grunt Tharlak"] = true, + ["Bruuk Barleybeard"] = true, + ["Ironforge Guard"] = true, + ["Undercity Guardian"] = true, + ["Falstad Wildhammer"] = true, + ["Gunther's Visage"] = true, + ["Carendin Halgar"] = true, + ["High Sorcerer Andromath"] = true, + ["Spawn of Hakkar"] = true, + ["Shade of Eranikus"] = true, + ["Jammal'an the Prophet"] = true, + ["Ogom the Wretched"] = true, + ["Zolo"] = true, + ["Gasher"] = true, + ["Loro"] = true, + ["Hukku"] = true, + ["Zul'Lor"] = true, + ["Mijan"] = true, + ["Rothos"] = true, + ["Morphaz"] = true, + ["Weaver"] = true, + ["Dreamscythe"] = true, + ["Hazzas"] = true, + ["Guardian of Blizzard"] = true, + ["Arch Druid Hamuul Runetotem"] = true, + ["Nara Wildmane"] = true, + ["Crildor"] = true, + ["Margol the Rager"] = true, + ["Dark Iron Steamsmith"] = true, + ["Dark Iron Taskmaster"] = true, + ["Inferno Elemental"] = true, + ["Heavy War Golem"] = true, + ["Magma Elemental"] = true, + ["Greater Lava Spider"] = true, + ["Twilight Dark Shaman"] = true, + ["Twilight Fire Guard"] = true, + ["Twilight Geomancer"] = true, + ["Pephredo"] = true, + ["Enyo"] = true, + ["Tremor Totem"] = true, + ["Den Grunt"] = true, + ["Dreadmaul Ogre Mage"] = true, + ["Dreadmaul Brute"] = true, + ["Dreadmaul Mauler"] = true, + ["Dreadmaul Warlock"] = true, + ["Portal Seeker"] = true, + ["Black Slayer"] = true, + ["Bonepicker"] = true, + ["Snickerfang Hyena"] = true, + ["Scorpok Stinger"] = true, + ["Redstone Basilisk"] = true, + ["Redstone Crystalhide"] = true, + ["Ashmane Boar"] = true, + ["Helboar"] = true, + ["Zayus"] = true, + ["Nethergarde Miner"] = true, + ["Nethergarde Engineer"] = true, + ["Nethergarde Foreman"] = true, + ["Nethergarde Soldier"] = true, + ["Nethergarde Cleric"] = true, + ["Nethergarde Analyst"] = true, + ["Nethergarde Riftwatcher"] = true, + ["Nethergarde Officer"] = true, + ["Shadowsworn Cultist"] = true, + ["Shadowsworn Thug"] = true, + ["Shadowsworn Adept"] = true, + ["Shadowsworn Enforcer"] = true, + ["Shadowsworn Warlock"] = true, + ["Shadowsworn Dreadweaver"] = true, + ["Felhound"] = true, + ["Felguard Sentry"] = true, + ["Flametongue Totem II"] = true, + ["X'yera"] = true, + ["Elemental Protection Totem"] = true, + ["Breyk"] = true, + ["Earthgrab Totem"] = true, + ["Harry Burlguard"] = true, + ["Azuregos"] = true, + ["Muren Stormpike"] = true, + ["Highborne Lichling"] = true, + ["Varo'then's Ghost"] = true, + ["Gakin the Darkbinder"] = true, + ["Haldarr Felsworn"] = true, + ["Draconic Magelord"] = true, + ["Blue Scalebane"] = true, + ["Draconic Mageweaver"] = true, + ["Lord Arkkoroc"] = true, + ["Arkkoran Clacker"] = true, + ["Arkkoran Muckdweller"] = true, + ["Arkkoran Pincer"] = true, + ["Arkkoran Oracle"] = true, + ["Hetaera"] = true, + ["Servant of Arkkoroc"] = true, + ["Son of Arkkoroc"] = true, + ["Cliff Breaker"] = true, + ["Cliff Thunderer"] = true, + ["Cliff Walker"] = true, + ["Duthorian Rall"] = true, + ["Tiza Battleforge"] = true, + ["Timbermaw Pathfinder"] = true, + ["Timbermaw Warrior"] = true, + ["Timbermaw Totemic"] = true, + ["Timbermaw Den Watcher"] = true, + ["Timbermaw Shaman"] = true, + ["Timbermaw Ursa"] = true, + ["Spitelash Warrior"] = true, + ["Spitelash Screamer"] = true, + ["Spitelash Serpent Guard"] = true, + ["Spitelash Siren"] = true, + ["Spitelash Myrmidon"] = true, + ["Blood Elf Surveyor"] = true, + ["Blood Elf Reclaimer"] = true, + ["Legashi Satyr"] = true, + ["Legashi Rogue"] = true, + ["Legashi Hellcaller"] = true, + ["Klannoc Macleod"] = true, + ["Strahad Farsan"] = true, + ["Menara Voidrender"] = true, + ["Young Wavethrasher"] = true, + ["Wavethrasher"] = true, + ["Great Wavethrasher"] = true, + ["Makrinni Razorclaw"] = true, + ["Storm Bay Oracle"] = true, + ["Coralshell Lurker"] = true, + ["Coralshell Tortoise"] = true, + ["Makrinni Scrabbler"] = true, + ["Storm Bay Warrior"] = true, + ["Makrinni Snapclaw"] = true, + ["Thunderhead Hippogryph"] = true, + ["Thunderhead Stagwing"] = true, + ["Thunderhead Skystormer"] = true, + ["Thunderhead Patriarch"] = true, + ["Thunderhead Consort"] = true, + ["Jubahl Corpseseeker"] = true, + ["Ward of Zanzil"] = true, + ["Henen Ragetotem"] = true, + ["Sergeant Rutger"] = true, + ["Spirit Healer"] = true, + ["Devilsaur"] = true, + ["Ironhide Devilsaur"] = true, + ["Tyrant Devilsaur"] = true, + ["Stegodon"] = true, + ["Plated Stegodon"] = true, + ["Spiked Stegodon"] = true, + ["Thunderstomp Stegodon"] = true, + ["Ravasaur"] = true, + ["Ravasaur Runner"] = true, + ["Ravasaur Hunter"] = true, + ["Venomhide Ravasaur"] = true, + ["Bloodpetal Lasher"] = true, + ["Bloodpetal Flayer"] = true, + ["Bloodpetal Thresher"] = true, + ["Bloodpetal Trapper"] = true, + ["Un'Goro Stomper"] = true, + ["Un'Goro Gorilla"] = true, + ["Un'Goro Thunderer"] = true, + ["Tar Beast"] = true, + ["Tar Lurker"] = true, + ["Tar Lord"] = true, + ["Scorching Elemental"] = true, + ["Living Blaze"] = true, + ["Tar Creeper"] = true, + ["Tabetha"] = true, + ["Magus Tirth"] = true, + ["Gorishi Wasp"] = true, + ["Gorishi Worker"] = true, + ["Gorishi Reaver"] = true, + ["Gorishi Stinger"] = true, + ["Gorishi Tunneler"] = true, + ["Muculent Ooze"] = true, + ["Primal Ooze"] = true, + ["Glutinous Ooze"] = true, + ["Stone Guardian"] = true, + ["Vizzklick"] = true, + ["Ravasaur Matriarch"] = true, + ["Clutchmother Zavas"] = true, + ["Gruff"] = true, + ["King Mosh"] = true, + ["Uhk'loc"] = true, + ["Monnos the Elder"] = true, + ["Magister Hawkhelm"] = true, + ["Antilos"] = true, + ["Lady Sesspira"] = true, + ["General Fangferror"] = true, + ["Gatekeeper Rageroar"] = true, + ["Master Feardred"] = true, + ["Baritanas Skyriver"] = true, + ["Fahrad"] = true, + ["Thalon"] = true, + ["Ravenholdt Guard"] = true, + ["Lord Jorach Ravenholdt"] = true, + ["Ravenholdt Assassin"] = true, + ["Zan Shivsproket"] = true, + ["Innkeeper Skindle"] = true, + ["Talvash del Kissel"] = true, + ["Yalda"] = true, + ["Blackrock Soldier"] = true, + ["Blackrock Sorcerer"] = true, + ["Blackrock Slayer"] = true, + ["Blackrock Warlock"] = true, + ["Blackrock Battlemaster"] = true, + ["Obsidian Elemental"] = true, + ["Greater Obsidian Elemental"] = true, + ["Firegut Ogre"] = true, + ["Firegut Ogre Mage"] = true, + ["Firegut Brute"] = true, + ["Thaurissan Spy"] = true, + ["Thaurissan Firewalker"] = true, + ["Thaurissan Agent"] = true, + ["War Reaver"] = true, + ["Black Dragonspawn"] = true, + ["Black Wyrmkin"] = true, + ["Flamescale Dragonspawn"] = true, + ["Flamescale Wyrmkin"] = true, + ["Black Drake"] = true, + ["Scalding Drake"] = true, + ["Searscale Drake"] = true, + ["Black Broodling"] = true, + ["Scalding Broodling"] = true, + ["Flamescale Broodling"] = true, + ["Blackrock Worg"] = true, + ["Condemned Acolyte"] = true, + ["Condemned Monk"] = true, + ["Condemned Cleric"] = true, + ["Cursed Paladin"] = true, + ["Cursed Justicar"] = true, + ["Writhing Mage"] = true, + ["Cursed Ooze"] = true, + ["Tainted Ooze"] = true, + ["Vile Ooze"] = true, + ["Ironbeak Owl"] = true, + ["Ironbeak Screecher"] = true, + ["Ironbeak Hunter"] = true, + ["Warpwood Moss Flayer"] = true, + ["Warpwood Shredder"] = true, + ["Dessecus"] = true, + ["Jadefire Satyr"] = true, + ["Jadefire Rogue"] = true, + ["Jadefire Trickster"] = true, + ["Jadefire Betrayer"] = true, + ["Jadefire Felsworn"] = true, + ["Jadefire Shadowstalker"] = true, + ["Jadefire Hellcaller"] = true, + ["Jaedenar Cultist"] = true, + ["Jaedenar Guardian"] = true, + ["Jaedenar Enforcer"] = true, + ["Jaedenar Adept"] = true, + ["Jaedenar Darkweaver"] = true, + ["Jaedenar Warlock"] = true, + ["Jaedenar Hound"] = true, + ["Jaedenar Hunter"] = true, + ["Toxic Horror"] = true, + ["Infernal Bodyguard"] = true, + ["Infernal Sentry"] = true, + ["Immolatus"] = true, + ["Irontree Wanderer"] = true, + ["Irontree Stomper"] = true, + ["Withered Protector"] = true, + ["Deadwood Warrior"] = true, + ["Deadwood Gardener"] = true, + ["Deadwood Pathfinder"] = true, + ["Deadwood Den Watcher"] = true, + ["Deadwood Avenger"] = true, + ["Deadwood Shaman"] = true, + ["Lore Keeper of Norgannon"] = true, + ["Shayis Steelfury"] = true, + ["Kelgruk Bloodaxe"] = true, + ["Borgus Steelhand"] = true, + ["Ember"] = true, + ["Chief Ukorz Sandscalp"] = true, + ["Witch Doctor Zum'rah"] = true, + ["Gahz'rilla"] = true, + ["Sandfury Executioner"] = true, + ["Shadowpriest Sezz'ziz"] = true, + ["Darnath Bladesinger"] = true, + ["Winstone Wolfe"] = true, + ["Master Kang"] = true, + ["Kum'isha the Collector"] = true, + ["Flawless Draenethyst Sphere"] = true, + ["Stoneskin Totem VI"] = true, + ["Deadwind Brute"] = true, + ["Restless Shade"] = true, + ["Deadwind Mauler"] = true, + ["Deadwind Warlock"] = true, + ["Sky Shadow"] = true, + ["Deadwind Ogre Mage"] = true, + ["Stoneclaw Totem V"] = true, + ["Stoneclaw Totem VI"] = true, + ["Searing Totem V"] = true, + ["Searing Totem VI"] = true, + ["Strength of Earth Totem IV"] = true, + ["Oglethorpe Obnoticus"] = true, + ["Chief Engineer Bilgewhizzle"] = true, + ["Thelman Slatefist"] = true, + ["Frost Resistance Totem II"] = true, + ["Frost Resistance Totem III"] = true, + ["Mana Spring Totem III"] = true, + ["Mana Spring Totem IV"] = true, + ["Flametongue Totem III"] = true, + ["Fire Resistance Totem II"] = true, + ["Fire Resistance Totem III"] = true, + ["Taim Ragetotem"] = true, + ["Frostmaul Giant"] = true, + ["Frostmaul Preserver"] = true, + ["Frostsaber Cub"] = true, + ["Frostsaber"] = true, + ["Frostsaber Stalker"] = true, + ["Frostsaber Huntress"] = true, + ["Frostsaber Pride Watcher"] = true, + ["Cobalt Wyrmkin"] = true, + ["Cobalt Scalebane"] = true, + ["Cobalt Mageweaver"] = true, + ["Winterfall Ursa"] = true, + ["Winterfall Shaman"] = true, + ["Winterfall Den Watcher"] = true, + ["Winterfall Totemic"] = true, + ["Winterfall Pathfinder"] = true, + ["Shardtooth Mauler"] = true, + ["Shardtooth Bear"] = true, + ["Elder Shardtooth"] = true, + ["Rabid Shardtooth"] = true, + ["Fledgling Chillwind"] = true, + ["Chillwind Chimaera"] = true, + ["Chillwind Ravager"] = true, + ["Ragged Owlbeast"] = true, + ["Raging Owlbeast"] = true, + ["Crazed Owlbeast"] = true, + ["Moontouched Owlbeast"] = true, + ["Berserk Owlbeast"] = true, + ["Winterspring Owl"] = true, + ["Winterspring Screecher"] = true, + ["Rogue Ice Thistle"] = true, + ["Ice Thistle Yeti"] = true, + ["Ice Thistle Matriarch"] = true, + ["Ice Thistle Patriarch"] = true, + ["Hederine Initiate"] = true, + ["Hederine Manastalker"] = true, + ["Hederine Slayer"] = true, + ["Magma Totem III"] = true, + ["Magma Totem IV"] = true, + ["Nature Resistance Totem II"] = true, + ["Nature Resistance Totem III"] = true, + ["Windfury Totem II"] = true, + ["Windfury Totem III"] = true, + ["Grace of Air Totem II"] = true, + ["Bloodmage Drazial"] = true, + ["Bloodmage Lynnore"] = true, + ["Suffering Highborne"] = true, + ["Anguished Highborne"] = true, + ["Fallen Hero of the Horde"] = true, + ["Dispatch Commander Ruag"] = true, + ["Razelikh the Defiler"] = true, + ["Grol the Destroyer"] = true, + ["Archmage Allistarj"] = true, + ["Lady Sevine"] = true, + ["Servant of Razelikh"] = true, + ["Servant of Grol"] = true, + ["Servant of Allistarj"] = true, + ["Servant of Sevine"] = true, + ["Kirith the Damned"] = true, + ["Spirit of Kirith"] = true, + ["Ilifar"] = true, + ["Felcular"] = true, + ["Gracina Spiritmight"] = true, + ["Corporal Thund Splithoof"] = true, + ["Curgle Cranklehop"] = true, + ["Troyas Moonbreeze"] = true, + ["Kalin Windflight"] = true, + ["Marli Wishrunner"] = true, + ["Shay Leafrunner"] = true, + ["Talo Thornhoof"] = true, + ["Rin'ji"] = true, + ["Loramus Thalipedes"] = true, + ["Ward of Zum'rah"] = true, + ["Aturk the Anvil"] = true, + ["Ox"] = true, + ["McGavan"] = true, + ["Hydromancer Velratha"] = true, + ["Ruuzlu"] = true, + ["Hank the Hammer"] = true, + ["Galvan the Ancient"] = true, + ["Scorpid Duneburrower"] = true, + ["Trenton Lighthammer"] = true, + ["Marauding Owlbeast"] = true, + ["Vilebranch Ambusher"] = true, + ["Bera Stonehammer"] = true, + ["Bulkrek Ragefist"] = true, + ["Oran Snakewrithe"] = true, + ["Ambassador Ardalan"] = true, + ["Fire Nova Totem IV"] = true, + ["Fire Nova Totem V"] = true, + ["Teremus the Devourer"] = true, + ["Caliph Scorpidsting"] = true, + ["Lurking Feral Scar"] = true, + ["Nethergarde Elite"] = true, + ["Pratt McGrubben"] = true, + ["Jangdor Swiftstrider"] = true, + ["Lingering Highborne"] = true, + ["Wildhammer Sentry"] = true, + ["Peter Galen"] = true, + ["Thorkaf Dragoneye"] = true, + ["Sarah Tanner"] = true, + ["Brumn Winterhoof"] = true, + ["Caryssia Moonhunter"] = true, + ["Se'Jib"] = true, + ["Latronicus Moonspear"] = true, + ["Vestia Moonspear"] = true, + ["Quintis Jonespyre"] = true, + ["Ginro Hearthkindle"] = true, + ["Security Chief Bilgewhizzle"] = true, + ["Fraggar Thundermantle"] = true, + ["Spitelash Battlemaster"] = true, + ["Spitelash Enchantress"] = true, + ["Angelas Moonbreeze"] = true, + ["Brother Sarno"] = true, + ["Stone Watcher of Norgannon"] = true, + ["High Tinker Mekkatorque"] = true, + ["Feathermoon Sentinel"] = true, + ["Darnall"] = true, + ["Mardrack Greenwell"] = true, + ["Faralorn"] = true, + ["Harklane"] = true, + ["Tinkmaster Overspark"] = true, + ["Savanne"] = true, + ["Brannock"] = true, + ["Vivianna"] = true, + ["Kylanna Windwhisper"] = true, + ["Xylinnia Starshine"] = true, + ["Master Mechanic Castpipe"] = true, + ["Xar'Ti"] = true, + ["Binjy Featherwhistle"] = true, + ["Milli Featherwhistle"] = true, + ["Mulgore Protector"] = true, + ["Gammerita"] = true, + ["Deathguard Elite"] = true, + ["Vile Priestess Hexx"] = true, + ["Qiaga the Keeper"] = true, + ["Tyrande Whisperwind"] = true, + ["Sen'jin Guardian"] = true, + ["Guthrum Thunderfist"] = true, + ["Fyldren Moonfeather"] = true, + ["Shyn"] = true, + ["Orwin Gizzmick"] = true, + ["Thadius Grimshade"] = true, + ["Sharpbeak's Father"] = true, + ["Sharpbeak's Mother"] = true, + ["Thyn'tel Bladeweaver"] = true, + ["Edana Hatetalon"] = true, + ["Witch Doctor Uzer'i"] = true, + ["Ziggle Sparks"] = true, + ["Sul'lithuz Abomination"] = true, + ["Rickle Goldgrubber"] = true, + ["Nixx Sprocketspring"] = true, + ["Antu'sul"] = true, + ["Lord Shalzaru"] = true, + ["Jannos Lighthoof"] = true, + ["Loorana"] = true, + ["Kulleg Stonehorn"] = true, + ["Sheendra Tallgrass"] = true, + ["Ruw"] = true, + ["Camp Mojache Brave"] = true, + ["Nijel's Point Guard"] = true, + ["Ghost Walker Brave"] = true, + ["Kargath Grunt"] = true, + ["Servant of Antu'sul"] = true, + ["Logannas"] = true, + ["Bronk"] = true, + ["Worb Strongstitch"] = true, + ["Nioma"] = true, + ["Harggan"] = true, + ["Nina Lightbrew"] = true, + ["Occulus"] = true, + ["Chronalis"] = true, + ["Tick"] = true, + ["Jin'Zallah the Sandbringer"] = true, + ["Omgorn the Lost"] = true, + ["Cyclok the Mad"] = true, + ["Kregg Keelhaul"] = true, + ["Soriid the Devourer"] = true, + ["Haarka the Ravenous"] = true, + ["Greater Firebird"] = true, + ["The Reak"] = true, + ["Ironback"] = true, + ["Jalinde Summerdrake"] = true, + ["Grimungous"] = true, + ["Retherokk the Berserker"] = true, + ["Mith'rethis the Enchanter"] = true, + ["Rekk'tilac"] = true, + ["Smoldar"] = true, + ["Faulty War Golem"] = true, + ["Shleipnarr"] = true, + ["Scald"] = true, + ["Highlord Mastrogonde"] = true, + ["Slave Master Blackheart"] = true, + ["Mojo the Twisted"] = true, + ["Magronos the Unyielding"] = true, + ["Akubar the Seer"] = true, + ["Spiteflayer"] = true, + ["Ravage"] = true, + ["Clack the Reaver"] = true, + ["Deatheye"] = true, + ["Grunter"] = true, + ["Dreadscorn"] = true, + ["Carlo Aurelius"] = true, + ["Atal'ai Deathwalker's Spirit"] = true, + ["Atal'ai Slave"] = true, + ["Nightmare Whelp"] = true, + ["Atal'ai Skeleton"] = true, + ["Hakkari Sapper"] = true, + ["Dark Iron Marksman"] = true, + ["Archmage Xylem"] = true, + ["Captain Vanessa Beltis"] = true, + ["Lindros"] = true, + ["Patrick Mills"] = true, + ["Master Wood"] = true, + ["Deep Lurker"] = true, + ["Lathoric the Black"] = true, + ["Sanath Lim-yo"] = true, + ["Obsidion"] = true, + ["Enslaved Archaeologist"] = true, + ["Warlord Krellian"] = true, + ["Caravan Master Tset"] = true, + ["Dying Archaeologist"] = true, + ["Twilight Idolater"] = true, + ["Kim'jael"] = true, + ["Dorius"] = true, + ["Zamael Lunthistle"] = true, + ["Hakkari Bloodkeeper"] = true, + ["Nilith Lokrav"] = true, + ["Raze"] = true, + ["Shadowsilk Poacher"] = true, + ["Avatar of Hakkar"] = true, + ["Trade Master Kovic"] = true, + ["Clunk"] = true, + ["Skeletal Servant"] = true, + ["Kalaran Windblade"] = true, + ["Kalaran the Deceiver"] = true, + ["Nightmare Suppressor"] = true, + ["Dark Iron Sentry"] = true, + ["Squire Maltrake"] = true, + ["Atal'ai Totem"] = true, + ["Blighted Surge"] = true, + ["Plague Ravager"] = true, + ["Blighted Horror"] = true, + ["Plague Monstrosity"] = true, + ["Scourge Soldier"] = true, + ["Cursed Mage"] = true, + ["Scourge Warder"] = true, + ["Dark Caster"] = true, + ["Scourge Guard"] = true, + ["Dread Weaver"] = true, + ["Scourge Champion"] = true, + ["Cannibal Ghoul"] = true, + ["Gibbering Ghoul"] = true, + ["Diseased Flayer"] = true, + ["Putrid Gargoyle"] = true, + ["Putrid Shrieker"] = true, + ["Unseen Servant"] = true, + ["Eyeless Watcher"] = true, + ["Torn Screamer"] = true, + ["Hate Shrieker"] = true, + ["Death Singer"] = true, + ["Stitched Horror"] = true, + ["Gangled Golem"] = true, + ["Stitched Golem"] = true, + ["Dark Adept"] = true, + ["Death Cultist"] = true, + ["Vile Tutor"] = true, + ["Shadowmage"] = true, + ["Dark Summoner"] = true, + ["Necromancer"] = true, + ["Crypt Stalker"] = true, + ["Crypt Walker"] = true, + ["Crypt Horror"] = true, + ["Crypt Slayer"] = true, + ["Mossflayer Scout"] = true, + ["Mossflayer Shadowhunter"] = true, + ["Mossflayer Cannibal"] = true, + ["Woodsman"] = true, + ["Ranger"] = true, + ["Pathstrider"] = true, + ["Dark Iron Lookout"] = true, + ["Magus Rimtori"] = true, + ["Atal'alarion"] = true, + ["Blood Elf Defender"] = true, + ["Jediga"] = true, + ["Umbranse the Spiritspeaker"] = true, + ["Plaguehound Runt"] = true, + ["Plaguehound"] = true, + ["Frenzied Plaguehound"] = true, + ["Plaguebat"] = true, + ["Noxious Plaguebat"] = true, + ["Monstrous Plaguebat"] = true, + ["Carrion Grub"] = true, + ["Carrion Devourer"] = true, + ["Living Decay"] = true, + ["Rotting Sludge"] = true, + ["Angered Infernal"] = true, + ["Alexandra Constantine"] = true, + ["Kroum"] = true, + ["Mithril Dragonling"] = true, + ["Infernal Servant"] = true, + ["Morta'gya the Keeper"] = true, + ["Hukku's Voidwalker"] = true, + ["Hukku's Succubus"] = true, + ["Hukku's Imp"] = true, + ["Jes'rimon"] = true, + ["The Evalcharr"] = true, + ["Auctioneer Beardo"] = true, + ["Saern Priderunner"] = true, + ["Auctioneer Tolon"] = true, + ["Auctioneer Chilton"] = true, + ["Auctioneer Buckler"] = true, + ["Auctioneer Leeka"] = true, + ["Auctioneer Thathung"] = true, + ["Auctioneer Stampi"] = true, + ["Felbeast"] = true, + ["Jubie Gadgetspring"] = true, + ["Massive Infernal"] = true, + ["Dreadlord"] = true, + ["Felguard Elite"] = true, + ["Manahound"] = true, + ["Auctioneer Fitch"] = true, + ["Auctioneer Redmuse"] = true, + ["Auctioneer Epitwee"] = true, + ["Auctioneer Gullem"] = true, + ["Auctioneer Golothas"] = true, + ["Auctioneer Wabang"] = true, + ["Buzzek Bracketswing"] = true, + ["Raytaf"] = true, + ["Shahiar"] = true, + ["Zaman"] = true, + ["Mosshoof Stag"] = true, + ["Mosshoof Courser"] = true, + ["Timberweb Recluse"] = true, + ["Mistwing Rogue"] = true, + ["Mistwing Ravager"] = true, + ["Forest Ooze"] = true, + ["Deathly Usher"] = true, + ["Muck Splash"] = true, + ["Royal Historian Archesonus"] = true, + ["A tormented voice"] = true, + ["Franclorn Forgewright"] = true, + ["Anvilrage Overseer"] = true, + ["Anvilrage Warden"] = true, + ["Anvilrage Guardsman"] = true, + ["Anvilrage Footman"] = true, + ["Anvilrage Soldier"] = true, + ["Anvilrage Medic"] = true, + ["Anvilrage Officer"] = true, + ["Shadowforge Peasant"] = true, + ["Doomforge Craftsman"] = true, + ["Anvilrage Marshal"] = true, + ["Doomforge Dragoon"] = true, + ["Doomforge Arcanasmith"] = true, + ["Anvilrage Reservist"] = true, + ["Shadowforge Citizen"] = true, + ["Anvilrage Captain"] = true, + ["Shadowforge Senator"] = true, + ["Warbringer Construct"] = true, + ["Ragereaver Golem"] = true, + ["Wrath Hammer Construct"] = true, + ["Molten War Golem"] = true, + ["Fireguard"] = true, + ["Blazing Fireguard"] = true, + ["Fireguard Destroyer"] = true, + ["Twilight's Hammer Torturer"] = true, + ["Twilight Emissary"] = true, + ["Twilight Bodyguard"] = true, + ["Twilight's Hammer Ambassador"] = true, + ["Arena Spectator"] = true, + ["Quarry Slave"] = true, + ["Weapon Technician"] = true, + ["Bloodhound"] = true, + ["Bloodhound Mastiff"] = true, + ["Panzor the Invincible"] = true, + ["The Behemoth"] = true, + ["Dredge Worm"] = true, + ["Deep Stinger"] = true, + ["Dark Screecher"] = true, + ["Burrowing Thundersnout"] = true, + ["Princess Moira Bronzebeard"] = true, + ["Borer Beetle"] = true, + ["Cave Creeper"] = true, + ["Angerclaw Bear"] = true, + ["Angerclaw Grizzly"] = true, + ["Angerclaw Mauler"] = true, + ["Felpaw Wolf"] = true, + ["Felpaw Scavenger"] = true, + ["Felpaw Ravager"] = true, + ["Blackrock Drake"] = true, + ["Hematos"] = true, + ["Krom'Grul"] = true, + ["Thauris Balgarr"] = true, + ["Gruklash"] = true, + ["Firegut Captain"] = true, + ["Malfunctioning Reaver"] = true, + ["Ironhand Guardian"] = true, + ["Golem Lord Argelmach"] = true, + ["Voidwalker Minion"] = true, + ["Bael'Gar"] = true, + ["Lord Incendius"] = true, + ["High Interrogator Gerstahn"] = true, + ["Emperor Dagran Thaurissan"] = true, + ["Commander Gor'shak"] = true, + ["Kharan Mighthammer"] = true, + ["Dughal Stormwing"] = true, + ["Marshal Windsor"] = true, + ["Pyromancer Loregrain"] = true, + ["Lord Roccor"] = true, + ["Overmaster Pyron"] = true, + ["Gorosh the Dervish"] = true, + ["Grizzle"] = true, + ["Eviscerator"] = true, + ["Ok'thor the Breaker"] = true, + ["Anub'shiah"] = true, + ["Hedrum the Creeper"] = true, + ["General Angerforge"] = true, + ["Hate'rel"] = true, + ["Anger'rel"] = true, + ["Vile'rel"] = true, + ["Gloom'rel"] = true, + ["Seeth'rel"] = true, + ["Doom'rel"] = true, + ["Dope'rel"] = true, + ["Warder Stilgiss"] = true, + ["Verek"] = true, + ["Scarshield Grunt"] = true, + ["Scarshield Sentry"] = true, + ["Scarshield Acolyte"] = true, + ["Scarshield Quartermaster"] = true, + ["Fineous Darkvire"] = true, + ["Warlord Goretooth"] = true, + ["Shadowmage Vivian Lagrave"] = true, + ["Hierophant Theodora Mulvadania"] = true, + ["Lexlort"] = true, + ["Galamav the Marksman"] = true, + ["Thal'trak Proudtusk"] = true, + ["Razal'blade"] = true, + ["Thunderheart"] = true, + ["Initiate Amakkar"] = true, + ["Grunt Gargal"] = true, + ["Rage Talon Dragonspawn"] = true, + ["Scarshield Legionnaire"] = true, + ["Scarshield Spellbinder"] = true, + ["Eridan Bluewind"] = true, + ["J.D. Collie"] = true, + ["Larion"] = true, + ["Muigin"] = true, + ["Sha'ni Proudtusk"] = true, + ["Ambassador Flamelash"] = true, + ["Young Diemetradon"] = true, + ["Diemetradon"] = true, + ["Elder Diemetradon"] = true, + ["Fledgling Pterrordax"] = true, + ["Pterrordax"] = true, + ["Frenzied Pterrordax"] = true, + ["Gor'tesh"] = true, + ["Oralius"] = true, + ["Highlord Omokk"] = true, + ["Spirestone Battle Mage"] = true, + ["Spirestone Mystic"] = true, + ["Spirestone Enforcer"] = true, + ["Spirestone Reaver"] = true, + ["Spirestone Ogre Magus"] = true, + ["Spirestone Warlord"] = true, + ["Spirestone Lord Magus"] = true, + ["Spirestone Battle Lord"] = true, + ["Spirestone Butcher"] = true, + ["Shadow Hunter Vosh'gajin"] = true, + ["War Master Voone"] = true, + ["Smolderthorn Mystic"] = true, + ["Smolderthorn Shadow Priest"] = true, + ["Smolderthorn Headhunter"] = true, + ["Scarshield Warlock"] = true, + ["Scarshield Raider"] = true, + ["Firebrand Grunt"] = true, + ["Firebrand Legionnaire"] = true, + ["Firebrand Darkweaver"] = true, + ["Firebrand Invoker"] = true, + ["Firebrand Dreadweaver"] = true, + ["Firebrand Pyromancer"] = true, + ["Smolderthorn Shadow Hunter"] = true, + ["Smolderthorn Witch Doctor"] = true, + ["Smolderthorn Axe Thrower"] = true, + ["Smolderthorn Berserker"] = true, + ["Smolderthorn Seer"] = true, + ["Williden Marshal"] = true, + ["Petra Grossen"] = true, + ["Enraged Wyvern"] = true, + ["Donova Snowden"] = true, + ["Gaeriyan"] = true, + ["Incendosaur"] = true, + ["Houndmaster Grebmar"] = true, + ["Blazerunner"] = true, + ["Living Storm"] = true, + ["Twilight's Hammer Executioner"] = true, + ["Scarshield Worg"] = true, + ["Spawn of Bael'Gar"] = true, + ["Dark Keeper Vorfalk"] = true, + ["Dark Keeper Bethek"] = true, + ["Dark Keeper Uggel"] = true, + ["Dark Keeper Zimrel"] = true, + ["Dark Keeper Ofgut"] = true, + ["Dark Keeper Pelver"] = true, + ["Dark Guard"] = true, + ["Scarlet Warder"] = true, + ["Scarlet Praetorian"] = true, + ["Scarlet Cleric"] = true, + ["Scarlet Curate"] = true, + ["Scarlet Archmage"] = true, + ["Scarlet Enchanter"] = true, + ["Aquementas"] = true, + ["Xavathras"] = true, + ["Cyrus Therepentous"] = true, + ["Gadgetzan Bruiser"] = true, + ["Frenzied Black Drake"] = true, + ["Chieftain Bloodmaw"] = true, + ["Overlord Ror"] = true, + ["Golhine the Hooded"] = true, + ["Miblon Snarltooth"] = true, + ["Watchman Doomgrip"] = true, + ["Cloned Ooze"] = true, + ["Gorishi Egg"] = true, + ["Gorishi Grub"] = true, + ["Plugger Spazzring"] = true, + ["Mistress Nagmara"] = true, + ["Phalanx"] = true, + ["Private Rocknot"] = true, + ["Lord Banehollow"] = true, + ["Shadow Lord Fel'dan"] = true, + ["Rakaiah"] = true, + ["Grark Lorkrub"] = true, + ["Enraged Felbat"] = true, + ["Blackrock Ambusher"] = true, + ["Enraged Gryphon"] = true, + ["Enraged Hippogryph"] = true, + ["Arathandris Silversky"] = true, + ["Maybess Riverbreeze"] = true, + ["Hurley Blackbreath"] = true, + ["High Executioner Nuzrak"] = true, + ["Shadow of Lexlort"] = true, + ["Enohar Thunderbrew"] = true, + ["Blackbreath Crony"] = true, + ["Ribbly Screwspigot"] = true, + ["Yuka Screwspigot"] = true, + ["Grim Patron"] = true, + ["Guzzling Patron"] = true, + ["Cawind Trueaim"] = true, + ["Hammered Patron"] = true, + ["Marshal Maxwell"] = true, + ["Jalinda Sprig"] = true, + ["Helendis Riverhorn"] = true, + ["Ragged John"] = true, + ["Mayara Brightwing"] = true, + ["Overlord Wyrmthalak"] = true, + ["Bloodaxe Veteran"] = true, + ["Bannok Grimaxe"] = true, + ["Arei"] = true, + ["Treant Spirit"] = true, + ["Hahk'Zor"] = true, + ["Gorgon'och"] = true, + ["Blackrock Raider"] = true, + ["Laris Geardawdle"] = true, + ["Karna Remtravel"] = true, + ["Torwa Pathfinder"] = true, + ["Dreka'Sur"] = true, + ["Gargantuan Ooze"] = true, + ["U'cha"] = true, + ["A-Me 01"] = true, + ["Scorching Totem"] = true, + ["Agnar Beastamer"] = true, + ["Ograbisi"] = true, + ["Shill Dinger"] = true, + ["Tobias Seecher"] = true, + ["Crest Killer"] = true, + ["Jaz"] = true, + ["Marshal Reginald Windsor"] = true, + ["Lar'korwi Mate"] = true, + ["Lar'korwi"] = true, + ["Windwall Totem III"] = true, + ["Ember Worg"] = true, + ["Venomtip Scorpid"] = true, + ["Bloodaxe Raider"] = true, + ["Bloodaxe Evoker"] = true, + ["Slavering Ember Worg"] = true, + ["Deathlash Scorpid"] = true, + ["Bloodaxe Worg"] = true, + ["Giant Ember Worg"] = true, + ["Firetail Scorpid"] = true, + ["Spire Scorpid"] = true, + ["Yorba Screwspigot"] = true, + ["Burning Imp"] = true, + ["Bloodaxe Warmonger"] = true, + ["Bloodaxe Summoner"] = true, + ["Ghok Bashguud"] = true, + ["Quartermaster Zigris"] = true, + ["Flamekin Spitter"] = true, + ["Flamekin Sprite"] = true, + ["Flamekin Torcher"] = true, + ["Flamekin Rager"] = true, + ["Pyroguard Emberseer"] = true, + ["Blackhand Dreadweaver"] = true, + ["Blackhand Summoner"] = true, + ["Blackhand Veteran"] = true, + ["Mathredis Firestar"] = true, + ["Auctioneer Grimful"] = true, + ["Auctioneer Grizzlin"] = true, + ["Auctioneer Kresky"] = true, + ["Auctioneer Lympkin"] = true, + ["Salia"] = true, + ["Moora"] = true, + ["Jaedenar Legionnaire"] = true, + ["Locheed"] = true, + ["Prince Xavalis"] = true, + ["Entropic Beast"] = true, + ["Entropic Horror"] = true, + ["Jarquia"] = true, + ["Magmus"] = true, + ["Shadowforge Flame Keeper"] = true, + ["Xon'cha"] = true, + ["Winna Hazzard"] = true, + ["Ringo"] = true, + ["Brackenwall Enforcer"] = true, + ["Lakeshire Guard"] = true, + ["Gorishi Hive Guard"] = true, + ["Gorishi Hive Queen"] = true, + ["Ribbly's Crony"] = true, + ["Gereck"] = true, + ["Grimestack"] = true, + ["High Priestess of Thaurissan"] = true, + ["Deathmaw"] = true, + ["Terrorspark"] = true, + ["Rage Talon Flamescale"] = true, + ["High Justice Grimstone"] = true, + ["Volchan"] = true, + ["Rookery Whelp"] = true, + ["Lord Victor Nefarius"] = true, + ["Spire Scarab"] = true, + ["Lady Sylvanas Windrunner"] = true, + ["Rexxar"] = true, + ["Moonflare Totem"] = true, + ["Onyxia"] = true, + ["General Colbatann"] = true, + ["Mezzir the Howler"] = true, + ["Kashoch the Reaver"] = true, + ["Grizzle Snowpaw"] = true, + ["Rak'shiri"] = true, + ["Lady Hederine"] = true, + ["Azurous"] = true, + ["Misha"] = true, + ["Flame Buffet Totem"] = true, + ["Superior Healing Ward"] = true, + ["Halycon"] = true, + ["Bloodaxe Worg Pup"] = true, + ["Bijou"] = true, + ["Rookery Guardian"] = true, + ["Kibler"] = true, + ["Burning Felhound"] = true, + ["Burning Felguard"] = true, + ["Solakar Flamewreath"] = true, + ["Tinkee Steamboil"] = true, + ["Gizrul the Slavener"] = true, + ["Dulciea Frostmoon"] = true, + ["Vaelan"] = true, + ["Scarshield Infiltrator"] = true, + ["Ranshalla"] = true, + ["Jaron Stoneshaper"] = true, + ["Krakle"] = true, + ["Storm Shadowhoof"] = true, + ["Aurora Skycaller"] = true, + ["Umi Rumplesnicker"] = true, + ["Trull Failbane"] = true, + ["Witch Doctor Mau'ari"] = true, + ["Blackhand Incarcerator"] = true, + ["Blackhand Elite"] = true, + ["Blackhand Assassin"] = true, + ["Blackhand Iron Guard"] = true, + ["Emberstrife"] = true, + ["Gyth"] = true, + ["Vaelastrasz the Red"] = true, + ["Kergul Bloodaxe"] = true, + ["Gruul Darkblade"] = true, + ["General Drakkisath"] = true, + ["Yaelika Farclaw"] = true, + ["Rage Talon Dragon Guard"] = true, + ["Shrye Ragefist"] = true, + ["Rage Talon Captain"] = true, + ["Rage Talon Fire Tongue"] = true, + ["Spire Spider"] = true, + ["Spire Spiderling"] = true, + ["Crystal Fang"] = true, + ["Omusa Thunderhorn"] = true, + ["Ravaged Cadaver"] = true, + ["Mangled Cadaver"] = true, + ["Broken Cadaver"] = true, + ["Spectral Citizen"] = true, + ["Ghostly Citizen"] = true, + ["Vengeful Phantom"] = true, + ["Spiteful Phantom"] = true, + ["Wrath Phantom"] = true, + ["Skeletal Guardian"] = true, + ["Skeletal Berserker"] = true, + ["Skul"] = true, + ["Black Guard Sentry"] = true, + ["Thuzadin Shadowcaster"] = true, + ["Thuzadin Acolyte"] = true, + ["Thuzadin Necromancer"] = true, + ["Plague Ghoul"] = true, + ["Ghoul Ravener"] = true, + ["Fleshflayer Ghoul"] = true, + ["Rockwing Gargoyle"] = true, + ["Rockwing Screecher"] = true, + ["Eye of Naxxramas"] = true, + ["Crypt Crawler"] = true, + ["Crypt Beast"] = true, + ["Patchwork Horror"] = true, + ["Ash'ari Crystal"] = true, + ["Bile Spewer"] = true, + ["Venom Belcher"] = true, + ["Crimson Guardsman"] = true, + ["Crimson Conjuror"] = true, + ["Crimson Initiate"] = true, + ["Crimson Defender"] = true, + ["Crimson Sorcerer"] = true, + ["Crimson Priest"] = true, + ["Crimson Gallant"] = true, + ["Crimson Battle Mage"] = true, + ["Crimson Inquisitor"] = true, + ["Warchief Rend Blackhand"] = true, + ["The Beast"] = true, + ["Gregor Greystone"] = true, + ["Vectus"] = true, + ["Marduk Blackpool"] = true, + ["Magistrate Barthilas"] = true, + ["Baroness Anastari"] = true, + ["Nerub'enkan"] = true, + ["Maleki the Pallid"] = true, + ["Ramstein the Gorger"] = true, + ["Baron Rivendare"] = true, + ["Plagued Rat"] = true, + ["Chromatic Whelp"] = true, + ["Chromatic Dragonspawn"] = true, + ["Prospector Ironboot"] = true, + ["Plagued Insect"] = true, + ["Shrieking Banshee"] = true, + ["Wailing Banshee"] = true, + ["Felnok Steelspring"] = true, + ["Scholomance Adept"] = true, + ["Scholomance Neophyte"] = true, + ["Scholomance Acolyte"] = true, + ["Scholomance Occultist"] = true, + ["Scholomance Student"] = true, + ["Scholomance Necrolyte"] = true, + ["Scholomance Necromancer"] = true, + ["Splintered Skeleton"] = true, + ["Skulking Corpse"] = true, + ["Unstable Corpse"] = true, + ["Reanimated Corpse"] = true, + ["Risen Lackey"] = true, + ["Risen Aberration"] = true, + ["Risen Warrior"] = true, + ["Risen Protector"] = true, + ["Risen Construct"] = true, + ["Risen Guard"] = true, + ["Risen Bonewarder"] = true, + ["Diseased Ghoul"] = true, + ["Ragged Ghoul"] = true, + ["Spectral Tutor"] = true, + ["Spectral Researcher"] = true, + ["Spectral Teacher"] = true, + ["Lady Illucia Barov"] = true, + ["Jandice Barov"] = true, + ["Lord Alexei Barov"] = true, + ["Instructor Malicia"] = true, + ["Kirtonos the Herald"] = true, + ["The Ravenian"] = true, + ["Ras Frostwhisper"] = true, + ["Jed Runewatcher"] = true, + ["The Unforgiven"] = true, + ["Plagued Maggot"] = true, + ["Cliffwatcher Longhorn"] = true, + ["Vaelastrasz"] = true, + ["Vol'jin"] = true, + ["Flametongue Totem IV"] = true, + ["Hearthsinger Forresten"] = true, + ["Fetid Zombie"] = true, + ["Gryfe"] = true, + ["Urok Doomhowl"] = true, + ["Mother Smolderweb"] = true, + ["Urok Enforcer"] = true, + ["Urok Ogre Magus"] = true, + ["Scarlet Medic"] = true, + ["Scarlet Priest"] = true, + ["Rivern Frostwind"] = true, + ["Glacier"] = true, + ["Malyfous Darkhammer"] = true, + ["Xavaric"] = true, + ["Cobalt Whelp"] = true, + ["Cobalt Broodling"] = true, + ["Spell Eater"] = true, + ["Spellmaw"] = true, + ["Manaclaw"] = true, + ["Scryer"] = true, + ["Chromie"] = true, + ["Plagued Hatchling"] = true, + ["Summoned Blackhand Dreadweaver"] = true, + ["Summoned Blackhand Veteran"] = true, + ["Rookery Hatcher"] = true, + ["Remorseful Highborne"] = true, + ["Bile Slime"] = true, + ["Summoned Zombie"] = true, + ["Carrion Scarab"] = true, + ["Temporal Parasite"] = true, + ["Herald of Thrall"] = true, + ["Shy-Rotam"] = true, + ["High Chief Winterfall"] = true, + ["Mulgris Deepriver"] = true, + ["Awbee"] = true, + ["Sian-Rotam"] = true, + ["Blackhand Dragon Handler"] = true, + ["Blackhand Thug"] = true, + ["Finkle Einhorn"] = true, + ["Warosh"] = true, + ["Warosh the Redeemed"] = true, + ["Jabbering Ghoul"] = true, + ["Hitah'ya the Keeper"] = true, + ["Ursius"] = true, + ["Brumeran"] = true, + ["Timmy the Cruel"] = true, + ["Stonespine"] = true, + ["Archivist Galford"] = true, + ["Grand Crusader Dathrohan"] = true, + ["Balnazzar"] = true, + ["Chromatic Elite Guard"] = true, + ["Wandering Skeleton"] = true, + ["Duggan Wildhammer"] = true, + ["Hed'mush the Rotting"] = true, + ["Warlord Thresh'jin"] = true, + ["Zul'Brin Warpbranch"] = true, + ["Ranger Lord Hawkspear"] = true, + ["Gish the Unmoving"] = true, + ["Lord Darkscythe"] = true, + ["Deathspeaker Selendre"] = true, + ["High General Abbendis"] = true, + ["Farmer Dalson"] = true, + ["High Executor Derrington"] = true, + ["Commander Ashlam Valorfist"] = true, + ["Argent Officer Garush"] = true, + ["Argent Officer Pureheart"] = true, + ["Argent Quartermaster Hasana"] = true, + ["Argent Quartermaster Lightspark"] = true, + ["Undead Scarab"] = true, + ["Sindrayl"] = true, + ["Goraluk Anvilcrack"] = true, + ["Lorekeeper Polkelt"] = true, + ["Winterfall Runner"] = true, + ["Aurius"] = true, + ["Lorax"] = true, + ["Shatterspear Troll"] = true, + ["Kelek Skykeeper"] = true, + ["Taronn Redfeather"] = true, + ["Greta Mosshoof"] = true, + ["Tenell Leafrunner"] = true, + ["Ivy Leafrunner"] = true, + ["Rotting Worm"] = true, + ["Haleh"] = true, + ["Joseph Redpath"] = true, + ["Captain Redpath"] = true, + ["Redpath the Corrupted"] = true, + ["Marduk the Black"] = true, + ["Ghost of the Past"] = true, + ["Nessy"] = true, + ["Decrepit Guardian"] = true, + ["Davil Lightfire"] = true, + ["Davil Crokford"] = true, + ["Horgus the Ravager"] = true, + ["Darrowshire Betrayer"] = true, + ["Darrowshire Defender"] = true, + ["Silver Hand Disciple"] = true, + ["Redpath Militia"] = true, + ["Marauding Corpse"] = true, + ["Marauding Skeleton"] = true, + ["Servant of Horgus"] = true, + ["Bloodletter"] = true, + ["Summoned Water Elemental"] = true, + ["Naga Siren"] = true, + ["Jeziba"] = true, + ["Quixxil"] = true, + ["Legacki"] = true, + ["Scarlet Hound"] = true, + ["Frostwolf"] = true, + ["Whitewhisker Vermin"] = true, + ["Winterax Troll"] = true, + ["Winterax Berserker"] = true, + ["Snowblind Harpy"] = true, + ["Irondeep Trogg"] = true, + ["Kodo Spirit"] = true, + ["Alterac Ram"] = true, + ["Wildpaw Gnoll"] = true, + ["Fallen Hero"] = true, + ["Cannon Master Willey"] = true, + ["Captured Arko'narin"] = true, + ["Roxxik"] = true, + ["Arko'narin"] = true, + ["Jessir Moonbow"] = true, + ["Remains of Trey Lightforge"] = true, + ["Alexi Barov"] = true, + ["Weldon Barov"] = true, + ["Della"] = true, + ["Illusory Wraith"] = true, + ["Mindless Undead"] = true, + ["Malor the Zealous"] = true, + ["Smokey LaRue"] = true, + ["Lord Maxwell Tyrosus"] = true, + ["Betina Bigglezink"] = true, + ["Leonid Barthalomew the Revered"] = true, + ["Caretaker Alen"] = true, + ["Duke Nicholas Zverenhoff"] = true, + ["Crimson Monk"] = true, + ["Timothy Worthington"] = true, + ["High Priestess MacDonnell"] = true, + ["Crimson Rifleman"] = true, + ["Shadow Priestess Vandis"] = true, + ["Alchemist Arbington"] = true, + ["Apothecary Dithers"] = true, + ["Fras Siabi"] = true, + ["Carlin Redpath"] = true, + ["Darrowshire Spirit"] = true, + ["Jenova Stoneshield"] = true, + ["Annora"] = true, + ["Hgarth"] = true, + ["Cauldron Lord Bilemaw"] = true, + ["Cauldron Lord Razarch"] = true, + ["Cauldron Lord Malvinious"] = true, + ["Cauldron Lord Soulwrath"] = true, + ["Wynd Nightchaser"] = true, + ["Stratholme Courier"] = true, + ["Drakk Stonehand"] = true, + ["Hahrana Ironhide"] = true, + ["Argent Guard"] = true, + ["Mana Tide Totem II"] = true, + ["Mana Tide Totem III"] = true, + ["Argent Rider"] = true, + ["Azzleby"] = true, + ["Crimson Hammersmith"] = true, + ["Black Guard Swordsmith"] = true, + ["Maethrya"] = true, + ["Yugrek"] = true, + ["Egan"] = true, + ["Spirit of Trey Lightforge"] = true, + ["Undead Postman"] = true, + ["Postmaster Malown"] = true, + ["Myolor Sunderfury"] = true, + ["Ironus Coldsteel"] = true, + ["Krathok Moltenfist"] = true, + ["Okothos Ironrager"] = true, + ["Borgosh Corebender"] = true, + ["Bloodvenom Post Brave"] = true, + ["Shi'alune"] = true, + ["Nixxrak"] = true, + ["Blixxrak"] = true, + ["Wixxrak"] = true, + ["Xizzer Fizzbolt"] = true, + ["Lunnix Sprocketslip"] = true, + ["Himmik"] = true, + ["Evie Whirlbrew"] = true, + ["Qia"] = true, + ["Everlook Bruiser"] = true, + ["Lilith the Lithe"] = true, + ["Kilram"] = true, + ["Seril Scourgebane"] = true, + ["Argent Defender"] = true, + ["Shatterspear Drummer"] = true, + ["Mindless Skeleton"] = true, + ["Crimson Cannon"] = true, + ["Summoned Skeleton"] = true, + ["Eva Sarkhoff"] = true, + ["Lucien Sarkhoff"] = true, + ["Manifestation of Water"] = true, + ["Scholomance Handler"] = true, + ["Doctor Theolen Krastinov"] = true, + ["Onyxian Whelp"] = true, + ["Spectral Projection"] = true, + ["Caer Darrow Citizen"] = true, + ["Magnus Frostwake"] = true, + ["Caer Darrow Guardsman"] = true, + ["Caer Darrow Cannoneer"] = true, + ["Caer Darrow Horseman"] = true, + ["Dark Shade"] = true, + ["Magistrate Marduke"] = true, + ["Spectral Betrayer"] = true, + ["Spectral Defender"] = true, + ["Mossflayer Zombie"] = true, + ["Unliving Mossflayer"] = true, + ["Hakkari Shadowcaster"] = true, + ["Hakkari Shadow Hunter"] = true, + ["Hakkari Blood Priest"] = true, + ["Hakkari Oracle"] = true, + ["Zealot Lor'Khan"] = true, + ["Zealot Zath"] = true, + ["Gurubashi Axe Thrower"] = true, + ["Gurubashi Headhunter"] = true, + ["Gurubashi Berserker"] = true, + ["Gurubashi Blood Drinker"] = true, + ["Gurubashi Warrior"] = true, + ["Gurubashi Champion"] = true, + ["Son of Hakkar"] = true, + ["Soulflayer"] = true, + ["Zulian Cub"] = true, + ["Zulian Tiger"] = true, + ["Zulian Panther"] = true, + ["Bloodseeker Bat"] = true, + ["Razzashi Broodwidow"] = true, + ["Razzashi Serpent"] = true, + ["Razzashi Adder"] = true, + ["Razzashi Cobra"] = true, + ["Hooktooth Frenzy"] = true, + ["Jin'do the Hexxer"] = true, + ["Bloodlord Mandokir"] = true, + ["High Priestess Hai'watna"] = true, + ["Sandfury Speaker"] = true, + ["Witherbark Speaker"] = true, + ["Bloodscalp Speaker"] = true, + ["Skullsplitter Speaker"] = true, + ["Vilebranch Speaker"] = true, + ["Priestess Alathea"] = true, + ["High Priest Rohan"] = true, + ["Illusion of Jandice Barov"] = true, + ["Gordok Enforcer"] = true, + ["Gordok Brute"] = true, + ["Gordok Mauler"] = true, + ["Gordok Ogre-Mage"] = true, + ["Gordok Mage-Lord"] = true, + ["Gordok Captain"] = true, + ["Gordok Spirit"] = true, + ["Mushgog"] = true, + ["Gordok Warlock"] = true, + ["Gordok Reaver"] = true, + ["Wildspawn Satyr"] = true, + ["Wildspawn Rogue"] = true, + ["Wildspawn Trickster"] = true, + ["Wildspawn Betrayer"] = true, + ["Wildspawn Felsworn"] = true, + ["Wildspawn Shadowstalker"] = true, + ["Wildspawn Hellcaller"] = true, + ["Petrified Treant"] = true, + ["Ironbark Protector"] = true, + ["Alzzin's Minion"] = true, + ["Warpwood Guardian"] = true, + ["Warpwood Treant"] = true, + ["Warpwood Tangler"] = true, + ["Warpwood Stomper"] = true, + ["Highborne Summoner"] = true, + ["Tsu'zee"] = true, + ["Eldreth Seether"] = true, + ["Eldreth Sorcerer"] = true, + ["Eldreth Apparition"] = true, + ["Eldreth Spirit"] = true, + ["Eldreth Spectre"] = true, + ["Eldreth Phantasm"] = true, + ["Skeletal Highborne"] = true, + ["Rotting Highborne"] = true, + ["Arcane Aberration"] = true, + ["Mana Remnant"] = true, + ["Residual Monstrosity"] = true, + ["Prince Tortheldrin"] = true, + ["Magister Kalendris"] = true, + ["Illyanna Ravenoak"] = true, + ["Tendris Warpwood"] = true, + ["Zevrim Thornhoof"] = true, + ["Old Ironbark"] = true, + ["Alzzin the Wildshaper"] = true, + ["Immol'thar"] = true, + ["The Razza"] = true, + ["Skarr the Unbreakable"] = true, + ["King Gordok"] = true, + ["Ragnaros"] = true, + ["Timbermaw Warder"] = true, + ["Quartermaster Miranda Breechlock"] = true, + ["Jack Sterling"] = true, + ["Necrofiend"] = true, + ["Timbermaw Mystic"] = true, + ["Timbermaw Woodbender"] = true, + ["Grazle"] = true, + ["Gorn One Eye"] = true, + ["Salfa"] = true, + ["Meilosh"] = true, + ["Kernda"] = true, + ["Scholomance Dark Summoner"] = true, + ["Nefarian"] = true, + ["Risen Guardian"] = true, + ["Irondeep Shaman"] = true, + ["Irondeep Skullthumper"] = true, + ["Whitewhisker Digger"] = true, + ["Whitewhisker Geomancer"] = true, + ["Whitewhisker Overseer"] = true, + ["Bardu Sharpeye"] = true, + ["Alexia Ironknife"] = true, + ["Kirsta Deepshadow"] = true, + ["Cavalier Durgen"] = true, + ["Huntsman Radley"] = true, + ["Bloodshot"] = true, + ["Mickey Levine"] = true, + ["Nathaniel Dumah"] = true, + ["Spectral Marauder"] = true, + ["Spectral Corpse"] = true, + ["Rattlegore"] = true, + ["Scourge Summoning Crystal"] = true, + ["Taiga Wisemane"] = true, + ["Jessica Redpath"] = true, + ["Servant of Weldon Barov"] = true, + ["Servant of Alexi Barov"] = true, + ["Morloch"] = true, + ["Molten Giant"] = true, + ["Molten Destroyer"] = true, + ["Flamewaker"] = true, + ["Flamewaker Priest"] = true, + ["Flamewaker Healer"] = true, + ["Flamewaker Elite"] = true, + ["Lava Annihilator"] = true, + ["Firewalker"] = true, + ["Flameguard"] = true, + ["Firelord"] = true, + ["Flame Imp"] = true, + ["Core Hound"] = true, + ["Core Rager"] = true, + ["Ancient Core Hound"] = true, + ["Snowblind Windcaller"] = true, + ["Taskmaster Snivvle"] = true, + ["Snowblind Ambusher"] = true, + ["Winterax Witch Doctor"] = true, + ["Chal Fairwind"] = true, + ["Hive'Ashi Stinger"] = true, + ["Varian Wrynn"] = true, + ["Sarin Starlight"] = true, + ["Mor'vek"] = true, + ["Arin'sor"] = true, + ["Graw Cornerstone"] = true, + ["Kriss Goldenlight"] = true, + ["Rayan Dawnrisen"] = true, + ["Adon"] = true, + ["Joy Ar'nareth"] = true, + ["Coral Moongale"] = true, + ["Mirador"] = true, + ["Celes Earthborne"] = true, + ["Sar Browneye"] = true, + ["Hive'Ashi Worker"] = true, + ["Hive'Ashi Defender"] = true, + ["Hive'Ashi Sandstalker"] = true, + ["Hive'Ashi Swarmer"] = true, + ["Hive'Zora Waywatcher"] = true, + ["Hive'Zora Tunneler"] = true, + ["Hive'Zora Wasp"] = true, + ["Hive'Zora Reaver"] = true, + ["Hive'Zora Hive Sister"] = true, + ["Hive'Regal Ambusher"] = true, + ["Hive'Regal Burrower"] = true, + ["Hive'Regal Spitfire"] = true, + ["Hive'Regal Slavemaker"] = true, + ["Hive'Regal Hive Lord"] = true, + ["Stonelash Scorpid"] = true, + ["Stonelash Pincer"] = true, + ["Stonelash Flayer"] = true, + ["Sand Skitterer"] = true, + ["Rock Stalker"] = true, + ["Dredge Striker"] = true, + ["Dredge Crusher"] = true, + ["Dust Stormer"] = true, + ["Cyclone Warrior"] = true, + ["Desert Rumbler"] = true, + ["Desert Rager"] = true, + ["Feran Strongwind"] = true, + ["Blaise Montgomery"] = true, + ["Gogo"] = true, + ["Meggi Peppinrocker"] = true, + ["Harlo Wigglesworth"] = true, + ["Andi Lynn"] = true, + ["Theradrim Shardling"] = true, + ["Theradrim Guardian"] = true, + ["Deep Borer"] = true, + ["Mylentha Riverbend"] = true, + ["Bessany Plainswind"] = true, + ["Moren Riverbend"] = true, + ["Bunthen Plainswind"] = true, + ["Tajarri"] = true, + ["Silva Fil'naveth"] = true, + ["Rabine Saturna"] = true, + ["Dendrite Starblaze"] = true, + ["Twilight Keeper Exeter"] = true, + ["Twilight Keeper Havunth"] = true, + ["Jarund Stoutstrider"] = true, + ["Grum Redbeard"] = true, + ["Voriya"] = true, + ["Moonglade Warden"] = true, + ["Paige Felixe"] = true, + ["Hakkari Priest"] = true, + ["Hakkari Witch Doctor"] = true, + ["Keeper Remulos"] = true, + ["Theodore Griffs"] = true, + ["Wildpaw Shaman"] = true, + ["Wildpaw Mystic"] = true, + ["Wildpaw Brute"] = true, + ["Wildpaw Alpha"] = true, + ["Doomguard"] = true, + ["Azore Aldamort"] = true, + ["Buliwyf Stonehand"] = true, + ["Ilyenia Moonfire"] = true, + ["Woo Ping"] = true, + ["Sayoc"] = true, + ["Ansekhwa"] = true, + ["Archibald"] = true, + ["Grinning Dog"] = true, + ["Myranda the Hag"] = true, + ["Spectral Attendant"] = true, + ["Masat T'andr"] = true, + ["Nathanos Blightcaller"] = true, + ["Twilight Avenger"] = true, + ["Twilight Geolord"] = true, + ["Twilight Stonecaller"] = true, + ["Twilight Master"] = true, + ["Blighthound"] = true, + ["Mercutio Filthgorger"] = true, + ["Crypt Robber"] = true, + ["Borelgore"] = true, + ["Duskwing"] = true, + ["Crusader Lord Valdelmar"] = true, + ["Shardi"] = true, + ["Brakkar"] = true, + ["Andruk"] = true, + ["Umber"] = true, + ["Drek'Thar"] = true, + ["Captain Galvangar"] = true, + ["Vanndar Stormpike"] = true, + ["Captain Balinda Stonehearth"] = true, + ["Great Bear Spirit"] = true, + ["Great Cat Spirit"] = true, + ["Flamegor"] = true, + ["Magmadar"] = true, + ["Firemaw"] = true, + ["Golemagg the Incinerator"] = true, + ["Stormpike Herald"] = true, + ["Frostwolf Herald"] = true, + ["Broodlord Lashlayer"] = true, + ["Majordomo Executus"] = true, + ["Dargon"] = true, + ["Daeolyn Summerleaf"] = true, + ["Lorelae Wintersong"] = true, + ["Kharedon"] = true, + ["Meliri"] = true, + ["Malvor"] = true, + ["My'lanna"] = true, + ["Narianna"] = true, + ["Koiter"] = true, + ["Loganaar"] = true, + ["Gor'marok the Ravager"] = true, + ["Stormpike Mountaineer"] = true, + ["Alliance Sentinel"] = true, + ["Stormpike Defender"] = true, + ["Frostwolf Legionnaire"] = true, + ["Frostwolf Warrior"] = true, + ["Frostwolf Guardian"] = true, + ["Baron Geddon"] = true, + ["Garr"] = true, + ["Lava Elemental"] = true, + ["Stormpike Quartermaster"] = true, + ["Frostwolf Quartermaster"] = true, + ["Sulfuron Harbinger"] = true, + ["Firesworn"] = true, + ["Lava Reaver"] = true, + ["Lava Surger"] = true, + ["Lucifron"] = true, + ["Flamewaker Protector"] = true, + ["Drakan"] = true, + ["Duros"] = true, + ["Great Shark"] = true, + ["Mammoth Shark"] = true, + ["Lord Tirion Fordring"] = true, + ["Stormpike Guardsman"] = true, + ["Crimson Elite"] = true, + ["Onyxian Warder"] = true, + ["Guardian of Elune"] = true, + ["Ice Totem"] = true, + ["Son of Flame"] = true, + ["Winterax Axe Thrower"] = true, + ["Winterax Shadow Hunter"] = true, + ["Winterax Hunter"] = true, + ["Korrak the Bloodrager"] = true, + ["Shadowglen Sentinel"] = true, + ["Tortured Druid"] = true, + ["Tortured Sentinel"] = true, + ["Glordrum Steelbeard"] = true, + ["Martin Lindsey"] = true, + ["Shade of Ambermoon"] = true, + ["Princess Theradras"] = true, + ["Landslide"] = true, + ["Spitelash Raider"] = true, + ["Spitelash Witch"] = true, + ["Primordial Behemoth"] = true, + ["Thessala Hydra"] = true, + ["Conquered Soul of the Blightcaller"] = true, + ["Noxious Slime"] = true, + ["Cavern Shambler"] = true, + ["Celebras the Cursed"] = true, + ["Lord Vyletongue"] = true, + ["Meshlok the Harvester"] = true, + ["Zaetar's Spirit"] = true, + ["Spirit of Maraudos"] = true, + ["Spirit of Veng"] = true, + ["Infiltrator Hameya"] = true, + ["Zaeldarr the Outcast"] = true, + ["Mechanical Yeti"] = true, + ["Razorlash"] = true, + ["Gehennas"] = true, + ["Infected Mossflayer"] = true, + ["Ziggurat Protector"] = true, + ["Slaughterhouse Protector"] = true, + ["Shazzrah"] = true, + ["Lava Spawn"] = true, + ["Quel'Lithien Protector"] = true, + ["Crimson Courier"] = true, + ["Shadowprey Guardian"] = true, + ["Demetria"] = true, + ["Scarlet Trooper"] = true, + ["Wailing Spectre"] = true, + ["Damned Soul"] = true, + ["Unliving Caretaker"] = true, + ["Unliving Resident"] = true, + ["Ley Sprite"] = true, + ["Mana Sprite"] = true, + ["Augustus the Touched"] = true, + ["Large Vile Slime"] = true, + ["Doomguard Commander"] = true, + ["Lord Kazzak"] = true, + ["Blackwing Legionnaire"] = true, + ["Gordok Hyena"] = true, + ["Blackwing Mage"] = true, + ["Death Talon Dragonspawn"] = true, + ["Flint Shadowmore"] = true, + ["Razorgore the Untamed"] = true, + ["Blackwing Spellbinder"] = true, + ["Blackwing Taskmaster"] = true, + ["Blackwing Warlock"] = true, + ["Death Talon Wyrmguard"] = true, + ["Death Talon Overseer"] = true, + ["Death Talon Flamescale"] = true, + ["Death Talon Seether"] = true, + ["Death Talon Wyrmkin"] = true, + ["Death Talon Captain"] = true, + ["Death Talon Hatcher"] = true, + ["Arcanite Dragonling"] = true, + ["Emeraldon Boughguard"] = true, + ["Emeraldon Tree Warder"] = true, + ["Emeraldon Oracle"] = true, + ["Verdantine Boughguard"] = true, + ["Verdantine Oracle"] = true, + ["Verdantine Tree Warder"] = true, + ["Melris Malagan"] = true, + ["Justine Demalier"] = true, + ["Dreamtracker"] = true, + ["Dreamroarer"] = true, + ["Dreamstalker"] = true, + ["Grethok the Controller"] = true, + ["Jarrodenus"] = true, + ["Mishellena"] = true, + ["Reginald Windsor"] = true, + ["Bibilfaz Featherwhistle"] = true, + ["Vhulgra"] = true, + ["Khaelyn Steelwing"] = true, + ["Georgia"] = true, + ["Onyxia's Elite Guard"] = true, + ["Faustron"] = true, + ["Lady Onyxia"] = true, + ["Captain Dirgehammer"] = true, + ["Lieutenant Rachel Vaccar"] = true, + ["Archmage Gaiman"] = true, + ["Sergeant Major Skyshadow"] = true, + ["Master Sergeant Biggins"] = true, + ["Captain O'Neal"] = true, + ["Lieutenant Karter"] = true, + ["Lieutenant Jackspring"] = true, + ["Sergeant Major Clate"] = true, + ["Guard Quine"] = true, + ["Guard Hammon"] = true, + ["Legionnaire Teena"] = true, + ["Blood Guard Hini'wana"] = true, + ["Advisor Willington"] = true, + ["Chieftain Earthbind"] = true, + ["Lady Palanseer"] = true, + ["Brave Stonehide"] = true, + ["Stone Guard Zarg"] = true, + ["First Sergeant Hola'mahi"] = true, + ["Raider Bork"] = true, + ["Grunt Korf"] = true, + ["Grunt Bek'rah"] = true, + ["Sergeant Ba'sha"] = true, + ["Chimaerok"] = true, + ["Arcane Chimaerok"] = true, + ["Chimaerok Devourer"] = true, + ["Lord Lakmaeran"] = true, + ["Officer Areyn"] = true, + ["Greshka"] = true, + ["Axtroz"] = true, + ["Somnus"] = true, + ["Spirit Of Redemption"] = true, + ["Doctor Gregory Victor"] = true, + ["Imp Minion"] = true, + ["Critically Injured Soldier"] = true, + ["Critically Injured Alliance Soldier"] = true, + ["Doctor Gustaf VanHowzen"] = true, + ["Jase Farlane"] = true, + ["Leonard Porter"] = true, + ["Werg Thickblade"] = true, + ["Lokhtos Darkbargainer"] = true, + ["Zannok Hidepiercer"] = true, + ["Blimo Gadgetspring"] = true, + ["Gigget Zipcoil"] = true, + ["Nergal"] = true, + ["Vaelastrasz the Corrupt"] = true, + ["Warpwood Crusher"] = true, + ["Whip Lasher"] = true, + ["Gordok Mastiff"] = true, + ["Umi Thorson"] = true, + ["Keetar"] = true, + ["Irondeep Guard"] = true, + ["Irondeep Raider"] = true, + ["Bixi Wobblebonk"] = true, + ["Myrokos Silentform"] = true, + ["Aggi Rumblestomp"] = true, + ["Coldmine Invader"] = true, + ["Masha Swiftcut"] = true, + ["Coldmine Guard"] = true, + ["Coldmine Explorer"] = true, + ["Coldmine Surveyor"] = true, + ["Irondeep Surveyor"] = true, + ["Irondeep Explorer"] = true, + ["Alliance Spirit Guide"] = true, + ["Horde Spirit Guide"] = true, + ["Crimson Bodyguard"] = true, + ["Hive'Ashi Drone"] = true, + ["Lieutenant Rugba"] = true, + ["Lieutenant Spencer"] = true, + ["Commander Randolph"] = true, + ["Commander Dardosh"] = true, + ["Lieutenant Stronghoof"] = true, + ["Lieutenant Vol'talar"] = true, + ["Lieutenant Grummus"] = true, + ["Lieutenant Murp"] = true, + ["Lieutenant Lewis"] = true, + ["Syndicate Brigand"] = true, + ["Syndicate Agent"] = true, + ["Syndicate Master Ryson"] = true, + ["Commander Malgor"] = true, + ["Commander Mulfort"] = true, + ["Commander Louis Philips"] = true, + ["Deathstalker Agent"] = true, + ["Carrion Swarmer"] = true, + ["Aerie Gryphon"] = true, + ["Smith Regzar"] = true, + ["Vahgruk"] = true, + ["War Rider"] = true, + ["Wing Commander Guse"] = true, + ["Wing Commander Jeztor"] = true, + ["Wing Commander Mulverick"] = true, + ["Phase Lasher"] = true, + ["Fel Lash"] = true, + ["Gaelden Hammersmith"] = true, + ["Thanthaldis Snowgleam"] = true, + ["Grunnda Wolfheart"] = true, + ["Jekyll Flandring"] = true, + ["Layo Starstrike"] = true, + ["Ryson's Eye in the Sky"] = true, + ["Primalist Thurloga"] = true, + ["Lokholar the Ice Lord"] = true, + ["Murgot Deepforge"] = true, + ["Wildspawn Imp"] = true, + ["Duke Hydraxis"] = true, + ["Discordant Surge"] = true, + ["Hydrospawn"] = true, + ["Noxxion"] = true, + ["Lord Tony Romano"] = true, + ["Frostwolf Shaman"] = true, + ["Death Lash"] = true, + ["Lieutenant Largent"] = true, + ["Lieutenant Stouthandle"] = true, + ["Lieutenant Greywand"] = true, + ["Lieutenant Lonadin"] = true, + ["Lieutenant Mancuso"] = true, + ["Hive'Ashi Ambusher"] = true, + ["Coldmine Peon"] = true, + ["Coldmine Miner"] = true, + ["Commander Mortimer"] = true, + ["Commander Duffy"] = true, + ["Commander Karl Philips"] = true, + ["Hydraxian Honor Guard"] = true, + ["Subterranean Diemetradon"] = true, + ["Seasoned Guardsman"] = true, + ["Seasoned Mountaineer"] = true, + ["Seasoned Defender"] = true, + ["Seasoned Sentinel"] = true, + ["Seasoned Guardian"] = true, + ["Seasoned Legionnaire"] = true, + ["Seasoned Warrior"] = true, + ["Veteran Defender"] = true, + ["Veteran Guardian"] = true, + ["Veteran Guardsman"] = true, + ["Veteran Legionnaire"] = true, + ["Veteran Mountaineer"] = true, + ["Veteran Sentinel"] = true, + ["Veteran Warrior"] = true, + ["Stormpike Mine Layer"] = true, + ["Frostwolf Mine Layer"] = true, + ["Stormpike Bowman"] = true, + ["Frostwolf Bowman"] = true, + ["Master Engineer Zinfizzlex"] = true, + ["Frostwolf Shredder Unit"] = true, + ["Irondeep Miner"] = true, + ["Irondeep Peon"] = true, + ["Stormpike Shredder Unit"] = true, + ["Sagorne Creststrider"] = true, + ["Ivus the Forest Lord"] = true, + ["Champion Guardian"] = true, + ["Champion Defender"] = true, + ["Champion Guardsman"] = true, + ["Champion Legionnaire"] = true, + ["Champion Mountaineer"] = true, + ["Champion Sentinel"] = true, + ["Champion Warrior"] = true, + ["Wing Commander Ichman"] = true, + ["Wing Commander Slidore"] = true, + ["Wing Commander Vipore"] = true, + ["Frostwolf Wolf Rider"] = true, + ["Frostwolf Wolf Rider Commander"] = true, + ["Arch Druid Renferal"] = true, + ["Druid of the Grove"] = true, + ["Field Marshal Teravaine"] = true, + ["Corporal Noreg Stormpike"] = true, + ["Sergeant Yazra Bloodsnarl"] = true, + ["Warmaster Garrick"] = true, + ["Noxxion's Spawn"] = true, + ["Stormpike Commando"] = true, + ["Seasoned Commando"] = true, + ["Veteran Commando"] = true, + ["Champion Commando"] = true, + ["Frostwolf Reaver"] = true, + ["Seasoned Reaver"] = true, + ["Veteran Reaver"] = true, + ["Champion Reaver"] = true, + ["Seasoned Coldmine Guard"] = true, + ["Veteran Coldmine Guard"] = true, + ["Champion Coldmine Guard"] = true, + ["Seasoned Coldmine Surveyor"] = true, + ["Veteran Coldmine Surveyor"] = true, + ["Champion Coldmine Surveyor"] = true, + ["Seasoned Irondeep Explorer"] = true, + ["Veteran Irondeep Explorer"] = true, + ["Champion Irondeep Explorer"] = true, + ["Seasoned Irondeep Raider"] = true, + ["Veteran Irondeep Raider"] = true, + ["Champion Irondeep Raider"] = true, + ["Seasoned Coldmine Explorer"] = true, + ["Veteran Coldmine Explorer"] = true, + ["Champion Coldmine Explorer"] = true, + ["Seasoned Coldmine Invader"] = true, + ["Veteran Coldmine Invader"] = true, + ["Champion Coldmine Invader"] = true, + ["Seasoned Irondeep Guard"] = true, + ["Veteran Irondeep Guard"] = true, + ["Champion Irondeep Guard"] = true, + ["Seasoned Irondeep Surveyor"] = true, + ["Veteran Irondeep Surveyor"] = true, + ["Champion Irondeep Surveyor"] = true, + ["Stormpike Ram Rider"] = true, + ["Stormpike Ram Rider Commander"] = true, + ["Rotgrip"] = true, + ["Frostwolf Explosives Expert"] = true, + ["Stormpike Explosives Expert"] = true, + ["Stolid Snapjaw"] = true, + ["Tinkerer Gizlock"] = true, + ["Frostwolf Stable Master"] = true, + ["Stormpike Stable Master"] = true, + ["Stabled Frostwolf"] = true, + ["Stabled Alterac Ram"] = true, + ["Selendra"] = true, + ["Celebras the Redeemed"] = true, + ["Veng"] = true, + ["Maraudos"] = true, + ["Corporal Teeka Bloodsnarl"] = true, + ["Sergeant Durgen Stormpike"] = true, + ["Mountaineer Boombellow"] = true, + ["Jotek"] = true, + ["Prospector Stonehewer"] = true, + ["Voggah Deathgrip"] = true, + ["Royal Dreadguard"] = true, + ["Warmaster Laggrond"] = true, + ["Lieutenant Haggerdin"] = true, + ["Frostwolf Ambassador Rokhstrom"] = true, + ["Lieutenant Rotimer"] = true, + ["Scalebeard"] = true, + ["Dire Maul Crystal Totem"] = true, + ["Izzy Coppergrab"] = true, + ["Winterax Mystic"] = true, + ["Winterax Warrior"] = true, + ["Winterax Seer"] = true, + ["Alterac Yeti"] = true, + ["Blackwing Technician"] = true, + ["Chromaggus"] = true, + ["Corrupted Red Whelp"] = true, + ["Corrupted Green Whelp"] = true, + ["Corrupted Blue Whelp"] = true, + ["Corrupted Bronze Whelp"] = true, + ["Enraged Felguard"] = true, + ["Massive Geyser"] = true, + ["Bounty Hunter Kolark"] = true, + ["Artilleryman Sheldonore"] = true, + ["Najak Hexxen"] = true, + ["Ravak Grimtotem"] = true, + ["Athramanis"] = true, + ["Dirk Swindle"] = true, + ["Lord Angler"] = true, + ["Ironbark the Redeemed"] = true, + ["Blue Drakonid"] = true, + ["Green Drakonid"] = true, + ["Bronze Drakonid"] = true, + ["Red Drakonid"] = true, + ["Black Drakonid"] = true, + ["Frostwolf Bloodhound"] = true, + ["Stormpike Owl"] = true, + ["Stormpike Battleguard"] = true, + ["Frostwolf Battleguard"] = true, + ["Chromatic Drakonid"] = true, + ["Petrified Guardian"] = true, + ["Kor'kron Elite"] = true, + ["Ferra"] = true, + ["Guard Fengus"] = true, + ["Stomper Kreeg"] = true, + ["Guard Slip'kik"] = true, + ["Cho'Rush the Observer"] = true, + ["Captain Kromcrush"] = true, + ["Guard Mol'dar"] = true, + ["Lethtendris"] = true, + ["Field Repair Bot 74A"] = true, + ["Knot Thimblejack"] = true, + ["Death Howl"] = true, + ["Alshirr Banebreath"] = true, + ["Ragepaw"] = true, + ["Olm the Wise"] = true, + ["Mongress"] = true, + ["The Ongar"] = true, + ["Highlord Demitrian"] = true, + ["Earthcaller Franzahl"] = true, + ["Pimgib"] = true, + ["Hydroling"] = true, + ["Gordok Bushwacker"] = true, + ["Mizzle the Crafty"] = true, + ["Pusillin"] = true, + ["Azj'Tordin"] = true, + ["Shen'dralar Ancient"] = true, + ["Thornling"] = true, + ["Thief Catcher Shadowdelve"] = true, + ["Shen'dralar Spirit"] = true, + ["Thief Catcher Farmountain"] = true, + ["Thief Catcher Thunderbrew"] = true, + ["Lorekeeper Lydros"] = true, + ["Shen'dralar Zealot"] = true, + ["Cadaverous Worm"] = true, + ["Shen'dralar Provisioner"] = true, + ["Winterfall Ambusher"] = true, + ["Sage Korolusk"] = true, + ["Scholar Runethorn"] = true, + ["Scout Stronghand"] = true, + ["Scout Manslayer"] = true, + ["Scout Tharr"] = true, + ["Huntress Skymane"] = true, + ["Huntress Ravenoak"] = true, + ["Huntress Leafrunner"] = true, + ["Lorekeeper Javon"] = true, + ["Lorekeeper Mykos"] = true, + ["Lorekeeper Kildrath"] = true, + ["Doomguard Minion"] = true, + ["Wandering Eye of Kilrogg"] = true, + ["Lothos Riftwaker"] = true, + ["Rogue Black Drake"] = true, + ["Netherwalker"] = true, + ["Overlord Runthak"] = true, + ["Major Mattingly"] = true, + ["Griniblix the Spectator"] = true, + ["Eye of Immol'thar"] = true, + ["Mana Burst"] = true, + ["Eldreth Darter"] = true, + ["Arcane Torrent"] = true, + ["Arcane Feedback"] = true, + ["Master Elemental Shaper Krixix"] = true, + ["Seeker Cromwell"] = true, + ["Seeker Nahr"] = true, + ["Seeker Thompson"] = true, + ["Officer Jaxon"] = true, + ["Prince Thunderaan"] = true, + ["Mor'zul Bloodbringer"] = true, + ["Gorzeeki Wildeyes"] = true, + ["Officer Pomeroy"] = true, + ["Officer Brady"] = true, + ["Hunter Sagewind"] = true, + ["Hunter Ragetotem"] = true, + ["Hunter Thunderhorn"] = true, + ["Enslaved Doomguard Commander"] = true, + ["The Windreaver"] = true, + ["Whirling Invader"] = true, + ["Blackwing Guardsman"] = true, + ["Princess Tempestria"] = true, + ["Watery Invader"] = true, + ["Blazing Invader"] = true, + ["Baron Charr"] = true, + ["Thundering Invader"] = true, + ["Daio the Decrepit"] = true, + ["Avalanchion"] = true, + ["Kroshius"] = true, + ["Niby the Almighty"] = true, + ["Impsy"] = true, + ["Setis"] = true, + ["Gretheer"] = true, + ["Lapress"] = true, + ["Zora"] = true, + ["Rex Ashil"] = true, + ["Krellack"] = true, + ["Grubthor"] = true, + ["Huricanian"] = true, + ["Twilight Lord Everun"] = true, + ["Xorothian Imp"] = true, + ["Dread Guard"] = true, + ["Injured Peasant"] = true, + ["Plagued Peasant"] = true, + ["Scourge Footsoldier"] = true, + ["Scourge Archer"] = true, + ["Eris Havenfire"] = true, + ["J'eevee"] = true, + ["Xorothian Dreadsteed"] = true, + ["The Cleaner"] = true, + ["Dreadsteed Spirit"] = true, + ["Lord Hel'nurath"] = true, + ["High Priest Venoxis"] = true, + ["Short John Mithril"] = true, + ["High Priest Thekal"] = true, + ["High Priestess Mar'li"] = true, + ["Shadowed Spirit"] = true, + ["Corrupted Spirit"] = true, + ["Malicious Spirit"] = true, + ["Banal Spirit"] = true, + ["High Priestess Arlokk"] = true, + ["Death Knight Darkreaver"] = true, + ["High Priestess Jeklik"] = true, + ["Aspect of Banality"] = true, + ["Aspect of Corruption"] = true, + ["Aspect of Malice"] = true, + ["Aspect of Shadow"] = true, + ["Ur'dan"] = true, + ["Ulathek"] = true, + ["Vartrus the Ancient"] = true, + ["Stoma the Ancient"] = true, + ["Hastat the Ancient"] = true, + ["Simone the Inconspicuous"] = true, + ["Precious"] = true, + ["Franklin the Friendly"] = true, + ["Solenor the Slayer"] = true, + ["Artorius the Amiable"] = true, + ["Razzashi Venombrood"] = true, + ["Simone the Seductress"] = true, + ["Klinfran the Crazed"] = true, + ["Artorius the Doombringer"] = true, + ["Nelson the Nice"] = true, + ["Precious the Devourer"] = true, + ["Terrordale Spirit"] = true, + ["Ancient Equine Spirit"] = true, + ["Derotain Mudsipper"] = true, + ["Darkreaver's Fallen Charger"] = true, + ["Sergeant Thunderhorn"] = true, + ["Ebonroc"] = true, + ["Zapped Shore Strider"] = true, + ["Zapped Land Walker"] = true, + ["Bone Construct"] = true, + ["Overseer Maltorius"] = true, + ["Thorium Brotherhood Lookout"] = true, + ["Master Smith Burninate"] = true, + ["Overseer Oilfist"] = true, + ["Taskmaster Scrange"] = true, + ["Hansel Heavyhands"] = true, + ["Evonice Sootsmoker"] = true, + ["Lookout Captain Lolo Longstriker"] = true, + ["Zapped Wave Strider"] = true, + ["Zapped Deep Strider"] = true, + ["Zapped Cliff Giant"] = true, + ["Stinglasher"] = true, + ["Corrupted Fire Nova Totem V"] = true, + ["Corrupted Stoneskin Totem VI"] = true, + ["Corrupted Healing Stream Totem V"] = true, + ["Corrupted Windfury Totem III"] = true, + ["Corrupted Infernal"] = true, + ["Balzaphon"] = true, + ["Revanchion"] = true, + ["Scorn"] = true, + ["Lord Blackwood"] = true, + ["Silverwing Elite"] = true, + ["Horde Elite"] = true, + ["High Overlord Saurfang"] = true, + ["Field Marshal Afrasiabi"] = true, + ["Revantusk Watcher"] = true, + ["Lard"] = true, + ["PvP CTF Credit Marker"] = true, + ["Sentinel Farsong"] = true, + ["Revantusk Drummer"] = true, + ["Primal Torntusk"] = true, + ["Mystic Yayo'jin"] = true, + ["Zap Farflinger"] = true, + ["Jhordy Lapforge"] = true, + ["Vilebranch Kidnapper"] = true, + ["Gurubashi Bat Rider"] = true, + ["Illiyana Moonblaze"] = true, + ["Kelm Hargunth"] = true, + ["Elder Torntusk"] = true, + ["Creeping Doom"] = true, + ["Dun Baldar North Marshal"] = true, + ["Dun Baldar South Marshal"] = true, + ["Icewing Marshal"] = true, + ["Stonehearth Marshal"] = true, + ["Iceblood Marshal"] = true, + ["Tower Point Marshal"] = true, + ["East Frostwolf Marshal"] = true, + ["West Frostwolf Marshal"] = true, + ["Dun Baldar North Warmaster"] = true, + ["Dun Baldar South Warmaster"] = true, + ["East Frostwolf Warmaster"] = true, + ["Iceblood Warmaster"] = true, + ["Icewing Warmaster"] = true, + ["Stonehearth Warmaster"] = true, + ["Tower Point Warmaster"] = true, + ["West Frostwolf Warmaster"] = true, + ["Captain Shatterskull"] = true, + ["Razzashi Raptor"] = true, + ["Sayge"] = true, + ["Silas Darkmoon"] = true, + ["Withered Mistress"] = true, + ["Sacrificed Troll"] = true, + ["Burth"] = true, + ["Yebb Neblegear"] = true, + ["Kerri Hicks"] = true, + ["Chronos"] = true, + ["Hakkar"] = true, + ["Rinling"] = true, + ["Blood Steward of Kirtonos"] = true, + ["Emissary Roman'khan"] = true, + ["Molthor"] = true, + ["Zandalar Headshrinker"] = true, + ["Razzashi Skitterer"] = true, + ["Atal'ai Mistress"] = true, + ["Voodoo Slave"] = true, + ["Parasitic Serpent"] = true, + ["Ysondre"] = true, + ["Lethon"] = true, + ["Emeriss"] = true, + ["Taerar"] = true, + ["Jin'rokh the Breaker"] = true, + ["Al'tabim the All-Seeing"] = true, + ["Maywiki of Zuldazar"] = true, + ["Falthir the Sightless"] = true, + ["Exzhal"] = true, + ["Zandalar Enforcer"] = true, + ["Captured Hakkari Zealot"] = true, + ["Rin'wosho the Trader"] = true, + ["Kartra Bloodsnarl"] = true, + ["Guse's War Rider"] = true, + ["Jeztor's War Rider"] = true, + ["Mulverick's War Rider"] = true, + ["Slidore's Gryphon"] = true, + ["Ichman's Gryphon"] = true, + ["Vipore's Gryphon"] = true, + ["Frenzied Bloodseeker Bat"] = true, + ["Elfarran"] = true, + ["Lylandris"] = true, + ["Field Marshal Oslight"] = true, + ["Sergeant Maclear"] = true, + ["Shade of Jin'do"] = true, + ["Powerful Healing Ward"] = true, + ["Ohgan"] = true, + ["Deze Snowbane"] = true, + ["Sir Malory Wheeler"] = true, + ["Lady Hoteshem"] = true, + ["Wagner Hammerstrike"] = true, + ["Javnir Nashak"] = true, + ["Deathmaster Dwire"] = true, + ["Deathstalker Mortis"] = true, + ["Spawn of Mar'li"] = true, + ["Zanza the Restless"] = true, + ["Zulian Crocolisk"] = true, + ["Zulian Stalker"] = true, + ["Zulian Guardian"] = true, + ["Vinchaxa"] = true, + ["Zandalarian Emissary"] = true, + ["Riggle Bassbait"] = true, + ["Jang"] = true, + ["Fishbot 5000"] = true, + ["Servant of the Hand"] = true, + ["Gri'lek"] = true, + ["Hazza'rah the Dreamweaver"] = true, + ["Renataki"] = true, + ["Wushoolay"] = true, + ["Booty Bay Elite"] = true, + ["Zulian Prowler"] = true, + ["Stormpike Emissary"] = true, + ["Frostwolf Emissary"] = true, + ["Gurubashi Prisoner"] = true, + ["Mad Servant"] = true, + ["Brain Wash Totem"] = true, + ["Honored Hero"] = true, + ["Gahz'ranka"] = true, + ["Honored Ancestor"] = true, + ["Grinkle"] = true, + ["Chained Spirit"] = true, + ["Barrus"] = true, + ["Rutherford Twing"] = true, + ["Samuel Hawke"] = true, + ["Defiler Elite"] = true, + ["Hammerfall Elite"] = true, + ["Menethil Elite"] = true, + ["Silverpine Elite"] = true, + ["Mad Voidwalker"] = true, + ["Scarlet Inquisitor"] = true, + ["Nightmare Illusion"] = true, + ["Haughty Modiste"] = true, + ["Vile Scarab"] = true, + ["Ralo'shan the Eternal Watcher"] = true, + ["Rutgar Glyphshaper"] = true, + ["Frankal Stonebridge"] = true, + ["Glibb"] = true, + ["Calandrath"] = true, + ["Khur Hornstriker"] = true, + ["Vargus"] = true, + ["Cloud Skydancer"] = true, + ["Runk Windtamer"] = true, + ["Mishta"] = true, + ["Baristolth of the Shifting Sands"] = true, + ["Commander Mar'alith"] = true, + ["Vish Kozus"] = true, + ["Geologist Larksbane"] = true, + ["Cenarion Hold Infantry"] = true, + ["Brood of Nozdormu"] = true, + ["Cenarion Emissary Jademoon"] = true, + ["Cenarion Emissary Blackhoof"] = true, + ["Beetix Ficklespragg"] = true, + ["Noggle Ficklespragg"] = true, + ["Windcaller Proudhorn"] = true, + ["Anachronos"] = true, + ["Hermit Ortell"] = true, + ["Wickerman Guardian"] = true, + ["Deathclasp"] = true, + ["Darkcaller Yanka"] = true, + ["Sergeant Hartman"] = true, + ["Twilight Keeper Mayna"] = true, + ["Twilight Flamereaver"] = true, + ["Vyral the Vile"] = true, + ["Prince Skaldrenox"] = true, + ["High Marshal Whirlaxis"] = true, + ["Baron Kazum"] = true, + ["The Duke of Cynders"] = true, + ["The Duke of Fathoms"] = true, + ["The Duke of Shards"] = true, + ["Crimson Templar"] = true, + ["Azure Templar"] = true, + ["Hoary Templar"] = true, + ["Twilight Overlord"] = true, + ["Mistress Natalia Mar'alith"] = true, + ["The Duke of Zephyrs"] = true, + ["Vekniss Soldier"] = true, + ["Vekniss Warrior"] = true, + ["Vekniss Guardian"] = true, + ["Vekniss Stinger"] = true, + ["Vekniss Wasp"] = true, + ["Vekniss Hive Crawler"] = true, + ["Qiraji Mindslayer"] = true, + ["Qiraji Brainwasher"] = true, + ["Qiraji Lasher"] = true, + ["Qiraji Slayer"] = true, + ["Qiraji Champion"] = true, + ["Demented Druid Spirit"] = true, + ["Spirit Shade"] = true, + ["Obsidian Eradicator"] = true, + ["The Prophet Skeram"] = true, + ["Anubisath Sentinel"] = true, + ["Huum Wildmane"] = true, + ["Emperor Vek'nilash"] = true, + ["Emperor Vek'lor"] = true, + ["Anubisath Defender"] = true, + ["Aurel Goldleaf"] = true, + ["Xil'xix"] = true, + ["Aluntir"] = true, + ["Arakis"] = true, + ["Aendel Windspear"] = true, + ["Viscidus"] = true, + ["Vekniss Drone"] = true, + ["Shade of Taerar"] = true, + ["Lord Skwol"] = true, + ["Bor Wildmane"] = true, + ["Earthen Templar"] = true, + ["Twilight Prophet"] = true, + ["Anubisath Warder"] = true, + ["Obsidian Nullifier"] = true, + ["Mylini Frostmoon"] = true, + ["Qiraji Scarab"] = true, + ["Qiraji Scorpion"] = true, + ["Hive'Zara Drone"] = true, + ["Hive'Zara Collector"] = true, + ["Hive'Zara Soldier"] = true, + ["Hive'Zara Sandstalker"] = true, + ["Qiraji Gladiator"] = true, + ["Hive'Zara Wasp"] = true, + ["Hive'Zara Stinger"] = true, + ["Silicate Feeder"] = true, + ["Giant Eye Tentacle"] = true, + ["Flesh Hunter"] = true, + ["Hive'Zara Tail Lasher"] = true, + ["Obsidian Destroyer"] = true, + ["Ossirian the Unscarred"] = true, + ["Moam"] = true, + ["General Rajaxx"] = true, + ["Qiraji Swarmguard"] = true, + ["Swarmguard Needler"] = true, + ["Kurinnaxx"] = true, + ["Horde Warbringer"] = true, + ["Alliance Brigadier General"] = true, + ["Anubisath Guardian"] = true, + ["Tonk Mine"] = true, + ["Ayamiss the Hunter"] = true, + ["Buru the Gorger"] = true, + ["Merithra of the Dream"] = true, + ["Caelestrasz"] = true, + ["Arygos"] = true, + ["Anachronos the Ancient"] = true, + ["Fandral Staghelm"] = true, + ["Sergeant Stonebrow"] = true, + ["OLDWorld Trigger"] = true, + ["Colonel Zerran"] = true, + ["Major Yeggeth"] = true, + ["Qiraji Warrior"] = true, + ["Major Pakkon"] = true, + ["Captain Drenn"] = true, + ["Captain Xurrem"] = true, + ["Captain Qeez"] = true, + ["Captain Tuubid"] = true, + ["Nafien"] = true, + ["Qiraji Wasp"] = true, + ["Kania"] = true, + ["Qiraji Drone"] = true, + ["Qiraji Tank"] = true, + ["Kaldorei Infantry"] = true, + ["Anubisath Conqueror"] = true, + ["Ahn'Qiraj Trigger"] = true, + ["Sand Vortex"] = true, + ["Corporal Carnes"] = true, + ["Dame Twinbraid"] = true, + ["Private Draxlegauge"] = true, + ["Master Nightsong"] = true, + ["Captain Blackanvil"] = true, + ["Ironforge Brigade Rifleman"] = true, + ["Ironforge Brigade Footman"] = true, + ["Janela Stouthammer"] = true, + ["Arcanist Nozzlespring"] = true, + ["Sergeant Major Germaine"] = true, + ["Bonnie Stoneflayer"] = true, + ["Private Porter"] = true, + ["Hive'Zora Abomination"] = true, + ["Marta Finespindle"] = true, + ["Sentinel Silversky"] = true, + ["Nurse Stonefield"] = true, + ["Keeper Moonshade"] = true, + ["Slicky Gastronome"] = true, + ["Sarah Sadwhistle"] = true, + ["Huntress Swiftriver"] = true, + ["Commander Stronghammer"] = true, + ["Miner Cromwell"] = true, + ["Grunt Maug"] = true, + ["Shrieker Scarab"] = true, + ["Spitting Scarab"] = true, + ["Grace of Air Totem III"] = true, + ["Strength of Earth Totem V"] = true, + ["Minion of Omen"] = true, + ["Omen"] = true, + ["Senior Sergeant T'kelah"] = true, + ["Lieutenant General Andorov"] = true, + ["Kaldorei Elite"] = true, + ["Herbalist Proudfeather"] = true, + ["Spirit of Azuregos"] = true, + ["Eranikus, Tyrant of the Dream"] = true, + ["Nighthaven Defender"] = true, + ["Windcaller Yessendra"] = true, + ["Warden Haro"] = true, + ["Keyl Swiftclaw"] = true, + ["Andorgos"] = true, + ["Kandrostrasz"] = true, + ["Vethsera"] = true, + ["Canal Frenzy"] = true, + ["Batrider Pele'keiki"] = true, + ["Princess Huhuran"] = true, + ["Fankriss the Unyielding"] = true, + ["Lord Kri"] = true, + ["Buru Egg"] = true, + ["Skinner Jamani"] = true, + ["Battleguard Sartura"] = true, + ["Ouro"] = true, + ["Hive'Zara Hatchling"] = true, + ["Meridith the Mermaiden"] = true, + ["Mana Fiend"] = true, + ["Healer Longrunner"] = true, + ["Bloodguard Rawtar"] = true, + ["Fisherman Lin'do"] = true, + ["Chief Sharpclaw"] = true, + ["Anubisath Warrior"] = true, + ["Anubisath Swarmguard"] = true, + ["General Zog"] = true, + ["Windcaller Kaldon"] = true, + ["Twilight Marauder Morna"] = true, + ["Twilight Marauder"] = true, + ["Princess Yauj"] = true, + ["Vem"] = true, + ["Cenarion Outrider"] = true, + ["Hive'Zara Swarmer"] = true, + ["Elder Morndeep"] = true, + ["Doctor Weavil"] = true, + ["Doctor Weavil's Flying Machine"] = true, + ["Number Two"] = true, + ["Hive'Zara Larva"] = true, + ["Elder Splitrock"] = true, + ["Elder Rumblerock"] = true, + ["Elder Silvervein"] = true, + ["Elder Highpeak"] = true, + ["Elder Stonefort"] = true, + ["Elder Obsidian"] = true, + ["Elder Hammershout"] = true, + ["Elder Bellowrage"] = true, + ["Elder Darkcore"] = true, + ["Elder Stormbrow"] = true, + ["Elder Snowcrown"] = true, + ["Elder Ironband"] = true, + ["Elder Graveborn"] = true, + ["Elder Goldwell"] = true, + ["Elder Primestone"] = true, + ["Maws"] = true, + ["Elder Runetotem"] = true, + ["Elder Ragetotem"] = true, + ["Elder Stonespire"] = true, + ["Elder Bloodhoof"] = true, + ["Elder Winterhoof"] = true, + ["Elder Skychaser"] = true, + ["Elder Wildmane"] = true, + ["Elder Darkhorn"] = true, + ["Elder Proudhorn"] = true, + ["Elder Grimtotem"] = true, + ["Elder Windtotem"] = true, + ["Elder Thunderhorn"] = true, + ["Elder Skyseer"] = true, + ["Elder Dawnstrider"] = true, + ["Elder Dreamseer"] = true, + ["Elder Mistwalker"] = true, + ["Elder High Mountain"] = true, + ["Eye of C'Thun"] = true, + ["Ossirian Crystal Trigger"] = true, + ["Minion of Weavil"] = true, + ["Elder Windrun"] = true, + ["Elder Starsong"] = true, + ["Elder Moonstrike"] = true, + ["Elder Moonstrike"] = true, + ["Elder Starglade"] = true, + ["Elder Moonwarden"] = true, + ["Elder Bladeswift"] = true, + ["Elder Bladesing"] = true, + ["Elder Skygleam"] = true, + ["Elder Starweave"] = true, + ["Elder Meadowrun"] = true, + ["Elder Nightwind"] = true, + ["Elder Morningdew"] = true, + ["Elder Riversong"] = true, + ["Elder Brightspear"] = true, + ["Elder Farwhisper"] = true, + ["Cenarion Scout Landion"] = true, + ["Cenarion Scout Azenel"] = true, + ["Cenarion Scout Jalia"] = true, + ["Krug Skullsplit"] = true, + ["Merok Longstride"] = true, + ["J.D. Shadesong"] = true, + ["Shadow Priestess Shai"] = true, + ["Orgrimmar Legion Grunt"] = true, + ["Orgrimmar Legion Axe Thrower"] = true, + ["Hive'Regal Hunter-Killer"] = true, + ["Yauj Brood"] = true, + ["Vekniss Borer"] = true, + ["Xandivious"] = true, + ["Twilight Corrupter"] = true, + ["Eranikus the Redeemed"] = true, + ["Nightmare Phantasm"] = true, + ["Spawn of Fankriss"] = true, + ["Tyrande"] = true, + ["Priestess of the Moon"] = true, + ["Auctioneer Jaxon"] = true, + ["Glob of Viscidus"] = true, + ["Auctioneer Stockton"] = true, + ["Auctioneer Yarly"] = true, + ["Auctioneer Graves"] = true, + ["Auctioneer Silva'las"] = true, + ["Auctioneer Cazarez"] = true, + ["Auctioneer O'reely"] = true, + ["Auctioneer Cain"] = true, + ["Auctioneer Naxxremis"] = true, + ["Auctioneer Tricket"] = true, + ["Auctioneer Rhyker"] = true, + ["Jonathan the Revelator"] = true, + ["Vek Twins Trigger"] = true, + ["Warlord Gorchuk"] = true, + ["Field Marshal Snowfall"] = true, + ["Senior Sergeant Taiga"] = true, + ["Senior Sergeant Grimsford"] = true, + ["Senior Sergeant Kai'jin"] = true, + ["Master Sergeant Fizzlebolt"] = true, + ["Master Sergeant Maclure"] = true, + ["Master Sergeant Moonshadow"] = true, + ["Ouro Scarab"] = true, + ["Timbermaw Ancestor"] = true, + ["Squire Leoren Mal'derath"] = true, + ["Drunken Bruiser"] = true, + ["Claw Tentacle"] = true, + ["Eye Tentacle"] = true, + ["C'Thun"] = true, + ["Giant Claw Tentacle"] = true, + ["Darnassus Commendation Officer"] = true, + ["Gnomeregan Commendation Officer"] = true, + ["Ironforge Commendation Officer"] = true, + ["Stormwind Commendation Officer"] = true, + ["Orgrimmar Commendation Officer"] = true, + ["Darkspear Commendation Officer"] = true, + ["Undercity Commendation Officer"] = true, + ["Thunder Bluff Commendation Officer"] = true, + ["Colossus of Zora"] = true, + ["Colossus of Regal"] = true, + ["Colossus of Ashi"] = true, + ["Colossal Anubisath Warbringer"] = true, + ["Imperial Qiraji Destroyer"] = true, + ["Qiraji Brigadier General"] = true, + ["Greater Anubisath Warbringer"] = true, + ["Greater Silithid Flayer"] = true, + ["Qiraji Lieutenant General"] = true, + ["Supreme Anubisath Warbringer"] = true, + ["Supreme Silithid Flayer"] = true, + ["Officer Vu'Shalay"] = true, + ["Officer Lunalight"] = true, + ["Officer Porterhouse"] = true, + ["Officer Ironbeard"] = true, + ["Officer Redblade"] = true, + ["Officer Maloof"] = true, + ["Officer Thunderstrider"] = true, + ["Officer Gothena"] = true, + ["Christmas Emperor Dagran Thaurissan"] = true, + ["Colossus Researcher Sophia"] = true, + ["Colossus Researcher Nestor"] = true, + ["Colossus Researcher Eazel"] = true, + ["Flesh Tentacle"] = true, + ["Tranquil Air Totem"] = true, + ["Qiraji Major He'al-ie"] = true, + ["Qiraji Brigadier General Pax-lish"] = true, + ["Lieutenant General Nokhor"] = true, + ["Orgrimmar Elite Shieldguard"] = true, + ["Orgrimmar Elite Infantryman"] = true, + ["Orgrimmar Elite Cavalryman"] = true, + ["Tauren Rifleman"] = true, + ["Tauren Primalist"] = true, + ["Stormwind Cavalryman"] = true, + ["Stormwind Infantryman"] = true, + ["Stormwind Archmage"] = true, + ["Kaldorei Marksman"] = true, + ["Ironforge Infantryman"] = true, + ["Ironforge Cavalryman"] = true, + ["Darkspear Shaman"] = true, + ["Valadar Starsong"] = true, + ["High Commander Lynore Windstryke"] = true, + ["Highlord Leoric Von Zeldig"] = true, + ["Malagav the Tactician"] = true, + ["Duke August Foehammer"] = true, + ["Elder Bronzebeard"] = true, + ["Pat's Firework Guy - RED"] = true, + ["Pat's Firework Guy - YELLOW"] = true, + ["Lunar Festival Herald"] = true, + ["Lunar Festival Emissary"] = true, + ["Lunar Firework Credit Marker"] = true, + ["Lunar Cluster Credit Marker"] = true, + ["Lunar Festival Harbinger"] = true, + ["Lunar Festival Vendor"] = true, + ["Giant Spotlight"] = true, + ["Sergeant Carnes"] = true, + ["Fariel Starsong"] = true, + ["Pat's Firework Cluster Guy (ELUNE)"] = true, + ["Thaddius"] = true, + ["Stalagg"] = true, + ["Feugen"] = true, + ["Grobbulus"] = true, + ["Gluth"] = true, + ["Poison Cloud"] = true, + ["Hive'Zara Hornet"] = true, + ["Heigan the Unclean"] = true, + ["Maexxna"] = true, + ["Grand Widow Faerlina"] = true, + ["Noth the Plaguebringer"] = true, + ["Anub'Rekhan"] = true, + ["Ouro Spawner"] = true, + ["Lunar Festival Sentinel"] = true, + ["Vekniss Hatchling"] = true, + ["The Master's Eye"] = true, + ["Buru Egg Trigger"] = true, + ["Dread Creeper"] = true, + ["Carrion Spinner"] = true, + ["Venom Stalker"] = true, + ["Poisonous Skitterer"] = true, + ["Crypt Reaver"] = true, + ["Tomb Horror"] = true, + ["Naxxramas Cultist"] = true, + ["Naxxramas Acolyte"] = true, + ["Sartura's Royal Guard"] = true, + ["Sapphiron"] = true, + ["Kel'Thuzad"] = true, + ["InCombat Trigger"] = true, + ["Loatheb"] = true, + ["Mokvar"] = true, + ["Deliana"] = true, + ["Mux Manascrambler"] = true, + ["Vi'el"] = true, + ["Anthion Harmon"] = true, + ["Patchwork Golem"] = true, + ["Bile Retcher"] = true, + ["Mad Scientist"] = true, + ["Living Monstrosity"] = true, + ["Surgical Assistant"] = true, + ["Embalming Slime"] = true, + ["Stitched Spewer"] = true, + ["Living Poison"] = true, + ["Patchwerk"] = true, + ["Sludge Belcher"] = true, + ["Ysida Harmon"] = true, + ["Falrin Treeshaper"] = true, + ["Bodley"] = true, + ["Plague Beast"] = true, + ["Frenzied Bat"] = true, + ["Plagued Bat"] = true, + ["Lord Valthalak"] = true, + ["Magma Lord Bokk"] = true, + ["Lefty"] = true, + ["Rotfang"] = true, + ["Snokh Blackspine"] = true, + ["Malgen Longspear"] = true, + ["Korv"] = true, + ["Rezznik"] = true, + ["Va'jashni"] = true, + ["Diseased Maggot"] = true, + ["Rotting Maggot"] = true, + ["Volida"] = true, + ["Theldren"] = true, + ["Gothik the Harvester"] = true, + ["Instructor Razuvious"] = true, + ["Highlord Mograine"] = true, + ["Sir Zeliek"] = true, + ["Thane Korth'azz"] = true, + ["Lady Blaumeux"] = true, + ["Spectral Assassin"] = true, + ["Deathcharger Steed"] = true, + ["Tidelord Rrurgaz"] = true, + ["Spirit of Lord Valthalak"] = true, + ["Mor Grayhoof"] = true, + ["Naxxramas Trigger"] = true, + ["Rousch"] = true, + ["Dirk Thunderwood"] = true, + ["Spectral Stalker"] = true, + ["Gnashjaw"] = true, + ["Steamwheedle Bruiser"] = true, + ["Isalien"] = true, + ["Empyrean"] = true, + ["Jarien"] = true, + ["Sothos"] = true, + ["Spirit of Jarien"] = true, + ["Spirit of Sothos"] = true, + ["Korfax, Champion of the Light"] = true, + ["Father Inigo Montoy"] = true, + ["Scarlet Commander Marjhan"] = true, + ["Commander Eligor Dawnbringer"] = true, + ["Archmage Angela Dosantos"] = true, + ["Plagued Swine"] = true, + ["Kormok"] = true, + ["Bone Minion"] = true, + ["Bone Mage"] = true, + ["Unrelenting Trainee"] = true, + ["Unrelenting Deathknight"] = true, + ["Unrelenting Rider"] = true, + ["Spectral Trainee"] = true, + ["Shadow Fissure"] = true, + ["Rohan the Assassin"] = true, + ["Huntsman Leopold"] = true, + ["Mataus the Wrathcaster"] = true, + ["Rimblat Earthshatter"] = true, + ["Rayne"] = true, + ["Naxxramas Military Sub-Boss Trigger"] = true, + ["Cenarion Hold Reservist"] = true, + ["Ghoul Berserker"] = true, + ["Bile Sludge"] = true, + ["Deathknight Captain"] = true, + ["Deathknight"] = true, + ["Spectral Deathknight"] = true, + ["Spectral Horse"] = true, + ["Spectral Rider"] = true, + ["Risen Deathknight"] = true, + ["Dark Touched Warrior"] = true, + ["Doom Touched Warrior"] = true, + ["Death Touched Warrior"] = true, + ["Deathknight Cavalier"] = true, + ["Shade of Naxxramas"] = true, + ["Necro Knight"] = true, + ["Bony Construct"] = true, + ["Stoneskin Gargoyle"] = true, + ["Nerubian Overseer"] = true, + ["Skeletal Smith"] = true, + ["Unholy Axe"] = true, + ["Dispatch Commander Metz"] = true, + ["Unholy Staff"] = true, + ["Unholy Swords"] = true, + ["Tesla Coil"] = true, + ["Guard Didier"] = true, + ["Bragok"] = true, + ["Argent Dawn Infantry"] = true, + ["Injured Argent Dawn Infantry"] = true, + ["Caravan Mule"] = true, + ["Eye Stalk"] = true, + ["Plague Slime"] = true, + ["Infectious Ghoul"] = true, + ["Field Marshal Chambers"] = true, + ["Jessica Chambers"] = true, + ["Packmaster Stonebruiser"] = true, + ["Argent Medic"] = true, + ["Spore"] = true, + ["Fallout Slime"] = true, + ["Mutated Grub"] = true, + ["Skeletal Shocktrooper"] = true, + ["Argent Messenger"] = true, + ["Zombie Chow"] = true, + ["Commander Thomas Helleran"] = true, + ["Master Craftsman Omarion"] = true, + ["Necropolis Acolyte"] = true, + ["Sewage Slime"] = true, + ["Craftsman Wilhelm"] = true, + ["Argent Sentry"] = true, + ["Spirit of the Damned"] = true, + ["Bone Witch"] = true, + ["Archmage Tarsis Kir-Moldir"] = true, + ["Flameshocker"] = true, + ["Lightning Totem"] = true, + ["Atiesh"] = true, + ["Deathchill Servant"] = true, + ["Captain Armando Ossex"] = true, + ["Toxic Tunnel"] = true, + ["Necropolis"] = true, + ["Bronn Fitzwrench"] = true, + ["Ghost of Naxxramas"] = true, + ["Soldier of the Frozen Wastes"] = true, + ["Unstoppable Abomination"] = true, + ["Soul Weaver"] = true, + ["Cracked Necrotic Crystal"] = true, + ["Guardian of Icecrown"] = true, + ["Plagued Gargoyle"] = true, + ["Plagued Ghoul"] = true, + ["Plagued Deathhound"] = true, + ["Spirit of Naxxramas"] = true, + ["Deathknight Vindicator"] = true, + ["Necro Knight Guardian"] = true, + ["Necro Stalker"] = true, + ["Web Wrap"] = true, + ["Naxxramas Follower"] = true, + ["Naxxramas Worshipper"] = true, + ["Argent Warhorse"] = true, + ["Faint Necrotic Crystal"] = true, + ["Garon Hutchins"] = true, + ["Crypt Guard"] = true, + ["Corpse Scarab"] = true, + ["Spirit of Mograine"] = true, + ["Spirit of Blaumeux"] = true, + ["Spirit of Zeliek"] = true, + ["Spirit of Korth'azz"] = true, + ["Festival Flamekeeper"] = true, + ["Deathknight Understudy"] = true, + ["Festival Loremaster"] = true, + ["Festival Talespinner"] = true, + ["Death Lord"] = true, + ["The Lich King"] = true, + ["Plagued Guardian"] = true, + ["Plagued Construct"] = true, + ["Plagued Champion"] = true, + ["Plagued Warrior"] = true, + ["Festival Flamekeeper Costume: Human"] = true, + ["Orgrimmar Fireeater"] = true, + ["Maexxna Spiderling"] = true, + ["Chief Expeditionary Requisitioner Enkles"] = true, + ["Emissary Whitebeard"] = true, + ["Apothecary Quinard"] = true, + ["Emissary Gormok"] = true, + ["General Kirika"] = true, + ["Marshal Bluewall"] = true, + ["Scout Bloodfist"] = true, + ["Rifleman Torrig"] = true, + ["William Kielar"] = true, + ["Landro Longshot"] = true, + ["Felguard"] = true, + ["Renn'az"] = true, + ["Lordaeron Commander"] = true, + ["Lordaeron Soldier"] = true, + ["Alliance Silithyst Sentinel"] = true, + ["Horde Silithyst Sentinel"] = true, + ["Squire Rowe"] = true, + ["Lordaeron Veteran"] = true, + ["Lordaeron Fighter"] = true, + ["The Bug Family"] = true, + ["The Twin Emperors"] = true, + ["The Four Horsemen"] = true, + ["Environment"] = true, + ["Unknown"] = true, +} + +NPCDB = {} +function NPCDB:Contains(name) + return npcs[name] +end \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/enUS/enUS.lua b/src/dpslog/WeirdDPSMate/enUS/enUS.lua new file mode 100644 index 0000000..0f01925 --- /dev/null +++ b/src/dpslog/WeirdDPSMate/enUS/enUS.lua @@ -0,0 +1,536 @@ +DPSMate.L["name"] = "DPSMate" +DPSMate.L["popup"] = "Do you want to reset DPSMate?" +DPSMate.L["memory"] = "DPSMate has collected a lot of data. This will cause screen lag during the data saving process upon logout. Do you want to reset DPSMate first?" +DPSMate.L["accept"] = "Accept" +DPSMate.L["decline"] = "Decline" +DPSMate.L["total"] = "Total" +DPSMate.L["current"] = "Current" +DPSMate.L["cancel"] = "Cancel" +DPSMate.L["report"] = "Report" +DPSMate.L["reportfor"] = "Report for " + +-- Abilities +DPSMate.L["vanish"] = "Vanish" +DPSMate.L["feigndeath"] = "Feign Death" +DPSMate.L["divineintervention"] = "Divine Intervention" +DPSMate.L["stealth"] = "Stealth" + +-- Evaluation frame +DPSMate.L["procs"] = "Procs" +DPSMate.L["procstooltip"] = "Select a proc to display it in the LineGraph." +DPSMate.L["absorbsby"] = "Absorbs by " +DPSMate.L["absorbstakenby"] = "Absorbstaken by " +DPSMate.L["aurasof"] = "Auras of " +DPSMate.L["BUDEBU"] = {"Buffs", "Debuffs"} +DPSMate.L["castsof"] = "Casts of " +DPSMate.L["bname"] = "Name" +DPSMate.L["count"] = "Count" +DPSMate.L["uptime"] = "Uptime" +DPSMate.L["chance"] = "Chance" +DPSMate.L["ccbreakerof"] = "CCBreaker of " +DPSMate.L["time"] = "Time" +DPSMate.L["cbt"] = "CBT" +DPSMate.L["ability"] = "Ability" +DPSMate.L["target"] = "Target" +DPSMate.L["diseasecuredby"] = "Disease cured by " +DPSMate.L["diseasecuredof"] = "Disease cured of " +DPSMate.L["poisoncuredby"] = "Poison cured by " +DPSMate.L["poisoncuredof"] = "Poison cured of " +DPSMate.L["dmgdoneby"] = "Damage done by " +DPSMate.L["dmgtakenby"] = "Damage taken by " +DPSMate.L["dmgtakensum"] = "Damage taken summary" +DPSMate.L["dmgdonesum"] = "Damage done summary" +DPSMate.L["deathsof"] = "Deaths of " +DPSMate.L["cause"] = "Cause" +DPSMate.L["type"] = "Type" +DPSMate.L["healin"] = "Heal In" +DPSMate.L["damagein"] = "Damage In" +DPSMate.L["decursesby"] = "Decurses by " +DPSMate.L["decursesreceivedby"] = "Decurses received of " +DPSMate.L["dispelsby"] = "Dispels by " +DPSMate.L["dispelsreceivedby"] = "Dispels received of " +DPSMate.L["block"] = "Block" +DPSMate.L["crush"] = "Crush" +DPSMate.L["hit"] = "Hit" +DPSMate.L["average"] = "Average" +DPSMate.L["min"] = "Min" +DPSMate.L["max"] = "Max" +DPSMate.L["crit"] = "Crit" +DPSMate.L["miss"] = "Miss" +DPSMate.L["parry"] = "Parry" +DPSMate.L["dodge"] = "Dodge" +DPSMate.L["resist"] = "Resist" +DPSMate.L["glance"] = "Glance" +DPSMate.L["effhealdoneby"] = "Effective healing done by " +DPSMate.L["effhealtakenby"] = "Effective healing taken by " +DPSMate.L["failsof"] = "Fails of " +DPSMate.L["victim"] = "Victim" +DPSMate.L["ffby"] = "Friendly fire by " +DPSMate.L["healdoneby"] = "Healing done by " +DPSMate.L["habby"] = "Healing and Absorbs by " +DPSMate.L["healtakenby"] = "Healing taken by " +DPSMate.L["interruptsby"] = "Interrupts by " +DPSMate.L["magicliftby"] = "Magic lifted by " +DPSMate.L["magicliftof"] = "Magic lifted of " +DPSMate.L["overhealby"] = "Overhealing done by " +DPSMate.L["procsof"] = "Procs of " + +-- Menu +DPSMate.L["mdps"] = "Show dps." +DPSMate.L["mdmg"] = "Show damage done." +DPSMate.L["mdmgtaken"] = "Show damage taken." +DPSMate.L["medd"] = "Show the damage done by enemies." +DPSMate.L["medt"] = "Show the damage that enemies took." +DPSMate.L["mhealing"] = "Show efficient healing." +DPSMate.L["mhab"] = "Show efficient healing with absorbs." +DPSMate.L["mhealingtaken"] = "Show healing taken." +DPSMate.L["moverhealing"] = "Show overhealing done." +DPSMate.L["minterrupts"] = "Show interrupts done." +DPSMate.L["mdeaths"] = "Show deaths." +DPSMate.L["mdispels"] = "Show dispels done." +DPSMate.L["totalmode"] = "Set to total mode." +DPSMate.L["currentmode"] = "Set to current mode." +DPSMate.L["reportsegment"] = "Report this segment." +DPSMate.L["resetdesc"] = "Reset DPSMate." +DPSMate.L["newsegment"] = "New segment" +DPSMate.L["newsegmentdesc"] = "Start a new segment." +DPSMate.L["removesegment"] = "Remove segment" +DPSMate.L["removesegmentdesc"] = "Remove an segment." +DPSMate.L["purgeoldsegments"] = "Delete segments > 24h" +DPSMate.L["purgeoldsegmentsdesc"] = "Delete all saved segments older than 24 hours." +DPSMate.L["purgeoldsegmentsdone"] = "Segments older than 24 hours have been deleted." +DPSMate.L["purgenotimestamp"] = "24h purge unavailable: time() is not exposed on this server." +DPSMate.L["lockdesc"] = "Lock the DPSMate frame." +DPSMate.L["hidewindowdesc"] = "Hide the DPSMate frame." +DPSMate.L["showwindowdesc"] = "Show the DPSMate frame." +DPSMate.L["configframe"] = "Open the configuration frame." +DPSMate.L["testmodedesc"] = "Toggle the test mode." +DPSMate.L["filterdesc"] = "Filter options." +DPSMate.L["switchdesc"] = "Switch mode" +DPSMate.L["mcurrent"] = "Current fight" +DPSMate.L["mrealtime"] = "Create realtime graph" +DPSMate.L["mrealtimedesc"] = 'Create a realtime graph. Be aware it takes a lot of ressources.' +DPSMate.L["damagedone"] = "Damage done" +DPSMate.L["realtimedmgdone"] = 'Select damage done for this frame.' +DPSMate.L["realtimedmgtaken"] = 'Select damage taken for this frame.' +DPSMate.L["realtimehealing"] = 'Select raw healing for this frame.' +DPSMate.L["realtimeehealing"] = 'Select effective healing for this frame.' +DPSMate.L["showAll"] = "Show all" +DPSMate.L["showAllDesc"] = 'Click to show all frames' +DPSMate.L["hideAll"] = "Hide all" +DPSMate.L["hideAllDesc"] = 'Click to hide all frames' +DPSMate.L["showwindow"] = "Show window" +DPSMate.L["hidewindow"] = "Hide window" +DPSMate.L["unlock"] = "Unlock windows" +DPSMate.L["config"] = "Configure" +DPSMate.L["reportdesc"] = "Report details" +DPSMate.L["whisper"] = "Whisper" +DPSMate.L["whisperdesc"] = "Whisper someone" +DPSMate.L["classes"] = "Classes" +DPSMate.L["classesdesc"] = "Select classes" +DPSMate.L["warrior"] = "Warrior" +DPSMate.L["rogue"] = "Rogue" +DPSMate.L["warlock"] = "Warlock" +DPSMate.L["mage"] = "Mage" +DPSMate.L["paladin"] = "Paladin" +DPSMate.L["shaman"] = "Shaman" +DPSMate.L["priest"] = "Priest" +DPSMate.L["druid"] = "Druid" +DPSMate.L["hunter"] = "Hunter" +DPSMate.L["warriordesc"] = "Show warrior" +DPSMate.L["roguedesc"] = "Show rogues" +DPSMate.L["warlockdesc"] = "Show warlocks" +DPSMate.L["magedesc"] = "Show mages" +DPSMate.L["paladindesc"] = "Show paladins" +DPSMate.L["shamandesc"] = "Show shaman" +DPSMate.L["priestdesc"] = "Show priest" +DPSMate.L["druiddesc"] = "Show druids" +DPSMate.L["hunterdesc"] = "Show hunter" +DPSMate.L["certainnames"] = "Certain names" +DPSMate.L["certainnamesdesc"] = 'Split them by "," Ex: Shino,' +DPSMate.L["grouponly"] = "Group only" +DPSMate.L["grouponlydesc"] = "Only show your group" + +-- Config menu +DPSMate.L["slider"] = "Lines" +DPSMate.L["slidertooltip"] = "Move this to set the amount of lines that will be reported." +DPSMate.L["editboxtitle"] = "Whisper Target" +DPSMate.L["editboxtooltip"] = "Enter the name you'd like to report to." +DPSMate.L["channel"] = "Channel" +DPSMate.L["channeltooltip"] = "Select the channel you'd like to submit your report." +DPSMate.L["close"] = "Close" +DPSMate.L["minimapleft"] = "LeftClick-Drag to move the icon." +DPSMate.L["minimapright"] = "RightClick to open the menu." +DPSMate.L["window"] = "Window" +DPSMate.L["bars"] = "Bars" +DPSMate.L["titlebar"] = "Title bar" +DPSMate.L["content"] = "Content" +DPSMate.L["modeswitching"] = "Mode switching" +DPSMate.L["dataresets"] = "Data resets" +DPSMate.L["generaloptions"] = "General options" +DPSMate.L["columns"] = "Columns" +DPSMate.L["tooltips"] = "Tooltips" +DPSMate.L["broadcasting"] = "Broadcasting options" +DPSMate.L["about"] = "About" +DPSMate.L["createwindow"] = "Create window" +DPSMate.L["createwindowtooltip"] = "Enter the name of the window." +DPSMate.L["submit"] = "Submit" +DPSMate.L["submitTooltip"] = "Click here to create the window." +DPSMate.L["availwindows"] = "Available windows" +DPSMate.L["availwindowsTooltip"] = "Select a window." +DPSMate.L["lock"] = "Lock windows" +DPSMate.L["testmode"] = "Test mode" +DPSMate.L["barfont"] = "Bar font" +DPSMate.L["barfontTooltip"] = "Select a bar font." +DPSMate.L["barfontsize"] = "Bar font size" +DPSMate.L["barfontsizeTooltip"] = "Move this to change the bar font size." +DPSMate.L["barfontflags"] = "Bar font flags" +DPSMate.L["barfontflagsTooltip"] = "Select a font flag." +DPSMate.L["bartexture"] = "Bar texture" +DPSMate.L["bartextureTooltip"] = "Select a bar texture." +DPSMate.L["barspacing"] = "Bar spacing" +DPSMate.L["barspacingTooltip"] = "Move this to change the spacing between the bars." +DPSMate.L["barheight"] = "Bar height" +DPSMate.L["barheightTooltip"] = "Move this to change the bar height." +DPSMate.L["classicons"] = "Class icons" +DPSMate.L["ranks"] = "Ranks" +DPSMate.L["mode"] = "Mode" +DPSMate.L["modes"] = "Modes" +DPSMate.L["reset"] = "Reset" +DPSMate.L["sync"] = "Synchronizing" +DPSMate.L["bgcolor"] = "Background color" +DPSMate.L["fontcolor"] = "Font color" +DPSMate.L["fontcolorTooltip"] = "Click to choose a font color." +DPSMate.L["bgcolorTooltip"] = "Click to choose a background color." +DPSMate.L["scale"] = "Scale" +DPSMate.L["scaleTooltip"] = "Move this to change the scale of the frame." +DPSMate.L["opacity"] = "Opacity" +DPSMate.L["opacityTooltip"] = "Move this to change the opacity of the frame." +DPSMate.L["bgtex"] = "Background texture" +DPSMate.L["bgtexTooltip"] = "Change the texture of the frame." +DPSMate.L["enterworldinstance"] = "World/Instance" +DPSMate.L["enterworldinstanceTooltip"] = "Reset on entering world or instance" +DPSMate.L["joinparty"] = "Joining a party" +DPSMate.L["joinpartyTooltip"] = "Reset on joining a party" +DPSMate.L["leavingparty"] = "Leaving a party" +DPSMate.L["leavingpartyTooltip"] = "Reset on leaving a party" +DPSMate.L["partymemberchanged"] = "Party amount changed" +DPSMate.L["partymemberchangedTooltip"] = "Reset on party member amount changed" +DPSMate.L["minimap"] = "Show minimap button" +DPSMate.L["showtotal"] = "Show totals" +DPSMate.L["solo"] = "Hide when solo" +DPSMate.L["combat"] = "Hide in combat" +DPSMate.L["bossfights"] = "Only keep boss fights" +DPSMate.L["pvp"] = "Hide in PVP" +DPSMate.L["disable"] = "Disable while hidden" +DPSMate.L["mergepets"] = "Merge pets" +DPSMate.L["numberformat"] = "Number format" +DPSMate.L["numberformatTooltip"] = "Controls how numbers are displayed." +DPSMate.L["segments"] = "Data segments to keep" +DPSMate.L["segmentsTooltip"] = "Move this to increase the amount of fight segments that are saved. This increases data collection a lot and may cause lag!" +DPSMate.L["enable"] = "Enable" +DPSMate.L["damage"] = "Damage" +DPSMate.L["percent"] = "Percent" +DPSMate.L["dps"] = "DPS" +DPSMate.L["edps"] = "EDPS" +DPSMate.L["dtps"] = "DTPS" +DPSMate.L["edtps"] = "EDTPS" +DPSMate.L["healing"] = "Healing" +DPSMate.L["hps"] = "HPS" +DPSMate.L["ehps"] = "EHPS" +DPSMate.L["etps"] = "ETPS" +DPSMate.L["damagetaken"] = "Damage taken" +DPSMate.L["enemydamagedone"] = "Enemy damage done" +DPSMate.L["enemydamagetaken"] = "Enemy damage taken" +DPSMate.L["healing"] = "Healing" +DPSMate.L["absorbs"] = "Absorbs" +DPSMate.L["absorbstaken"] = "Absorbs taken" +DPSMate.L["amount"] = "Amount" +DPSMate.L["dispelsreceived"] = "Dispels received" +DPSMate.L["decurses"] = "Decurses" +DPSMate.L["decursesreceived"] = "Decurses received" +DPSMate.L["curedisease"] = "Diseases cured" +DPSMate.L["curepoison"] = "Poisons cured" +DPSMate.L["liftmagic"] = "Magic lifted" +DPSMate.L["aurasgained"] = "Auras gained" +DPSMate.L["auraslost"] = "Auras lost" +DPSMate.L["aurauptime"] = "Aura uptime" +DPSMate.L["friendlyfire"] = "Friendly fire" +DPSMate.L["procs"] = "Procs" +DPSMate.L["liftmagicreceived"] = "Magic lift received" +DPSMate.L["curepoisonreceived"] = "Poison cure received" +DPSMate.L["curediseasereceived"] = "Disease cure received" +DPSMate.L["effectivehealing"] = "Effective healing" +DPSMate.L["effectivehps"] = "Effective HPS" +DPSMate.L["effectivehealingtaken"] = "Effective healing taken" +DPSMate.L["healingandabsorbs"] = "Healing and Absorbs" +DPSMate.L["healingtaken"] = "Healing taken" +DPSMate.L["overhealing"] = "Overhealing" +DPSMate.L["interrupts"] = "Interrupts" +DPSMate.L["deaths"] = "Deaths" +DPSMate.L["dispels"] = "Dispels" +DPSMate.L["threat"] = "Threat" +DPSMate.L["tps"] = "TPS" +DPSMate.L["fails"] = "Fails" +DPSMate.L["cat"] = "Category" +DPSMate.L["ccbreaker"] = "CCBreaker" +DPSMate.L["subviewrows"] = "Subview rows" +DPSMate.L["subviewrowsTooltip"] = "Move this to change the amount of rows displayed in the tooltip." +DPSMate.L["TooltipPositionDropDown"] = "Tooltip position" +DPSMate.L["TooltipPositionDropDownTooltip"] = "Select the position of the tooltip relative to the frame." +DPSMate.L["whatisdpsmate"] = "What is DPSMate?" +DPSMate.L["whatisdpsmateText"] = "DPSMate is a combat analyzing tool. It provides a lot of functions to review the fight as accurately as possible. By this information gameplay improvements are easy to evaluate." +DPSMate.L["whocreateddpsmate"] = "Who created DPSMate?" +DPSMate.L["whocreateddpsmateText"] = "DPSMate was created by Shino (Albea) who developed the AddOn on Kronos (Twinstar.cz). He is formally known as Geigerkind in the Twinstar community." +DPSMate.L["thanksto"] = "Thanks to following supporters:" +DPSMate.L["thankstoText"] = "Weasel - For beta testing and providing feedback. \nBambustreppe - For translating DPSMate to german. \nDreamstate - For beta testing DPSMate TBC and providing nice suggestions for features. \nMaus - Huge thanks for the full ruRU translation. \nITTranslator - For translating DPSMate to french. \nDarkmiao - For translating DPSMate to mandarin." +DPSMate.L["remove"] = "Remove" +DPSMate.L["removeTooltip"] = "Click here in order to remove the selected window." +DPSMate.L["copy"] = "Copy" +DPSMate.L["copyTooltip"] = "Click here to copy the configuration to the selected window." +DPSMate.L["configto"] = "Copy configuration to:" +DPSMate.L["configtoTooltip"] = "Select the window you want to configure." +DPSMate.L["configfrom"] = "Copy configuration from:" +DPSMate.L["configfromTooltip"] = "Select the windows you want to copy the configuration from." +DPSMate.L["reset"] = "Reset" +DPSMate.L["syncrequest"] = "Sync reset request" +DPSMate.L["syncrequesttooltip"] = "What happens if an sync reset request pops up." +DPSMate.L["dataresetslogout"] = "Logout reset request" +DPSMate.L["dataresetslogouttooltip"] = "Reset on logout" +DPSMate.L["enabledisable"] = "Enable/Disable" +DPSMate.L["bgbarcolor"] = "Background bar color" +DPSMate.L["bgbarcolorTooltip"] = "Click to choose a background bar color." +DPSMate.L["displayoptions"] = "Display options" +DPSMate.L["filter"] = "Filter options" +DPSMate.L["raidleader"] = "Raid leader options" +DPSMate.L["bgOpacityTooltip"] = "Adjust the opacity of the background." +DPSMate.L["bgOpacity"] = "Background opacity" +DPSMate.L["casts"] = "Casts" +DPSMate.L["locktooltip"] = "Check this to lock the frames." +DPSMate.L["testmodetooltip"] = "Check this to activate the testmode." +DPSMate.L["classiconstooltip"] = "Check this to show additions classicons on the statusbars." +DPSMate.L["rankstooltip"] = "Check this to show the rank position in the meter." +DPSMate.L["enabletitlebartooltip"] = "Check this to enable the title bar." +DPSMate.L["buttonshowtooltip"] = "Check this to show this icon on the titlebar." +DPSMate.L["minimaptooltip"] = "Check this to show the minimap icon." +DPSMate.L["showtotaltooltip"] = "Check this to get an extra bar for total stats." +DPSMate.L["solotooltip"] = "Check this to hide the frame when you are not in a group or raid." +DPSMate.L["combattooltip"] = "Check this to hide the frame when you enter combat." +DPSMate.L["bossfightstooltip"] = "Check this to only save boss fights." +DPSMate.L["pvptooltip"] = "Check this to hide the frame when you enter a battleground." +DPSMate.L["disabletooltip"] = "Check this to disable data collection when the frames are hidden." +DPSMate.L["mergepetstooltip"] = "Check this to merge pets with their respective owner." +DPSMate.L["showtooltips"] = "Show tooltips" +DPSMate.L["showtooltipsTooltip"] = "Check this to show tooltips when you hover over something." +DPSMate.L["informativetooltips"] = "Informative tooltips" +DPSMate.L["informativetooltipsTooltip"] = "Check this to render tooltips with more details." +DPSMate.L["shownmodes"] = "Shown modes" +DPSMate.L["hiddenmodes"] = "Hidden modes" +DPSMate.L["moveleftTooltip"] = "Click to show thise mode." +DPSMate.L["moverightTooltip"] = "Click to hide this mode." +DPSMate.L["helloworld"] = "Hello World!" +DPSMate.L["helloworldTooltip"] = "Return a list of player being in the Synced-Channel." +DPSMate.L["enablebroadcasting"] = "Check this to enable the broadcasting options below." +DPSMate.L["useraidwarning"] = "Use raidwarning" +DPSMate.L["useraidwarningTooltip"] = "Check this to use the raid warning channel instead of the raid channel." +DPSMate.L["relevantcds"] = "Relevant cooldowns" +DPSMate.L["relevantcdsTooltip"] = "Check this to broadcast relevant cooldowns like Shield Wall for example." +DPSMate.L["ress"] = "Ressurections" +DPSMate.L["ressTooltip"] = "Check this to broadcast if someone received a ress." +DPSMate.L["killingblows"] = "Killingblows" +DPSMate.L["killingblowsTooltip"] = "Check this to broadcast killing blow information if a player died." +DPSMate.L["failsTooltip"] = "Check this to broadcast if a player failed. (Friendly Fire/Damage taken/Debuff taken)" +DPSMate.L["framesavailable"] = "Following frames are available. If there is none type /config." +DPSMate.L["slashabout"] = "|c3ffddd80About:|r A combat analyzation tool." +DPSMate.L["slashusage"] = "|c3ffddd80Usage:|r /dps {lock|unlock|show|hide|config}" +DPSMate.L["slashlock"] = "|c3ffddd80- lock:|r Lock your windows." +DPSMate.L["slashunlock"] = "|c3ffddd80- unlock:|r Unlock your windows." +DPSMate.L["slashshowAll"] = "|c3ffddd80- showAll:|r Show all windows." +DPSMate.L["slashhideAll"] = "|c3ffddd80- hideAll:|r Hide all windows." +DPSMate.L["slashshow"] = "|c3ffddd80- show {name}:|r Show the window with the name {name}." +DPSMate.L["slashhide"] = "|c3ffddd80- hide {name}:|r Hide the window with the name {name}." +DPSMate.L["slashconfig"] = "|c3ffddd80- config:|r Opens the config menu." +DPSMate.L["slashreset"] = "|c3ffddd80- reset:|r Wipes all saved data (players, abilities, history, metrics)." +DPSMate.L["resetconfirm"] = "Are you sure you want to reset ALL DPSMate data? This cannot be undone. Type /dps resetconfirm to proceed." +DPSMate.L["resetdone"] = "All DPSMate data has been reset." +DPSMate.L["bccdo"] = function(who, what) return who.." gained "..what end +DPSMate.L["bccdt"] = function(who, what) return who.."'s "..what.." faded" end +DPSMate.L["bcress"] = function(who, what) return what.." has been resurrected by "..who end +DPSMate.L["bckb"] = function(who, what, with, value) return who.." has been killed by "..what.."'s "..with.." ("..value.." damage)" end +DPSMate.L["bcfailo"] = function(what, who, value, with) return "Fail: "..what.." friendly fired "..who.." "..value.." damage with "..with end +DPSMate.L["bcfailt"] = function(who, with) return "Fail: "..who.." is afflicted by "..with end +DPSMate.L["bcfailth"] = function(who, value, with, what) return "Fail: "..who.." suffered "..value.." damage from "..with.." by "..what end +DPSMate.L["syncreseterror"] = "DPSMate cant be reset while being in Sync-Mode in raids." +DPSMate.L["resetnotofficererror"] = "You are not the leader of the group or an assist!" +DPSMate.L["findusererror"] = "Could not find this user!" +DPSMate.L["yes"] = "Yes" +DPSMate.L["no"] = "No" +DPSMate.L["ask"] = "Ask" +DPSMate.L["normal"] = "Normal" +DPSMate.L["condensed"] = "Condensed" +DPSMate.L["default"] = "Default" +DPSMate.L["topright"] = "Top Right" +DPSMate.L["topleft"] = "Top Left" +DPSMate.L["left"] = "Left" +DPSMate.L["top"] = "Top" +DPSMate.L["gchannel"] = {[1]="Raid",[2]="Party",[3]="Say",[4]="Officer",[5]="Guild"} +DPSMate.L["nodetailserror"] = "There are no details to be reported." +DPSMate.L["reportof"] = "Report of" +DPSMate.L["opendetails"] = "Open details" +DPSMate.L["reportdetails"] = "Report the details of this user." +DPSMate.L["fdetailsfor"] = "Fight details for " +DPSMate.L["removesegmentof"] = "Remove segment of " +DPSMate.L["lockedallw"] = "Locked all windows." +DPSMate.L["unlockedallw"] = "Unlocked all windows." +DPSMate.L["leftclickopend"] = "LeftClick to open the details." +DPSMate.L["rightclickopenm"] = "RightClick to open the menu." +DPSMate.L["hide"] = "Hide" +DPSMate.L["show"] = "Show" +DPSMate.L["rcchangemode"] = "RightClick to change the mode." +DPSMate.L["segment"] = "Segment" +DPSMate.L["sync"] = "Synchronising" +DPSMate.L["alliance"] = "Alliance" +DPSMate.L["horde"] = "Horde" +DPSMate.L["unknown"] = "Unknown" +DPSMate.L["votestartederror"] = "Vote has already been started!" +DPSMate.L["votefailederror"] = "Reset vote failed!" +DPSMate.L["votesuccess"] = "Reset vote was successful! DPSMate has been reset!" +DPSMate.L["disease"] = "Disease" +DPSMate.L["magic"] = "Magic" +DPSMate.L["curse"] = "Curse" +DPSMate.L["poison"] = "Poison" +DPSMate.L["physical"] = "Physical" +DPSMate.L["debufftaken"] = "Debuff taken" +DPSMate.L["buffs"] = "Buffs" +DPSMate.L["debuffs"] = "Debuffs" + +DPSMate.L["mc"] = "Molten Core" +DPSMate.L["bwl"] = "Blackwing Lair" +DPSMate.L["ony"] = "Onyxia's Lair" +DPSMate.L["zg"] = "Zul'Gurub" +DPSMate.L["aq401"] = "Ruins of Ahn'Qiraj" +DPSMate.L["aq20"] = "Temple of Ahn'Qiraj" +DPSMate.L["aq402"] = "Ahn'Qiraj" +DPSMate.L["naxx"] = "Naxxramas" +DPSMate.L["azs"] = "Azshara" +DPSMate.L["bl"] = "Blasted Lands" +DPSMate.L["dw"] = "Duskwood" +DPSMate.L["hintl"] = "Hinterlands" +DPSMate.L["ash"] = "Ashenvale" +DPSMate.L["fe"] = "Feralas" + +DPSMate.L["switchgraphsdesc"] = "Switch graphs" +DPSMate.L["switchindividualsdesc"] = "Individual/Total" +DPSMate.L["OHPS"] = "OHPS" +DPSMate.L["OHealingTaken"] = "Overhealing taken" +DPSMate.L["eohps"] = "EOHPS" +DPSMate.L["ohealtakenby"] = "Overhealing taken by " +DPSMate.L["friendlyfiretaken"] = "Friendly fire taken" +DPSMate.L["fftby"] = "Friendly fire taken by " +DPSMate.L["poisoncleansingtotem"] = "Poison Cleansing Totem" +DPSMate.L["threatdoneby"] = "Threat done by " +DPSMate.L["periodic"] = "(Periodic)" +DPSMate.L["reportchannel"] = {[1]="Whisper",[2]="Raid",[3]="Party",[4]="Say",[5]="Officer",[6]="Guild"} +DPSMate.L["raid"] = "Raid" +DPSMate.L["activity"] = "Activity: " +DPSMate.L["of"] = "of" +DPSMate.L["comparewith"] = "Compare with" +DPSMate.L["comparewithdesc"] = "Choose a player to compare this player to." +DPSMate.L["targetscale"] = "Target e-frame scale" +DPSMate.L["targetscaleTooltip"] = "Change the scale of the evaluation frames, to fit it better to your tastes." +DPSMate.L["updateinterval"] = "Display refresh rate" +DPSMate.L["updateintervalTooltip"] = "How often (in seconds) the display bars and timer refresh. Lower values are smoother but use more CPU." +DPSMate.L["autowipe"] = "Auto-wipe (logins)" +DPSMate.L["autowipeTooltip"] = "Automatically wipe all saved data every N logins. Set to 0 to disable. Example: 7 wipes once per week for daily players." +DPSMate.L["eddsum"] = "Enemy damage done summary" +DPSMate.L["edtsum"] = "Enemy damage taken summary" +DPSMate.L["ehpssum"] = "Effective healing summary" +DPSMate.L["tehealing"] = "effective healing" +DPSMate.L["hpssum"] = "Healing summary" +DPSMate.L["thealing"] = "healing" +DPSMate.L["ohpssum"] = "Overhealing summary" +DPSMate.L["tohealing"] = " overhealing" +DPSMate.L["tehealingtaken"] = "effective healing taken" +DPSMate.L["ehpstsum"] = "Effective healing taken summary" +DPSMate.L["thealingtaken"] = "healing taken" +DPSMate.L["hpstsum"] = "Healing taken summary" +DPSMate.L["tohealingtaken"] = "overhealing taken" +DPSMate.L["ohpstsum"] = "Overhealing taken summary" +DPSMate.L["habsum"] = "Healing and Absorbs summary" +DPSMate.L["threatdone"] = "threat done" +DPSMate.L["threatsum"] = "Threat done summary" +DPSMate.L["ffsum"] = "Friendly fire summary" +DPSMate.L["fftsum"] = "Friendly fire taken summary" +DPSMate.L["over"] = "Over" +DPSMate.L["lastability"] = "Last three hits" +DPSMate.L["deathssum"] = "Deaths summary" +DPSMate.L["victim"] = "Victim" +DPSMate.L["deathhistory"] = "death history" +DPSMate.L["intersum"] = "Interrupts summary" +DPSMate.L["dispelssum"] = "Dispels summary" +DPSMate.L["dispels"] = "Dispels" +DPSMate.L["decursessum"] = "Decurses summary" +DPSMate.L["liftmagicsum"] = "Lift magic summary" +DPSMate.L["curediseasesum"] = "Cure disease summary" +DPSMate.L["curepoisonsum"] = "Cure poison summary" +DPSMate.L["ccbreakersum"] = "CCBreaker summary" +DPSMate.L["failssum"] = "Fails summary" +DPSMate.L["AutoAttack"] = "AutoAttack" +DPSMate.L["AutoShot"] = "Auto Shot" +DPSMate.L["castssum"] = "Casts summary" +DPSMate.L["procssum"] = "Procs summary" +DPSMate.L["aurassum"] = "Auras summary" +DPSMate.L["absorbssum"] = "Absorbs summary" +DPSMate.L["absorbeddmg"] = "absorbs" +DPSMate.L["absorbstakensum"] = "Absorbs taken summary" +DPSMate.L["activity"] = "Activity" + +DPSMate.L["cbtdisplay"] = "Disable CBT-Display" +DPSMate.L["disablebarbg"] = "Disable background" +DPSMate.L["disablebarbgtooltip"] = "Disable the background of each incomplete bar." +DPSMate.L["totalbaropacity"] = "Totalbar opacity" +DPSMate.L["totalbaropacitytooltip"] = "Slide to change the opacity of the total bar." +DPSMate.L["abortvote"] = "Abort reset. As assist or leader you are able to abort the vote, if you are quick enough." +DPSMate.L["resetaborted"] = "The reset vote has been aborted. There is a 20 seconds cooldown on reset now." + +DPSMate.L["vreset"] = "Reset" +DPSMate.L["vdreset"] = "Don't Reset" +DPSMate.L["togglereportframe"] = "Toggle report frame" +DPSMate.L["toggleframes"] = "Toggle frames" +DPSMate.L["resetdpsmate"] = "Reset DPSMate" +DPSMate.L["columnstooltip"] = "Check this to show this extra information in this mode." +DPSMate.L["commas"] = "Commas" +DPSMate.L["versionisold"] = "Your version of DPSMate is old. Please update! DPSMate will only synchronize with actual versions." +DPSMate.L["rezz"] = "Resurrections" +DPSMate.L["rezzof"] = "Resurrections of " +DPSMate.L["rezzsum"] = "Ressurection summary" +DPSMate.L["activity"] = "Activity" +DPSMate.L["cbtdisplay"] = "Disable CBT-Display" +DPSMate.L["semicondensed"] = "Semi-Condensed" +DPSMate.L["loginhide"] = "Hide on login" +DPSMate.L["borderOpacityTooltip"] = "Adjust the border opacity." +DPSMate.L["borderOpacity"] = "Border opacity" +DPSMate.L["bordertextureTooltip"] = "Select the border texture." +DPSMate.L["bordertexture"] = "Border texture" +DPSMate.L["borderstrataTooltip"] = "Select the border strata. This pushes the border further into the back- or foreground." +DPSMate.L["borderstrata"] = "Border strata" +DPSMate.L["bordercolor"] = "Border color" +DPSMate.L["bordercolorTooltip"] = "Adjust the border color." +DPSMate.L["reportdelaytooltip"] = "Add a delay to prevent chat mutes on some servers." +DPSMate.L["delay"] = "Delay" + +-- Newly added: +DPSMate.L["tttop"] = "Top " +DPSMate.L["ttdamage"] = " Damage" +DPSMate.L["tthealing"] = " Healing" +DPSMate.L["ttpet"] = " Pet" +DPSMate.L["ttpet2"] = "Pet: " +DPSMate.L["ttabilities"] = " Abilities" +DPSMate.L["ttattacked"] = " Attacked" +DPSMate.L["tthealed"] = " Healed" +DPSMate.L["ttinterrupt"] = " Interrupt" +DPSMate.L["ttinterrupted"] = " Interrupted" +DPSMate.L["ttdispelled"] = " Dispelled" +DPSMate.L["ttabsorbed"] = " Absorbed" +DPSMate.L["ttabsorb"] = " Absorb" +DPSMate.L["ttthreat"] = " Threat" \ No newline at end of file diff --git a/src/dpslog/WeirdDPSMate/fonts/Accidental Presidency.ttf b/src/dpslog/WeirdDPSMate/fonts/Accidental Presidency.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8677fbcf5ccf33f58b050fd506d7d9aba16742b5 GIT binary patch literal 41556 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 ZEgh{zo^~mQcHs+y1Jnv*-isrN=MRN7nX>=@ literal 0 HcmV?d00001 diff --git a/src/dpslog/WeirdDPSMate/fonts/AlteHaas.ttf b/src/dpslog/WeirdDPSMate/fonts/AlteHaas.ttf new file mode 100644 index 0000000000000000000000000000000000000000..766c4d58146e2d7c5b0bd57b7c75f3997c0cf67b GIT binary patch literal 143896 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%0Ald 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 literal 0 HcmV?d00001 diff --git a/src/dpslog/WeirdDPSMate/fonts/Expressway.ttf b/src/dpslog/WeirdDPSMate/fonts/Expressway.ttf new file mode 100644 index 0000000000000000000000000000000000000000..39e15794777c78b361c5a9454634e7cab4ed7d60 GIT binary patch literal 156244 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%0A+-@j8hE& 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 PLwLG)j>QLzipTTc*L|?A literal 0 HcmV?d00001 diff --git a/src/dpslog/WeirdDPSMate/fonts/ExpresswayBold.ttf b/src/dpslog/WeirdDPSMate/fonts/ExpresswayBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d295ee20f8129aff1af4784be37459549523a501 GIT binary patch literal 99820 zcmd?S33Qvqxj#Jf%C_uym9<*7WG$BDP4Xhk`xeJ`yv5mrlRzK|kcB`JpaBY{Kp{A3 zFKsD%DW#NBwiXJxGz$f~aiQOB8+y64l%>#83T!Ny7IO=F4!$(YpxJWf4OvJL-W?x+BXRyr_t)P z&1Y}i_4dZnl|tk$6T%YRyyyIYxJQ-5&S*m(MH5hv18}vjTeg*D=^Xo&Trr+8-CP?paJXxa-_Ac75tgd!7-Z;P+^M znjkEUvRk@-wd(Mx#od1qWfqJp#CNJgx#~T+?*5sd&h%RzvOI#e7Gba!|KWR2R1 z1%zQN5<%IE@;`}k*(&@-N)*T!M4|B&;WBOzE^(dkN~^HRJW(pYA&TThn9DPGPvhGU z3YR=zWE%s*EwOn{fq7;AU8Y9AK3=0RK?!en=42e?lO;IL(BC_Q(Ldu&(0OJJY zbE3fbKE~RLepZOEv0QkJO(KlX!tx3Hy%T>Ah_LuE%D_frG3sAO`CsrX!*e-4Z^ZjD zyw~Er660s1-Jl4e&n(MQl&{3RHsEc+oPUKe&jX}i!y3*P6-I0(E&d>^^4~FsEcE@7 z@W{WQFNt>!=6MY7U*LN`5<&5+nPc*`%v|0^+qW=Y4nBVuV;Oj#g1R4z1#*?J$lr*N zd>>;zj;BeKp`R@I2T>{8u>+sQ9NI8OuBcG3e-3S5!dyHeVtfQJzeluS4L-oQ)lw;{ z=)^QT~|dl-G+UxnC5^OGKUgDCYA9_Aw?lYoT!J6tOqfj)=f5eYx{tfWY#`~vuUIbqFjO)?nVYEHr z!90VgYX+_+j(Z6IW-)9e@ib$d<`bMNTXu>L19QY@$34;koOEFAj+wvVNgKP-e~XA4 z?PzzxBOe!wjShSs7xnWW!k^=-H`mSa@mBlJzpeP2Yv=gp8+d43gue+7;sbEiVL&;s%Czj`ZLA--a-6r3_NL%b#J zDEv(ezkCmWXU4`j9=Qx_S}CI9`=VCni)!)A%=;KGCO?Pokd6trOVKCkmh_G9lAaYV zfu=1tibBg*bQ{7-(KTrnbgyuf^bOvizJCk&CHk{G3VuUg16Zkt->V1TB46P52s6I< zU5-hfz&=^e_hHlnE|whh^)bK(yw#YQZSS(M-?iX<z}(gTasB3AE)t!VI?*Y9itqkZIQYmfV1K@VKEEWY zWS7X1eIge;r`qy6(Jp={+~AdAqZM#_T(~Xgh^TxO-v@6orm)W?BFAVG)sP<*Mg*`} z1=(?$h#CbV-`FBzC|6L@DE{{2nb%RYWS$C0HGXn3YFMfOX7uAdA^O2%3dE)2%i=z1 zmBrF7%Vnhu%R1R0n`E2pl_PScTrba%XUR*AGUK0&m$FXvza4M{ya9h86o>{o1A~G4 zgP~CAU%&fq$IJ|R4T#&tSH#z4fh?6S>6an&mOyW6NX&xM;!C3r^7x z!0i6-{FfttfQ|y<74&NWs#$2JW!%Ce%7ho1 zScUKjzoY$h4q!x==oUSq zSM*{37K#C}NDPW0F)S8~5itsVWE?xYL`;gMVj1+D6=J1WC02_y;v_L8){1pvy*OE% zA~uLqv4+dV72-;#W{F{I9;5p-uj#n7B+_D}E<_FFz_TmLHdw$x9%IsX;voJe`*N*6!cWK37hKgAZP| ze}DOYtRwUHLGi>16;hm7(VwXRB+v&SF?3K~whW!&6%LlOA{-0{G0(Mw7(1_ieC5;- zW*S@@C(P@_VMRMeojeRs8v=#LQK$huctJ6=LvrgN8-dT=po9=;h&2L6!v`7}K=~dJ zO9*798aaRmV|d2#r@-#t1nul)*)N|kerZ`}ImhyK%R5=!S-Y~X%(^M-sjL^Xd$TuW zAI|B{xisfx>*?0%+}7Mj^9u3?^ETyOk$3w7Pku#yfBsViB?X%bt}S@1FjTmy@Y2Eq zg}*JzEjqdAwqjAds`%NG-jc^kUa>`O!?sIp_uGDEd%rYP+FE*A>7}LDmfmGg*l)AH z;h1vV;dtG7j`LCHJFafm9@n+5zq$wAcX?c%Y0r~o!)4c$y;%0Xx5c~3dxiJTaz}Z6 z`QGx!@c(NSgB7<{yypw~Uhz*>Hda1a`TM{R0xt)*2JZ}&gbs%OIouh(GW<~Zd*N5A zPOI8m^#nQ2 zz3%?HgLU7lJ6iW*{W0UJZT)Ta_trlW_s1WJe<%K<_|N07$KOh9NNi8+NnDY* zCUHyR^@bZ7?r8XW!{LS}8-CL8a>H*M{@Q3X7B#MG{C(qlO<7GPO%+YmO)X9RO;soJZy}R{^)}OWIw6(MyZhO5w&_2*U*}ks*(e|f03OXDe6&=+bjUBgi z7ImK4d2Z*Wo%=h#*ZI#~p|0Alk*?dj?(TZO`_k_3bpNRPxt@X^M^8mhRnMB94LxV} zoYQknZ$Yo4cSY|Vy)X9F_Fd6;P2Vg1RsEmo|7(AGVa~$K7T&h-uM5)ylLJQ=ITi&L zty*-=qF)XM2CE0x4Q?9TK6uUG4MXdOHVxfA^rzw4;R}bK8h&rKi})Mlm^=lA1uX1dXcya1xCqZaJU8RH z2hSlqPvdzW&zpGiPC-{Chw!DWchC_^4wUfaGf~)sXD^-`@Z5#x5j;=gc@EF(c=9;h zUrhaZ3U z8mX29{w^|tW!GxRg z*((|wSDfA3cg~82h85>vtn!(+#NDv-Eg0WMCf9HTI)Q{PpyrUYgsm;D$!3?+krNI@ zef#XEJ7Sf-+FD;_%s7xk5E%1;DxjVF7jt%!zYM;_W?(24|v&J$Uxw zVS@xdXnPTmDa-6q3LP~zwIyV%%`Y>^k(C1Cw55_xzjRv@lBnWz__K&cR%iIz@r}`u z@X9KC)NiltAMLMoRy9_f6(01hbaj*$mb;4T`X~D9%IiA(XAN1Su{EJUPNBQB+~=@I zdQ<+!DtFG%;=H=>ptn40fvvEt+~tgPHN-kXyyM#Z4aVo+u=D6<%pSq#c724xnL zxJZR%fK?e_RR$_70~MBm3d=x+WuU?`P+^%#g=HocqOe0ljGDrzDU6yzXNRHtrbM=_v_p;Gh4H&Eeiz2?!uVYnzYF7cVf-$P-(`;9WsZ-+ z?!!=?!=ekFfLO4*MCuE0h5s8^+4l>8_i6b>}6KB}1<@wpb|T6}W> zcvG`5-f3)-^Y{nR;>5qRVK-SqIZlTw+1#3HiOTuqw=3IgJ)YY3%0OF<$5Ydmexb6B z6>VmP{C;}rN%8?}ARZ3{67lpcst}LMT2BqW)y{9V2P*NFpPAPWYHB^!V@r&O({=bF zzZ{pJi3fEzSebAzf+Y(@`t)L`=$==LTOtq1gfi;2k zuKEg}w`Opv!ENl5iB&_VFZoFC#zo;++-dVRFYfk)ZHbjpugza)JW-$AR8iq~`vynH ztKuV9ceQ_HQD1CeO+#X;s-h=QHJGYAb~raLytvvIbW~N?Fi9``oEIv-nUCp{Yl;lF zjDk~YF3H8%X4Z+f;WsM~%Z|Wk%K}_LHAMY9KqU`Q$ph-;0rm2LdU-&-JfL14P%qC! zy*v~3P}q&Zax#Otxo|=QsNlY3WZ}Y*wKt4S+_n8j=k0oS`;%{Me`XiPFP&K{{(|uf z#nch9Up+pl7B;$;rzmLpv4DOopdSn9#{&AXfPO5X9}DQm0{XFFMw$y36X9p)(TjOR zV@bb+z_HpVN5&`CkMu8G{MB7Q*?!(nPv8FRuH8S`MpzWdq`Vz`wn(g|IG`-gsymE1 zEf9r32y~f`rCIP~H&AQ0hvDt%?(!CCT~A~bnVd4 z+R^ia=WRbvz8~ESOH{|x3rCUIjc_7d1qnH&b zI}6CE{r_xY!AF!}ykNOs5~3<>$;4BvX=jiaCZI{q(0tuT|@wITQQ3jq^lr zT%QE4xZB*;qOo(%IRB-(p8@YNpMZD{9*};tD};U_@joRedJj5-0XdXDBKxdW8fvc*#&{LXU?Jcir z_Qvu{-G$yr1WmJNz6rm{!E zY=FXve9%3g?*%$H4p&zXZ|v;cxHuMDys@);c(}V~Xvp|>V*S-qQ+wAX66^L(OY3yb$*Ifakg~%mkeV&LdT1=~qto)=FUoH_ zHi7SZ0f-{Nph^tu@5AW@1mQ}k(v)a;Q~(|ofJepbGNW8(2|BRNF0=BuWm=0YR_r_V zf?f;gD;%=MdZnyPtX>!^k9Ssj+nd7Ka#^~dIGC)eShBdOvwEt3WBfAX+htAT&2|0F zk&>cdbwl~p9j7c?6ez2%j{5?>@r@lFdflZne=|xU^BcuQdfpL?uJ$g1xkfP82zOIxdhsR*I0OSB;5QG7jp?QD{UK zE!65{N)@O!=ct7j)Gh6)^84eRvBjIZCoir$skFAXx}&25U;CN2s3OFhL_pXZEtE%6s;d`30)9_&YqYbfMk zihB2GdE{Uh^YP|xDwaoD$Ob1U#A>vdqV6iugc87tvIX2g+7u&51ygW!Cgtk`1N+kV z$y0J4dkpIL;8o|HcbWY558u)I;KV*8Fo!AusY#{=ZAbH~>Rdh~uE#BBu-qdtfwQpftMYXrU>59uq!Vo7n zMx${Ed)gpAeo!<53~`Mfam+uC`NuJTlLs_n6`BVe25%@Sgz3)OrfpqA_d-xTxkiI}7ngI-J02~8Ss0I#qTwP=Y&JXa2K=dHXmaY*=H$r}U3T}Vw|}uAOM}h9P%>m2mQPl8EKfF1EsQiT-`2kR=8kB> zle;&svMcFu?rDp=V*b)nf6Ntc(|ZZek&&z98?7=c@Ps@(W0eJ+An0(fr7h@?@3c?0 z1oNl!%Io^#>Bo%&+ZTS~nlG$ha@*%FOVFE6oQQ)q3DX{NA9Zn5s%4Wy)uE&)wGI%j z1BB}`lv=0YNpw8~<0b1IO_Yky&gr=%Y7cs&_Iem*n=Ty`e}~m?e`(1J)Uep0A*}l~JRW)`VeEx~n#HTrya@yf5bW*Y?B~ zZ|>^ayg1ew_XeYV%WF%6-jbS@R82{F$kso)XgHb*6pez!>jvsu`|Kra2b!061p-~m zn+MjG*n1ljLvhzt)*@F?b*w&&mo+`s7HzF7E~|1zxk(1}p}&LP2-~>08rB)`HH?Q= zTJ}*Aw}NaKkPQQ}8WF>QXE8uSoXr-+SgD3F;I5@u9q_gec*~6df}^hn!p{TvxfRq9 z5dkbF`~oPEXxWz#0R^>)!dKICkOR&iP61Whie!vRtpzL)DxMS>v~3^FpzTSgCX?$Y zx*hJZvc3_ZZKyf8XlUpU#M!2)h0*5a+uJfYdsSX#ceBF*oOJ?c`{Kk{LzF>}xK+Lb z*6kK6j^JQnR+Bgrf9%1tmz7u&^_&8LrvRWLQ!GWfG*d3)QmJ7;yTt-w11emFi962; zVV_qn3s-n!F>giKViur%#JtcwAFoxQpEbLGgb_lv5 z=11;mqqw$!=;mA@RIx1cM$U%16*dQ@-eoMA8<4bmojhbXux2N^B1fklYQdgMwNLhl zvrsxCQXWh{DhJae@*`hdxpU{zFL15_aa4X%{tT_HfF^|rbTL&k)rY|hrxpU3rbyS#$e%1iFO#2w`>mSY#o)h-^QWf=PwPF`2y!8s6CY*^dsjL}| zyDb%!uiO02fGa;XFx9kZ>qw*`;B08?i#uyS5|m`=k-M5j_&n6{)Wjd?JXx)d&8ch?9rT3e|@0wqXUzdpOUN^ zKX)=d(N^hl6qZc(3=HL2?Tg^UtSvdWh%^KKfPXea-ddp@lmRpbaTyQ&p|F*)@rvq_ z_Hc~;!es3Io$p;=`%29XuU$WG95^;{>7_GpK;!%${j{SW2c$x+_%xZc=>w#^^`aX^ z8eZUv7r5dDX;6>#D%zw+LzfPUDlIq!4TRdS+K zgA#kM5l&6{rj~3`T5`}PwHi|=owkfZS108_{YXnixXe*qX%F_SX-)sD48aGOU*)^? z!P=Hmf5d*5aiF4Us5aT>u=?ves~Sg|%b<uXOS>3>p^fx-Qr> zJ^|{&@uZq2AaEv%d+_XK9$u?;Kcresptq!swt~R#i7SFl<_ClLJe&p3eOl!TuCrmzR+O4hp*l zv>iKQ$Bx)BA5+Kl0>D(-^P$ja&{Lr)C&-I1%Q>@>iX@nFhH=$No86>~I{Et8<)^i^ zop$-yclUM0Cp$x-&dGR}aR7KdI(q4bR$$M+1lpG*8YbKP#6`q+;GZLyW4=ggn33f} z9${$fQ4CFd)I*zgJ!OOh2-PHD=_&64-eLLK^t*T7DNE8@jRVtHPv5xL?Ee7z&lB+@ zKy30C_Me6R1$`9sPf+mXqWU=B0Zb8F*oJ=ZyXT&1b}c_Yo&GoUtmnubY1EFml!LXy_;SXJA4S? z>1nbbHSa7$zP*U=IYn5@>moo*%Uw6WSDfKxdM0kr)9kSUCIqwj7oow}Ai)g_P%&Lc3eJ!!FrXI4#5|NLvOy!u61v*TL;#=ppT`jzw!b1b#4Y*9W34+RI3 z#~g1aW`?I_Q+hE#@)MxChNbZU=2;*h_zKm84iTonNpepf8RcR};S5C00{q2oBPyCI zDxqFP=uwBG2ZyWT4&*6)4y-D(DzlW2?lU$dwi*Xs-0*T~JTQIp*v-?QI((S>CAX$; z;)9h=$OD;q)?=P|;v_u>fms2noE2t39J8VZDl}^H@K+wDK#q{lxzP_uX~j9_VqTO) z)H4r*v~>xD15oS9$UCR6JT`qLqMh!>Oum|4i*dO>q~9(7JA80`3(uacub(`7;ldq! z?^rm#YSsAonl=B04~}Q2!iZu$MGzxXI8FmV{uBQ00RRgD%tC+`XK(;5JqqOUutZ4v z+Bx6?Zfg%4*{*4t79sotdkap_qZ7!@o|ZMe!C>#2mTRY{Z-}?I$8Ug~Y+c^kx}vRO zMqsP|xuy|HX9m_kRc>9WFy%|M>A-WFax88>msPrw z3zFFd$?Q^c!UdI-Cp|dmL1XO!(q-FGFgtWY@+E{wI2Bwn*>MS$O(992*bxZ%Ssg=( zG}Gd+<9yoO&WhdBvb<$YPY_3>-Y?w#mmA}4ZSfnW;8vEmPA2OIn*(|2H|1q|S9w12 zp3!L>fd>N~>^6+a=z}&)q8XEE&Y+mmeG0H$1=ud0`>G{YV~N#RVzpXgHI_)X_Ce83 zff&JL=?d1!NYhyF*6c}^(z;DQNffT#S^r#CMiG|{@v-g(+h*TLvaYkz@9FGn_q5bD zF4+*@wLj`@Dyv*K&^_u)boF#PTN(pBYmFnNzNq6Aenq57u z?mBm%zNX3>DzlZ?3jGtku|-KZAjpS>oWY)2DSs3T!c+l%>d?$u&?16ND@UEY+rltl z!*clQBl7QujQZ(mv7QFhswA3y(OpLI!1w`WZ=GZ!q;> z$QCnNLQ6KKJlc}?mIms|%Ibpl>6)PpEiESx)l9?fo(MbU%eU&`)7lkJ#(IoRm`jeb z2u%Jj6yL{EL12wdNeg&;((?CrZ@l@I>)r#6H^^s{IM(p6jN^__?4?ps`(|2CH^YqU?a`Cz6Vx0BzE9sNvonYX1q&MIz7?0-%(DR@-#uU`& zb&&wCm-tk>I2H!P(@$;GD@S z@MRzxDyfe!Oo!4Qebb9V4ViuGI1;X(8i+F-xbM_04;v4U9qSmyr&&0&I{O1>R`#R} zXW`6hsqyeJc8@bijQMRfCiHY3Cu)zs6=Pxsz*0K#aq`0nX}=AdX-Y_qV z-^knYImEB~;R~A9{!JdZ(Y-?zqgYg6I@;f<^%L!{tOTVJ2J`?cZWjT!i-6mq0(yQ0 zfC4uV&-b(o7y!Yh@SsPVumu=8ggUJ>YPWDPY6{fiBbl>$Z3yx#OZkNuqGSt$+s&B* zZSvIi72%=QV5DbBO|Zogi6@5L?Y>QmPCw^@+@eljydfSh4pg{uqDg0BG?`df>nJVh zX!qK7l!bO)n*Q!D@{5DfNYGkPWF_1nvjC6Z8qdSF4~UP_C9ADjeQv5lGD@*-a;U>_ zc9#kdW~|uzTyz;Bz_Zj4A>aT6%CT;`^|dNX&pg-dROG{63Prhsayfd2J%ktr`|)Qn zz~DA}$ck_uExGP1>4{g5v?BguqP})<@deXMQ{kezaH73K{=3^-HL`tpaN9^U;Efyi zCDKR7ZmDcsGBK&_4(NaKDeQNpX{+Euig&B6M&3C-K0fBFILQ|AJ21VW;q4<;oypT;0m7VfdL{#N z=m|j(gB>{NP%t(i#~lhfL4Z^%NdMu1uwy>dc_^$Ijp<{ilp(K>*gLv|yy*8Z_Ry)E z^b8bB9q)rkwOK+saHcJlkn)*51tWDeBPqWxwYWCkT5$EhZf;71>I+NaaZe~RvVD-t zs&GC8nBOu!*$}uT3I?dx_qw972)sB)AS<-XTg!T$avp&a$MZ$S3p4(kpxSJBMP?xl zP0gB2$eHBoo=}!0{a8+Cqp!)fs-U{5)1O?^7Y_EUZizNp4_h0J+Q`V(fkJ0~OP|{@ zZV!7)OrT%V(%9HS5P(TY zz{Usv)wMdbDS-X2MYpuQ8Cu9d0Ik5YdKM4V_KbA1Tn*VRSZ+HXwz0YyVlBh7G^{{niR^nI$ohZbwac$#?=mD9aD1e zzNo*Vrl!IlHGIc@W%w>++^GsSHD->@Op3=b9?zQ=>hbg;y2Q%0dBBlq9?%SM;?2L6 zS!eonx&Dl{$lb$1S!>GHX2!Z=CXbgjjWkyH7Wrywe7-1Vkb_6~d3(LPfUdt+< z52yd!8~W^ifxXEWi^$2TfpGO&*#+G7m|7#Fg-*7a1Bf4nMqrlmG9@sZ7+oW6HpHUZ zW&h^p>FKQxT>HTLecvL_zW=6!>Cb1zgrA7Z_|FF`x3_xsH^5`994XN z3r#^CU3Y{s2PPIN0A`7jNt~u%_!RaO0D6e0(GD>udiG`ZFBgp%c*4duk*gY0!qJT5 zk&l-gzzMg%n;1nYZPQXaQy{i|xqWyb=3NwBzxC?MkgqClUuCe~KW+FT&FxCPxRGs2`9U2j_GbZ?Q4 z@mAB##aFa1)2?;^Cof9jCdn4{huw7rO=bSFnnIGQyS%96B3C4)sgrzW!OUOeLF88_ z#aRbM3xl+IzT*VEQ!I92rtZUeadn?Z^vKM4Kin9v}^RtR7YWtd!1F_<$ zcbBu$l3SebEH5nb#=07s`@%>9;Cw7IGjh4{EYJpe6f_g1acWN-J-Adq@~KDV18q!) zls?_jhGZTZ6rdr`*NebK>9J4IWK6a3fXBwD?KW$XeA*KaJE29Lf4-}Ibdq1v+eQXRCz>6DP^+fp!r=}9l-!hj=ni>m zQ`GqZJ>OJ2@-Sce-FdvgMnEexf@Gn-#2JQOmz#ZvPEm%TwRG;fyn`{WhfWld|*JuQaUjed7?m|9{2T@`anP zT{Q8L@kO7#`MhOIG0tzLi_fuNNoV?Zdb~1>=fQaYGha*OD{DsYy!RjP+PLb@1BUNY zpF%S5zkTtGGIRcy1-|qy`nD>+lj+;1-)YXT;tsbdzseu4S^W^e@wq4dDE~ls5brAS z&%fgP|EW&}@od4AJ)D$xy!&o??61Exd|T5$ykd)N*6Xv*OiAAV5feKYhm)mvnpWxa zjxJ>U12VLA`~wO){$VaM^=5o}4<0%Tp2qV$o;UF@=9~6^n8%n*ZqOl36gHUyb`US) z>=^w`hbB^jK)$74(~PI&UfU8Bc+x^vc1Mq8VNg{4M|T{Q%_G*mIp^tQVu&J zt)bx^;qcbcP;107Y^mv=sG8iE-<^N*WOzwm4Pg|3?`DVc@i?hH0)2qYpvC!TYk`Rg zBu7%nRs3%7()- zi!y<2F$QQs+f>O1h^WLe2j;D)!RZV|OD#3+$%Lge8p?MV2WtA3geOnNdNxj0P4w4T z)PhI1hQm9C)q*9pOZt))$luC40OU%5oBl5bdT0iuedQ#1=814l@E(}Q>=~cRm#bQ8 zBQ9^WsM|AE9Zc3$yWNqZ?y|-54v*gx^dbrtZ+}_5R_Vah7v2&)Ynz`-W=6Nt-(^p> zsaSEXj^#1;oi(^Wer%^U$XQ)a9VK0oJs1{EBbU zy0G9c`UaHHm`lr35eAGa2mk<@#d2Fz>J(AROqZf?%h>dYIDiiR%!!Ua;tr8z`h3bMJKg=xlfUtel2U~GyWAmneq7$&{9@ZFcK5l>+fMNg__l4%3q)ciClOa% znC}L_+a-3NXuaher6p`Ahqtz(>{@DR-9bVckd#S4G@}jhEiRQC#LXfxWUDTaIG~nH zgN%*@x<^Z~mWVT)qEy49eZ>%N5O8wmS@++6|EGR*>}hy1-xa^&P2GYpscO7vboBU{*KHoC|OWiR$7#s>n<(z zmMWde5Us`qavAO-qFw)4eSTXE`17FFJQt*HqUd`r>j|f56iNTH`b&F2p{|me%JqbVzGk7|18B>jXD>Cd;`Le@51v4o+t4>8E{VsNZ0+pYG7*<$tpfwC{$_ide|cTaP}1j14%IZS z_IB0G&x=M9%f?TPb#CGJwsdB`zjE=&@JP^8UsYG$GMQ|dOqItQV+$2;h{$tf$oL-I zCe`8qlQcCGq`Q+6ss|K8s0yz1)0Tm>tyI0Lul+y|Y$5cUmNFqUun9}9Tm)aJChoefgG zVn4X;kpC%ZzwtZfgtJ0@af z3m4Yq+idxD^0w}?mL?KQ&+2A-exJ?M*OoD^aoO(XCSN?~(zDN&O_!Gx7vriL%BxP} zI@xc$01l{g5ob?dp|5nxob=y}7Zy|QHpzW*BVy0#Gy6w)@qsSL0VHEbyo$CpP|$Fj z%L=?1pWcJ#5T2*;Jdfv1Jb5aLljIk`2G9|#vjsDxHa$=R z{T7R*@*Hhuu(>FYD8PiN}L>hs_oq#sE3U^8d#V(o-S>P|G=|C-}Nbifs+!qw| zzIcGo9^kVF`0T;Hc(5-X?28Bc;=#Un6h3oK@R-pfWnO$iAkvisd^Uq|pn=0kMKsI& z1c2{Vw8Y$w%BVe>T<}c#rxt%@NvgT3y1cC3-r`yCDMJi964V~YsD4A>o|Zbz#xsA=0U zM#Rgru>@v5vK^VzFF#a!r*U+;>n68KxKxH@^D%ZehDJ}5@9S+Jjk4Pzr5%6mvd1&%f)^6Z%s9c=_MkIp07Lj}{DDzg3; zJTYm5Ckv=7}i-a5@?Dc1BxL7iXj7vAp?pb1JulZa0t4dCF)FS8yyQ; z#icD!o)O4QaMLQgL>D9%#`1WT<1IOF^^yNn?p?QD{_FZfuQ+qr4NnNju@2))^RB=7pD9#_0f>}vD~?^C zDIuu|C<+M&sB>^=zH{hR3iN6RMCTCg2rs(Czaf30I3ZW_pP(-j^O19lEK8y)pa92|VoUlg$2`>m-W?@YD&I*J zSYH)bAHKxws~A|e&H`j|5y=;DnCGmuWMW;QinS%-X`~;CGLs%-*=Bli$K%VHlj%oJ zW@#oT(^b?I4h}FU)3_j$lzHq_S7Mk+nc-qbC|Kq0*bpxE`zmc_Ql=2NlU3#8SspQ> z*iPO@zEC_NKK~*0yK%YVT>YJ9ds%`THRtMYn5}oAr@8uz%zE56wrgJfKbZBnb@Ku7 zc_0-mT1yE2(PGH>B}V{qeUb{62mHzbTp8?CLO(9^KX@`WKbn<^Oca0&71aJa?G%vI z$E{(+x6;I4JT4E$dHljRZAM+-E}ZcuAFv3@u1I3)~p{hele!0gm{^%t4-fX!mo<9=@; zeqebBu%W{rdx9H#Z`6AtUY%FJ8^A$5?g1C#Zi=r_h*>YT%-n@L zXsFW)<8;8d1XA!)gh(nLiZ>vuIVUi88;pdD@a)4wmnvB)uB`#5pg}~_gaJSdeS+eE zzZi+4EDhduF&AeUP@BQW0H%=?d!_%2Uw*}AP|+gYjY+frx!zGdsymaW@UXW>umq(wB(eBZd- zcmoP zwkM>%RU&5bOZn8YK>sMSks50q%Yp+VOh~G4SUo+;cARCMmSdj?MS$y+U1>8A6~8(8m4pOIx?uM)^}s8@U5nxWNa)Lxxf zzZ-X;a}RYr_guBdo_~H`J@;1kvqfC4>UkbMrT8a~gh8vjad$2G*f8oF6pfXM)3rY6 z)KM8u(3KN(g)lJXIUxm6CH!E16b%*<3xTgxKwjlg1mKs>0-tUl4}cFq&yo=htxTFR zv!#a3Y^e*Ur!TB+ZLPh~Xs&2ofo!SPic5_HSEPRui`PZj(J=1Wkce}u6}M|C7g5y9 z)HcdHn!z@O4?I`XC1o{`Tg=%AT$N54p|IVgr@XO0gMgy=;7iU!kDkIbW)=}emH|{Km4!9OX8`~?+yD)p7Y)m#SL}o{^+gDOi z+0>LSGICm$wUm?RM-bETYuMjWF;J{|{#TVOII(^=?!}&KpOqdi(LC0Dzs+I{HA`eIRXA zo&rddXp?vtyGLz#3~<&FSoCXm<6D}+BTy4;!vmI2A2zRD%oSs57n0b8dVH#_=mG4) z0Q#!OjtrwbJa0$lhfHhJe=bBl6G{f(2m%ywIA%$}>^2XA?K-mBSe;zm%h2j?Svwki z&9;>VvF1*H$A&;)RcqCtN;0SpG`MPmjf;_Fuz68(+*`5afuasS(+mRL`7dUouWO=+ zzAkX)xAtbDuj`u{>&*Ov;-czMNF^Xt1bqJVBRT`2qFB0GnwnY&cgTLp*v+UI%*cM+ zSFY;cmVZ!qFr1MgdcPqxmPpUTj&5dXV*E zv0m;$rW{pac8A~Z zaFmz7#!v9p>uH|(j$t*{LTdbHU*_m;f z^YobLaf%G|7Ug(qzzVbDZRCu=r_(;6F zL*dJb^}F%w48$W{PrPG$;N4mC`cXVb)r&3okubJbad3*aAk;(YF#GU^4g>o~Kp%i& zC@$14VM-7`HbL_Wo%5$S#(b>?f(G1S&RQUr(LSgo;Hma9DT0BR<`Ih4VHn@+$?O>O zu^0~wH=oXsfUi%-Tg(qhb`4J#ERL@}C6fxIe^ zjLloG;*DHyj@Z(r>%nS`&6Yjjnc5cK0mPzCsARnH0^mv6pCfjhJiq;=W_x&IKdJ0A zozM3h)DN(KS-J`@EG`@H}G(j0mPDpFU`+c1)e-@39ac>0!61&|!LRbg8i^ zo33>DJNqPW$6IOp5YJU@p~!LiQ2;looIO}H+eOKH@6-B_e-5ba0U4L?H0UX(`_U27d>{1@r^!g?PSbwtsoVasle8bXcVwzX(Hrgl_*zrakMyf3S%-w~)UC zo>wwMi8(rS$(U|xY&|o`=Wf)YBaDGKS{tA%6hseUqZ~Csr`kQ`0z)Z-{B!s1l;z~* z6#>Ql8O%@Lt6ex3_Y`>+<i@L(KJ8I7#t`v=U5Y zwK{`MRXMq4>dE|^#Db>QmJ+Z5!=(}u6>b2Ru-Eh@>AkiA7iRZb>6r>Qq>Z|X#sOos zg*>oY;YKNcQ%BV^r;t2w1ohy7Yjk`1)J{=8wQ7ZvpAz_;tl9RjXWCokr^I)Rzo8zD zWRb#2tqT~3$&c+M-Mm%~^ z`9+{jE1jZO@fgIvinlEP2<%#7)%6Z>3)(k;Hs8R0Mn#-{8uWjY>IX8Dxp(M)iSA$9 zH_E5_hLN6a|1ta`R1^EbxL4t~7#d4CN2jLB z5i!7<$dM?6seAx4;Fkk83Z|@CW7B(LU*Nq*RdU=f$J2joK6Uusz3<{m=$U`VxDDX7 z`NT)4KA?H>JgPlB9plm50!EMUT$Z;)fO}+efATXWSUxdiB62vKK!<8pO*hr7n||li zYT1}bzf^Wg0yjuPozt*|PmBIxtX9GHprSd#{Kra@0BJKT9>wg+s#W!5vV z5A~`&>aUsCKY4)aAM)g~dHvJYWP8Y;<#?fg$N^)E0b+>uUh+?Xl9W!b0l9TVw_jVLLFl`0~y6U zH->qP0IUFW)+aRZZ5WpDx}o+>V|8_7o7xB0hvmm-zWilrO<#2H=$bX7xJIutTxDL> zQ&rWa?upZP=$Ut$)5rU^WhrD-EpE5z;r;&!%xu=LlfXI?SSKpEPA1msJBA}DAtnzi z?gD`6+tI2P^>k)x@=ZM`GnC<&{mk@ANxBm!!&5r#n06#)b9qM)akL)np zAYZ#e^>0Bva@J5!#}D|X*&gefQM#ON zZ^Li$Q8z=5n-M^cn{H2C4&$I+-Q#1q7X7rU{#~F!!bj(z{T=lbyzpU2yk^^(DQKv9&_^{FVORGQ&k1hBKH;R zIsmD%Mf(AGxh>6n(~HD|C+3~d7AR6T0^l>$>8yJi=)5IBTcygfr(wZR_6o2Kgs`h? zC1}a((tH~V*@xR~)cx&JM z8;+7|hw5`0w4J5bsd565ld12kVuXlkVKFP0&T&o{#-UnIHDEyJzYUy`F`!$VKY!&Je#X@+)%rO7M_#TMUhVA%P zb&i7it8{zN$-An(vejit#!t$ArYt;HR_(zR&eApykm}zQ{nMx?{eM>VqjL2W{jbl| zU#-RssP?pNRD0Mkcg(dnXxpgvsJ~IQN9v&bowCik;9{k%wMvbv`=@Qj_TWb=@B;m0 z?kY2K$Y1dH34BF<>SJh!UGo@=Wfy#f41Lo3Nk>UGST$q(+}3-x)_nHb8soN;;@4kK z|EUY@J3hQUTF2V%*6klM+eeK-S!etPWWyXaUIMF)GWv0GD+L_;IY6ocm3x8vD)GZG zj5`Jeum6$r&|0j^Yz9n(0vdCN0OuL zRbHXFU#Fq%Pi0uez~w+jad<3lUUJ82?#fEH+wV6ns&F%z!(D-9)kc?i#du43J`tx@ z0icxWNF!W{qb)WRw8b{}>kBu-k$DduCJR1|=XpGD;+cz8X3CFw;s#|vrwQ00UhNRC zb{w+U5vOJca@rB6W*5)lc^ywCRvFGKj-8DfGgjHhI5ih$ti6fUa~Ly;C1wuhbb#UP zO@GiAuEhP=#l>Zz(pV}LD|R}IiyaQ*t)jA^-5x9}PQ{|Bc4radh)Rl_#F3fzp$lIR zDBB_QHI7h|WD-4-hY=Y_vR2-q+qRqtEWli^Iny_m50j zs|ZJp4PL*up|Y`|(_86H1{%w&D;SI%K>pDs#xcwtzv6;Xc@m&8G8;Q%96gu`xTX${ zct<>+|Kyt69=mYaUgLtj_>Z(iefNl>b!Dr9$C8l#BXT z6i9daH@Pc^{)2m;moDGFe%%Kze*O@ChrOVk4*pk5{x|cXF)8?7=1yI-657gwEawga0B(e zGj)=(n3}SVWdxAIMljWC56;G?goAC$(a$sWk1wuFzjM1!_FiiquBU&!FLM=X{jq2F zmKgpSQPGA&_T{Y=S5+q(kqfQv;>jRP|n=mX0{ok?eI>U6vrmQDrQZH(WVyFZBue-u9mgn)KKnxlU=b9WG_%=Q10 z%EBKYud7d>tQjSffulxJ@sWC<7HR5XlaFXSTPnL2{N*84??wBq^m$3GGnB$ZNd7`Q zTi<8Bm_cdU$Dk#m-d*A@8LGxub%Qm1Kn!MORtYIo^FVG7f1@mEZVobvUOK$*x6_As z3-z-`{jrHB&=ho|&MXvtg;1gId*!{nC7^%}X55JmFfq?;bkJ6o#-$IQ+aTl)>`vXi zJ{L}htYplc^h4FbgAyjkd!U`OXcIH3BP{sb*P1u_3C=7C?UO)ck@hS>LNR$2oKw zLq5QxFHquz^Ss51=Y~k1Q}|~$kExjZFn3-4-0tw?l#U6$i@8gTxKXSEY~Es6leX#U z#n)HJ-gVP=luUg22{{rr@{T>5KKO)DpMHJ6yi>1T;_i8@oid8~6~cn>LrC*e<~Rem z5{AgfQ1l-a(tl*0716@cc*Eng!wLq}0_a&Xls>?CRkK8it91k>+oxidFn%M}4#HP= zf*a?rnqGDN7hiqlYd@d68~j^4(m$2gAr723gqyd7^X}dMzyAiA!c+RwpaHC(b1!S^ z;*Od3*7IQ9>J=Z-em7)-%S~1zd2_OOY%%B=fSN5 zf^~=9U+`u8j0t$r()lv+cu7dw$;A$9D&g*bKsGX-Tgyg%oCU61!;ALy|6#+Q&W3bU zztKSH2wsc!kci5+REM=t_|_*QpHG8gGTn~5p7j-L_clnSX?&25z4tS7Ly z;CuMzGR*BmbQkK11=umIyNLftchNuFpmY~{`E@h_H%})D@X%T7F3Nb#{5B6vGyS7H z)agw-Gd+nK~GM znhtDCuVel%;xJUsBm{MdCa-A@spn`VOi|y!?3rJ0KUt!c2#ZzQPX6F`))mMl56h^jhXSW{e{9 zXED0ZT+*1+J3ZZNZCr9j_XmC)BQ|;7MEZH$68{2z_bN8`Gqr}|gKfYK{_X-|r|6`m z%Ek*NOzy)A`4m%kfvLOTc0vW#U@8)HIM8IHtmDNgFn576TskB9Y1yjZT%dSjAREuO zG~{UVYu8gUY}bN7r?uMQxWQpnmppv?7rc#CPTWKL+fX>Q!VCp+v_FIL z|M#{Ej`V1&TnA5vwpDHbk;t3UOJ>9k^5K`ylA{@&jd3&BZ$=H!>m`i$Fn?vMC?5tE ztIZ+uX$qqv+A6edDJdA}Z)#E0cFD{bfuZl(*QJ8ly5dYJb31Q}znKtAs$U1kExpEC z+|t{;`HQ%wcdL0>@3;EimuDQj3IFlJUfL*s$L}PEpke+W_TB})%JNM2eqX>WL^Pmi zB%VS*h#WM8Ll$VOB7$1AcqC1yog$(_6&%32qGlaZ(y@EW$YE&R*&}j>T_@!j;snI$=N^!ah@{!AmF(;KuVjI(v-j-z_MYGV?eEjyy4J&+cRlz0KG%Ie z&+|Tq`}wyzC%JQh&;Raok_&tHAK8EKwY|<8Uwq9i*X0i$c<%)lUyw7ff4>1!^79-u z^OB3c+`peWa^GU8IQrMWqnI)8Rm!}p{7c_av|dCDBep1*;}+_Qj2>DC6iyPaS_hQS zS4Kar8*yAmt(Q1sL$;k9+m7FkI$sC6cGyg2F|Q|jo$8Fs)%)5`v zVdB5|-6t~=lNs*lY!5SL?J=3`z@XoP3Qo5!*Ngsl!_BAfn(lL+{;{L%*W=&X!)^!Y zqMl3U9m|_vGHV(--?iNHXAnq#$@FqEt5G-$%N+QP-+e6)@7a4itdx0IWEKZM`X8T# zWnS`6zweK@c_n;6xu_27a&DJ=ad3}&SDDv`p3>v9?_TFfL)W@)x6V^Tl<76o8?|j% z`Ocxo&eBrv*fDSv`^0B&xc+;-`Mck3Ztjv_U;pX*opp-hHmgptU3BW=Se*Zh-UB5w z{LkN2U8Y*MV-1t~zK*jjnOeA#c^CCL4EneGZ=N{~!d>Exb9Fjx@(=3t3_0i64yfDv zj|z9yJpUrqd-!5C`F6w=RleoQw`*{f`rJLVHmJYeiN^$of1=mW&Iri;l*;t%G+?bR zQ0M!g*Vgt^nO~^Mgo{++_7%-EjRQ5lJy7G@1L-UHmZ6z9!{O>g3|A*YdAk##Ka?sD zzwKP_4v}Yy`>Smlpy$l2w)EncYb4O`G*<=#Bp@@1Zt~stIA5ZB=?+hXSc%S5zwF&! zpmUw>zD{`$Prlob8|*;-awy*^?bcp8v;dyRR5@K|!lxPG7F? zyk31ePkXqm&xX%g?>(UJPov=|g`qC!yHjf^#CKoWyJE?T7cX8^9jSJB9(B-{|EJ$g zGb0eT{>)zE%zN19y_<%=KRxKXZ}{Exiqm(wp3tCk#@-7g`(O8Nnt3nvJL>=3yXlx4 z|KQ!UKJTj1FAaU=l|BP5>y?{d*k^rboL|@5idFl+_uaIkK*G(IsxoPxp?6cCG5`PO z-So_RsVm<P1iP=>EGZ6!qVAIK-KW)w3rNJ;0DTBtae1i~D#t^k?2nzw*mp9@Y!# z*ME71G=1^tl>v zi{ufb&Uev{vB}K))cMl;eCe&-2h#g|>799}?idue#+`cyJ!skSp5dBaO7}nOJ#^|X ze>wG0EBk1dE8ckJhmWDDmaA!v`A)5GD`cM1uPT4|-dUh)Ua05A0oi%x&TU|sgEU7g zwwBhSy6)#%`}rcI*|+S09|#?jZ?T>F=HzF=<5ykO3l z@tfzP(b>cL_a8R76Cdb2;HBv1>+*f*Nx`2|4!mQ! ze8MkL4u9sgPbvrRyYTr@86WaAcIL(3dxtWe2@ezb8Dx6$APo1D`#=f2o?d zGu`k%dalge{v*Hq<%i#$;fI>>(MPJO-^f0aZ7FjO(q+M)XI5Uh_3*-}Oq7rxdyZS4 zWbJ((TW|f#ONCUW<7+Nm?|lgM-B;fpz0)eGjHh{kE_0G(XJjwG!(@uaUgkhZ-SzKG zBPG>Rxz4CKRIyVUH7SR&LnGZj4NBDR96)xBL^$B+eP1*b0 zCv)t&i?lYe&mA+Tg&+OH;9q6#YkwqY(z=~Yey)Q<-Iv#K-`tiV`*oYlydc~i#>g+C zO2AURW+J0OH@mMFN$L|`Ej2!#HuH{f_x>UOFi4-w?+f+&XV3b5XD`tbBORJKi`S*y zsZI?CSxcQK(EdpH96DxXXMST%Jx-C)*1z3(#}g0xw{!F}eyVcFQDKZ!+_dw2o`J>) zb;;gu->~1{#ce}x)HNX*M9!)-6`A6y1RCnuFD^5;pt*e0eKCl`vlgC zNZp-UIdTsXPkZ<8Ztbk!oDL1&y}h#X_OQS@76pH&SUA6tj-B??!=-=Lkh~`@UoRLl z_|i)Uk0~gK4({7`a5Vf)-Zi7Ix~jD3(o2gZa)wrGU z7d?65Y1m97-c{WhMxY@~^%+{|~-19Or4h{ubgEy8JpVFcaZe1V*F(+G7vWoo%i+f@E2dzU$k9D^F}Gn*A%PW&TK%*^xp^R zZ$l|?j{#-YMHVZSso&gSd*a5;lLzr#-}TdXvA+AO(8B(nn8?#YPj^&G^E9=pp0Xm+ zju<%d3tdN+YW=6zn|7Rv)GvJJWY;cTwvB%%@7~f$*Wdflvk(8}RnJ{C@S-cabeVqV zuqzf#`_?zUc*os0+?y8`hOyqgd-UlsW5lSNzxep0GcFsI-!0Ph+$+1E+wGgPW_{zU zlS*%JIVs|6cyZULp0KCpBJ}pDo#`Eu3p!+><8fR-nMq(D#p7d%Gd{!_XJ#TZLMP{v zFS(KS%TcD;vmd+pJ6GRcujkNL>M@@=wchLSbb4(6uF>0{D0t#aUz_px>5K2E3U7H@ z0Z<l9(w_i0^P zu=(@jhz|eL$&Mr1B^WGThpJEcf516vL!w{5b>P5TzaH)U9&_`}W5$dd_dhsCjk;E6 z6MOtl=k$5jFk^h~POxgk{N%W{=?H`QrCV=1@0sVrhbnqR8MiHJpW5Z}F4t(0#e~f7 zU4vvQVpn~N#q8CWXCg1VhH&PCTtjpoA(EN?$-KaJ&NON@w$BXdh_KwbfVyi~G;H!M z*A$kHFTD1y-r<)|_dI9vluO2r8qoXl0T=bZr(jCo8*aS0%Qcq{|58cuts@3q*!S+@ z=jUzx;suvoRg|Bbm)m{Nz$upxx!kWJ;`s9Rhormr@OR94IFtqYo_z|K`&5~jV0EhD zI-`SKnR&3Y56|tKbu00sU8ekP%b7jzDI=!O9kZyJ5kH6F6wpbEngTtapF}&6e#(Y{0Fa` z(Pi)@!zNre=tH~U$Ces7Wons>-^(1Z-b2UHF zPcJ8)pZRBxgSE?Ws+*fIij6tq@-U~5&#zK> z_(Wb?na^Mu7~Vg+?2Coh-1boPjz`B`Ich}VmnZ+}h;YQ8+N za?mBiO7XGt+Gl8;nBP%*%XT8N8_)APh>7ZyeivWRHPT;UJNum%o+`b2biW?YpL^Lg zr2|j@yvr3cZko5?rLwzz@RzBm`z?c1wl^xC=v7)Bc75>5Pc$izc`MA=toLzJ(nD0z zLsZg3RMPgdA(X4@oF9voZl^L%s#_mX4&Tz}JI+bBUaA+TF`~ey=w?!0fsl#fk*Tu2 zV6$`ke8#VBY?%{qMpORXwSzBnDEOrvsn7Fp^KmW5h2>=q$id66?UIS=ml+QVO9tO_ z%a6W!!Eub`t&ygEDHk_qmhlcaA5N00PTWTigASf$r_v{2Z?wmbN? zDbd>>8+T>taM|uRO2QFey$jpDX=0bKcVS6kzY&GK$AA5d>CPy9;6Fsqm~O%6nXblL z{EBd_tM`2lRw@!a-u^e<(PoYR?AJkf;cveYC~!ivthsl4ldun%2VUC#vaa+coevg) z#b60Is(rrhDQ!;+qu}`V50st&-Udzr?*%9Gt1_@0d;welE(8~Wi@_z}N`AWvTn(-P z*MjT7T5vtM0o({~0yl$Oz&i4*2X}B~7q}a20{4J>x#um?`$+$S^byiWNgo4SDTg*= z*wy6_cJn=94p;%s_nqNiwf{&p$*A^Pq03D{lfg0V%}S4Le^FQiwsKFKkvuO5&++vz z0>*^7u$BvJx$2`g>55s)g|*zktmW!lB%@i&)jo5hS<^YvlADY4+`z2m!dh-%)^Y>0 zmK&J0+`z2m24*ccFl)JiS<4N~T5e$0as#uL8<@4+z^vs4W-T``Yq^10QwVs_tmOt~ zEjKW0xq(^B4a{0@VAgU2vzDvgtI@3G24*ccFl)JiSyLc+(5&SKW-T``Yq^10%MHw0 zZeZ4O1GAPJn6=!%tmOt~EjKW0xq(^BrG#@~Ef>~uL$j6}nzdY5>!n$YdexkT?JI=i z!&Pm|tGdI$IH0^i^ncav@c_keHl zjK2Vna^)C!f~P(So-&4tr!AbXzxEE!Z+};q3l_E?QM$DKpfC#B7kbMVe5I1V#=!)b z1XExYSi_wSq#MDsQJg9Vd5tjw#=yAchAFUG*av<3pidw1>$454PapK@qo|wBN?V^k z=+h^#K79h~(xm5S)itaI13;UvTUv%zE8TLizzUbT+o%^D5Uv%z^ z&VA9jFFN-{=f3FN7oGc}b6<4si_U$~xi32RMd!Zg+!vkuqH|w#&PSho^vOq`eDujj zpM3PmN1uH3$w!}j^vOq`eDujjpM3PmN1uH3$w!}j^vOq`eDujjpM3PmN1uH3DO6qE zqPd$sU>?{P%m<6WVz2}p)&7d^AKm_s!cvuap)@y+ZQm*!*WN00yDy$h zh1A}Ks=b|_+`d;>29|>_kpBX3A-D)!3@!m{kn$2zmVz&X%fRK}3efd@A@zJ=;CjB0 zdcH7lJzq#YUr0S)NIhRjJzq#YUr0S)NIhRjJzuDL-rClK+sJ=A=sLfUI=?V@gXeY4 zUr5bgNX=iUn%^b-7Eis8^e;#sA?=#Kkea_xHUBG0w}HQ22b2zGUut6h** zVp%1x*1_or=@?kS6}J@qWp$^7x!_o}ApK=ILjBel0b^j?_sBww)xrV#?Mb2Q$pOKG z8o3z|yb5jwUju&({to;-c-p8fnZ_<)+&L&`W3}*V<@`NiF4#+T_0{;o)%e2IvZ!WV zsWD>DS4&%`BVY`S`?t!|SS?hPI<yTIvzK+}-+`p6b zF4Avs=WfzX;2!WTp5hnaQLY>Vf5-j52TvQtg0TzO&9Y=I#tLx0el1=oWcz>VN0a5K0Cw5<*bY^#F;+v=dewmL|4rgd%vw;?x8 zdOPVI{B{?(8*BpifJeb&;0em%BzOw67YqvQ1%m>6!63X~5MD4y{SB3y>S2|(?ABNf z&R1?lV&Pq(Ti7C6haxubts~BD57;JqID>ubts~BD57;J zqID?3n~G>1ifA2*XdQ}Z9g3utq)V%J^^Sjj`)k5nu$Sy)i0;u9-D9j4D(H=R>_gR# zY!LPV^T57fJ~%)%(opsJeNQo10*-9ouPe5$p;*^YtZS(3>OEbVth#HceA8GC&OlZS zoJXE7kk0~eA-D)!3@!m}QA5=h7;RBQ)fO0SQA5=h7;RBQ)fO0SQA5=h7;RBQ)fO0S zQA1VxS+}j=Yv7N;Iy9^YUq?4v(a>NgY1`7!z_v70t%K3FG*qpF%VZyT1hjPxRf}N! zkn;Hm{22TlvVISqHp;q;UBGUZF7Gy8;QQs{PCw%k3!epTX~Pu5=_X-!@B;OIhpFZ~ zDjX$i97fANjFx?v>}{s5Ox9Bj6BovEa0b7Mf%Eun4R_Y@*Lv`EuI~g}$+^ua3p94~ zJ+edPFP)u^kdA>BTzSU%OLJqTwGETPVmzf7PbtPzit&_UJf#>?J&V3C~`_vzPGfB|Lix&tAf_m+?4sr z66qt6JCZy{lEX-H7)cHz$zc>_HA?lyGVO77iH!<+Y5ZZ7o@K9afZp;(sodTYj*~}> zQvL9%Z~{09yiYaHsNnwgZNdjhPgZ|ml^71iORWTj4jRlS-~!3<=@z)GaV!33BD zQ(zVN?e@RWujZl2OX#o^d>LE@E(ceDE758dxEfpot_9bDwcvVi1Go{~1a1bmfUojI zTfx`BAA@x~Q9amzo{iu(bV!rlPWp8;-$8CWN$(=P8*BpifJeb&;Blm!pj1zSr@-HF z{rBK$qv{-E7qFZ4k^dUcb!ms^f#-v{&Ox=1|N4x}U%qU#Rgc1|M`6{Y^bY>2#&!$a zKNMDiaWDZU!4y~pHh_&_T39N(S|PkZ^+u`e%IRM1KM?kAe^b~8%me#^`Cy^?Ii<3? z4}?Wr8N#oMNtb{l^+sGOYg{WF-|pkvCxDZ{``X{omHXR&Dtu5+T`GIC4(^AS>RFtB z987>oFa=hD-)^6yd*-3T3rJi5E(8~Wi@_z}OK7qbd>LE@E(ceDE75HgxEfpot_9bD zwcvVi1Go{~1a1bmfUojgTfx`BAA=3(-w19)ZkqIV(y#MGJIG-t>0P9EgH7Nba4*lb z4?F@M<@z!3I3@fcES#X6KO%jS^v9%6k^UW8{T@7Rl&u=OfEV~q^})oHtWoU98jbFc zmC728?vItq8tW99*%lSWqM}$-6pM;tQBf=^su9jNb&oA7ssdMX{);YO^2c ziY+Rt(N3c+DvCu#v8X5(6;=Poa&1vjEGmjcMX{(T78S*!6g3(twy3CTb)zjRs#@J> zi;7}VQH_gQqAe<_aZ#f!Dynf&qb(|`p7~m#Eh-w=qN0H_)sJct+M=TBnHz0UQME+Y-xd`O zY*A6QM^4+KqJb?csjUP2eZhRN2rLFmz;Wu0kCB~h7ft{tfs@rk7^7CtSPr`88H1gS z5$~3=09*(z0vCfzz?aB*DflwD3|tPb09PVw6}TE)1Fi+vfwkaza09pz+yrh0w}5r% zSr2X_|Lx!o{<;g?4K{&$z`ba@4?F@M<@zzBdXg#uwL!)T(B3@;F2<RaB zd?t{d1m2^ujtQ? z8*%{RU65n{*Sn2i(i`ec%!BDA$jHAHu~6%K0PGCrN)y`V{Hk zq1Erf(?%e-WayI6G6=0?F(UU3%n_D|KMKQ4)0WGs3jW6=|tXPn5G^F+0JzTfkV6B%uu z$V}oy#*-&XTj?V`jULOLD7*bYdm*~YCht)B2=!dXr0`B%-y!S{j?;L;oqCpE32&8e z-l->Y+B1oF>bacuOyZsDIrz?{;LG4La5=aFT*>{bz}4Uya4onFtOeJD8^Dd=CU7&j z1>8oS+rb@N*#*9Vp1VmmfqOvD2HvUpR^w5w95d?K^}Kp^<9uDYTP1Kx*xjhV8k52= zbN$O)|1#IV%=JmSzD;|E?H7}ENv2& zHc9y_H!N+Eq&RKAn1rR>BPqwUV>lP=rR(?L>G$C2_bC4sU9qR%qx^+<`aO91J<8u# z;{L7jG*%1mQ=XfI9xu92IXmqUjQiBCeIOh!AGuHL8$AnupV)WWv+(z+-t(O?@FlJ+ z1z!f2fy==a;7WeG3S14Y0oQ`-z*=xUxB=V?}yF%Ve@|2ydO62 zht2!NrhY3Pf38^L_o#N7tkT{l^n3ASmGduz<5ag#Rynr_J!dglrS0@>q$iQSm-PMM zOW;!QWpEj|99#je1=oWcz>VN0a5K0C+(w?;!5v)L1$u5`vT7k~ z+XU_b-{Sf&z@uC_2A<%`N$`|Wt*tTc(oo48tHJrYzl^dfqpZp(t1`-}jIt`DtjZ{> zGRmqmFd04=&~wP{cLnum8pI%k4+MsO3j8QcQy0C$1A!6tAIcoaNlls-+`on$*Nhr4pPD~G#sxGRUda=0spyK=ZI zhr4pPD~G#sxGRUda=0spyK=ZIhr4pPD~G#sxGRUda=0spyK=ZIhr4pPD~G#sxGRUd za=0spyK=ZIhr4pPD~G#sxGRUda=0spyK=ZIhr4pPD~G#sxGRUda=0spyK=ZIhr6$; zG=8I4?QaNYunKF2##GZvdll9UMs#OrWc5X*y$WlFW{PWtUWGM7qpZ3|qpZ5FQC6c@ zVa3QNMm{m}iIGo?d}8DiBcB-g#K6WDfl9s48W)0IAyBDt45L>FRO-1b#VZ6VWjRK#5U7;p7`;NEQkG-%3V}*` zWtFlVr`;>7l;s$`60A~|V|1^ql3rOQy|PMrWtH^GD(RI~sui$?ULjB^D{}r`Ay7$g zt&-kaB`X9f>9bYRXRD;oR>=y1N>&I|YP`Zv;S~av8ntlRD+DU((N(fSppq2=m4R0X zR0dulP#JiIK&7_i30WafDK=H+YLBFkI8~XbRdU)Z1S-X>(JKThWq}_AaafMSavYZ9 zupEcwxZZqQbdOn%!*U#!B>smgBG-hvhgd$6+}R%W+ta!*U#!B>smgBG- zhvhgd$6+}R%W+ta!*U#!kmJ_g?faL@%Ctx`N%L!Ocz;XhX6R@0skmJ_g?faL@% zCtx`N%L!Ocz;XhX6R@0skmXolYgykeGCt*1W%Sl*H!g3OpldznGX8VL1uQNmx$8 zauSx4u$+YDBrGRkISI>2SWd!n5|)#&oP^~hEGJ<(3Cl@XPQr2$mXolYgykeGCt*1W z%Sl*H!g3OpldznGX8VL1uQNmx$8auSx4u$+YDBrGRkISI>2SWd!n5|)#&oP^~h zEGJ<(3Cl@XPQr2$mXolYgykeGCt*1W%Sl*H!g3OpldznGX8VL1uQNmx$8auSx4 zu$+SB6fCD;IR(opSWdxm3YJr_oPy;PET>>O1>O z1>O1auwn`BYjXpGL2-oELhH<-E{qEVc7P$ z`YcAD#ptsbeHNq7V)R*zK8w+3G5Rb9>XDVydUKl-7S)=yC=$XnIwG`IJGnF-J zDU6<}tO-0*S)-Q1=$XnIwG>9rRMx1aFnXr4MlFTWGnF-JDU6<}tWis0^h{-qS_-3Q zDr;1)o)CJbvPSi)(KD4b;>-Gbrm{vYh~;{wvPSKQ)1IlUQETEHJX2YtHpOYrRMx0X zaoRJLHEL6go~f)+Yhv_FWsTYqU-wL9jaD6)3(r*6Xw`w!o~f+SsspDzQ(2>W-dcI4 zvPSj1keSMw&@+`a%v9DeQ&|&wrm}{a${N{{tVOnDbX{Ge_N6&^Nh8?1gr0MJNiF-Y zg`RVKNiDn4bB-^m^%SbjGJ4MOCACmS&pEyndd_hv`79-$rR1}ee3p{WQu0|!K1<1G zDfuiVpQYrplzd($pO?w!W%7BMd|oD>m&xa4@_CtjUM8QH$>(MAd6|5ckxbc%gARr`79@&<>a%Re3p~Xa`IVDKFi5xIr%InpXKDU zoP1W0&kFKcK|U+UX9fAJAfFZFvx0n9kk1P8SwTK4$Y-VU*%qu+K1R=Au2el>^nB|| z<$O@+`PP+zXE0YPf2Zp}&tR@p{zlKYu2lX;&nvBzg(x3MaoY1rD`h8#gH=deg~U}z zT!q9{NL+=)RY+Wg#8pUKg~U~QqJzOIB(6f@DkQE#;wmJrLgFeUu0rB!B(6r{Y9y{k z;%X$WM&fEDu14Z&B(6r{Y9y{k;%X$WM&fEDu14Z&B(6r{Y9y{f;u<8bLE;)Du0i4& zB(6c?8YHek;u<8bLE;)Du0i4&B(6c?8YHek;u<8bLE>5@u0`TnB(6o`S|qMT;#wrG zMdDf{u0`TnB(6o`S|qMT;#wrGMdDf{u0`TnB(6i^IwY<`;yNU*L*hClu0!HFB(6i^ zIwY<`;yNU*L*hClu0!HFB(6i^IwY<`Vl5JDkywkwS|n=Mscf|tiM2?qMPe-yYmr!s z#9AcQBC!^UwMeW*Vl5JDkywkwA4%e=;75`u)SX7p(ym97^=PslP1d8ydNf&&ChO5; zJ({dXll5q_9!=Jx$$B(dk0$HUWIdX!N0aqvvK~z~AaMf{Hz08X5;q`m0}?kNaRU-J zAaMf{Hz08X5;q`m0}?kNaRU-JAaMf{Hz08%5;r1oBN8_vaU&8pB5@-UHzIK(5;r1o zBN8_vaU&8pB5@-UHzIK(5;r1oBN8_uaT5|ZA#oEDHz9Eo5;q}n6B0KeaT5|ZA#oED zHz9Eo5;q}n6B0KeaT5|ZA#pPjHzRQ~5;r4pGZHr=aWfJ(BXKhlHzRQ~5;r4pGZHr= zaWfJ(BXKhlHzRQ~61O063lg^=aSIZ+AaM&4w;*u~61O063lg^=aSIZ+AaM&4w;*u~ z61O063lg^=@m1!6w}P*MKL+b0eOpi`=|;~E*Qw9;YvFi}e%Gnb=JW*8o*k}J&&}68 z<5|b7S)KY+PJ70)PJJq)XFTfy&v@3UPi6FsXPx>~M$dTGsZV9}jAxztR7THu)~Qcr z+yHvUvrc^~qh~zp)Tc6f#(o0kdd9O(y(6bRJ6xyUkt7F!zj#;xhm7z*QrDyc)aGiQJEs7c96;O(i3VH>U;!lHK0reBH=6k#X z>L=pM=yef45nn>_Wy}G+F5)NROSwsw@)2K7dj-@_B(XWDhnISI(QbS3QV%cn@KO&i z_3%=!v6NryujZv5Uh3hc9$xCfxmxUh3hc9$xCfxmx zUh37?wJh^e4=?rbQV%cn@KO&i_3%;;FZJ+J4=?rbQV%cn@KO&i_3%;;FZJ+J4=?rb zQV%cn@KO&i_3+Zbm{kK~Rt=0s(~@92F9!!7_(|%%&I|*@74XDF>DayM$Z^FFlN=jm{kK~Rt=0< zH85t?p!YRP@r+>uV^$4}Sv80qU-67#17lVVj9E1>X4N2eKG1c~7&b6w)xellgV^yE z&lol^X4Sx$RRd#I4UAbeFlN;tYqW-*F>GMWs(~@92F9!!7_(|%%&LJgs|Lob8W^)` zV9ct4F{=i~tQr`zYGBN&fibHF#;h6`vua?>s(~@92F9!!7_(|%%&LJgs|LNFs?6mV z(noKpDie8!)1EPG2t8xipqkBBJY(1h%Z;$y2+NJI+z88!u-pjCjj-GZ%Z;$y2+NJI z+z88!u-pjCjj-GZ%Z;$y2+NJI+z88!u-pjCjj-GZ%Z;$y2+NJI+z88!u-pjCjj-GZ z%Z;$y2+NJI+z88!u-pjCjj-GZ%Z;$y2+NJI+z88!u-pjCjj-GZ%Z;$y2+NJI+z88! zu-pjCjj-GZ%Z;$y2+NJI+z88!u-pjCjj-GZ%Z;$y2+NJI+z88!u-pjCjj-GZ%Z;$y z2+NJI+z88!u-pjCjj-GZ%iC1P?h3Z4jy3wtahpos=r>2z#Gv0Cw<%Af-yF9o2czE{ zx2Z1O6{NA2G}e;FTGCjH&f1cPrm+^qaU@*=dKEz$Ye{1*X{;rUwWP6@G}e;FTGCic z8f!^oEorPJjkTn)mNeFq##+)?OB!oQV=ZZ{C5^SDv6eK}lEzxnSW6mfNnJ384rJ*@$lCf4}YEU@Yfj+e_i7w`juKJ<)9YI=<)C! z^z?Sn)7wE$Z-=BD)^)$F?2yg}g?_W%5%|q|hctKEZ`M1cxlo!L{bs#Gnj8IQy+g8; zkMwuiZ`L~`@o=z{XW7ZK?BrQ?@+>=fmYqDyPM&2a&$5$e*~zo)4kA9)>_eY@=(7)f_My){^x20#`_N|}`s`zTejobmL!W)yKrPX)gkC3qKrNBeUMGJ*Es@h+ zCx1Y#iSP6}`2%WAj9w>yAn-c*18Pl-UMGJ*t%=d=A5aTo^g8(iYCEi_*U2AH zd*LfyCx1ZJq9>J|7`;yZ9hJaMLPrmHNAnc5LhpikM}52%Ligd{p}l@byv$VE(F5L* zl^V-IM-O;MGYdxVmw89L_|7{1>gWOQu!H6ucF??|Hp_WBdcZrhO7F<3b&vScuVmX! zJ9@x7V$JC20q=y49`KIF#*L01@Q$A1rl1A=ThPA+{aet#1^rvlzXknU&|j;Ym0Jt? zx1fKEW=3jt#rn6Pe+&BSEtWg2e+&AzpnnVcx1fIu`nRBe3;MU9e+&AzpnnVcx1fIu z`nRBe3;G{I|3m112>lPC{~`20g#L%n{}B2gLjObPe+c~#q5mQDKZO2=(EkwnA5y)s zH8_O+htU5J`X567L+F19{STr4A@o0l{)f>25c(fN|3m112>lPC|6%k$jQ)qw|1kO= zM*qX;e;EA_qyJ&_KaBo|(f=^|A4dPf=zkdf52OEK^goRLYJp{4htdBq`X5IB!{~n) z{STx6Ve~(Y{)f^3F!~=x|HJ5i82x`O{Z9qImi|IrH+lr}eXhUH_4m2{KG*+=>;J^{ zf8zQ-as3E2+YxHEBh+k1^y~+NBYJkDBfK3^2{`SV_6RlG5o)$0)NDtn*^W@N9Z?DR zPS>bjoP=$iJ3p3&%<_6RlG5o)%h(sNsIRC*fSx*eshIZ9h|R4g3S z759#g25#MsiVLUfK=+Q0s#J~c9UWB}8r?fON?UVOPwljOM@J>`aBvKX$B=joiN}z5 z42j2(cnpchka!G<$B=l8*6kP)k0J3G5|1JA7!r>m@fZ@1A@R7RYzmIc>h=r0+vT`q zIqlsp$5oTREA(!cWtp)a$NPf(Ysxa2j1;+T=lupyIqc} zKKF0E+vT|GbE9{=99MmA^lq2qs?Uwy?Q&f8xzW2_j;lU5dbi7Q)#paI6)k z5L5beoa3c06{dkVRykb4Tbr;vLJxu=kO3c06{ zdkVRyklQLdd@*R19WE0(3QDW&@JB*NL1_&f1*MfJD6O*04N5x-N~=qM$NOLLD9-|q&NyntLhV@qoA~^J~289N~>n` z|3c^}D6O(~>)a!1*KJQBEIe@D6M)E z5$a9E=qMrByy?bZnni`QWQT z8@ADgZM0znd z)D9YL8*SJ|8@ADgZM0z=&Xm<_@60Uuep-<@iP^fYcsvLwW2cgPAsB#dh9E2(dp~^w%9J-K$ zPAX|%5q6cAZ51kBkWlf0guUC}6e?bjP|;n4itZv*bQhtby9gC8NT_&0LPd8GD!PkM z(Ora!?jju5zE(KCy-qj*RCE`m72QRsctJwN3lb`7hfrheLd6RbD!PkM(Ora!?jlrl z7onoN2o>E$sCYp_MRyS@x{FZJU4)A6B2;u2p`yD872QRs=q^GE$sOT<2MRyS@x{FZJU4)A6B2;u2p`yD872QRs=q^GBK zDAX*WP_wr}?N=3Q_ExCbTcKueg_^w;YW7yB*;}DzZ-tt@6>9cYsM%YgW^aX>y%lQq zR;bxqp=NJ|nk5u!mQbkKTcKueg_^w;YW7yB*;}DzZ-tt@6>9cYsM%YgW^aX>y%lQq zR;bxqp=NJ|n!OdC1hro^?B-cQVceymvNCG+R;bzA@En!Z_k@baBGibYP^%n;TIDFz zDo3GKISRGPQK(gpLalNXYL%l->9lvQ+xv84C}{7?!TWOXz8t(S2k*1n-OBeG$Abg7-!6z6jnI!TTb3Uj*-q;C&IiFM{_)@V*G%7s2}?cwYqX zi{O0`yf1?HMex1|-WS39B6wc}?~CAl5xg&g_eJo&2;LXL`yzN>1n-OBeG$Abg7-!6 zz6jnI!TTb3Uj*-q;C&IiFM{_)@V*G%7s2}?cwYqXi{O0`yf1?HMex1|-WS39B3@%0 zM)1A}-WS39B6wc}?~CAl5xg&g_eJo&2;LXL`yzN>1n-OBeG$Abg7WY<<=aYD+~FJP&?nl9^}x29D0yL4_QUCt~-Ywm{22QI;Kk_V?vFL2{ke% z)aZv$qaR@me~jUeG5j%xKgRIK82%W;A7l7q41bK_k1;*(Tgt($VGMta;g2!=F@`_J z@W&Yb7{ec9_+t!zjNy+l{4s_<#_-1&{usj_WB6kXe~jUeG5j%xKgRIK82%W;A7l7q z41bK_k1_l)hCjye#~A(?!yjY#V+?&+}d6s;hC7)->=UMW3mVBNipJ&PES@L<7e4Ztr=V0nNG4+3mS9N9js2SOV(wC|xmwjznQpj1i%tiwHH6FI039p+@qBllfH{SPts+C|zFw z>hvh37lArGN@<-QB~;81;VMuo0F~AXK%ruW2o*C#s1<-htpF72^eCZDj}mSIb$XQ2 zIz38QN1i%8O6eV3*##=9o31FTn^31m33YmuP^0=nogO9B*uGGwM+p@nM5xoFggQM+ zsMDjuIM(Ip5V}Y0jcxVKBNja2y8z%9iFh3`Sd;<1iR)X^z8Sw52%?gVC1eI1ENxn&U7SZE23ZV6>$< z_JYxt=BNusTbko7SWjD;V=VZJEiIvX;5R~BT0-@J5KD8MgttQPpw~(ZEX_OUowlWU zAHCDIH1DG~+S0s_-e^nn4*Imvmd37mp)Jk(<&Cy9@0T~)(o*Ub7;S0ZFK@J^dB42T zmgfEPMq646OJf(j(zY~q!3%9^?1C5C(%1zrw572NUT8~W7rfAx=3Vg4)0URP(%AW~ zv@MN2??PLe_q_WaTblR0J8etzo_D8hY3z9y+S0t|U5KTnur%*y*PU1zd)Sq>rBzef z)s%KMrCm*FS5w;6ly)_xT}^3MQ`*&(b~UA4O=(x-*VUAEHKkomX;)L))s%KMrCm*F zS5w;6ly)_xT}^3MQ`*&(b~UA4jbB$&+ST}VHKkpRUsqGw)%bNarCp6*S5w;6vfB^z zj4thJO1qlUuBNoBWw*ZW(yqp@t10bjO1qlUuBNoBDeY=XyPDFj#;>a>?P^N9n$oVO zw5uuYYD&9WR;~Og?fL4LZVTtDUux7$u2AcgguTShe0r+$RZ0hy)=aL@{nh#OSLf4T zov-|Lh5qV%(=`aYohwa$ z9!}{3(bR@XDi*})K zfA`>$u3bCQ=bn}B5$x~Ux8wSGK}pw-I?_GQO7{x-Wb^55eTt@DQ&3V|JgVUSiYI41 zJZ<(9)2CirFn(6S%vo~_9-cmD?(FFgJvDdQwFUQ1dvez7xdoG^&z>^1qG0Zp#@VPpE768u!pA1(O-3uYqvc$^U*1@r%#z#FlFY$1^3Q+V#-Ya zW9nmiq^WbI_O*}Ao%`h2>#qCb2M>yZslhctfsW-U*8iiFx?e}-J{imk9@cU9vx6se zO!w5_T3sKnYX!kf;aq(`tm|`>nyv4Lf~S<4#$EU7+rOU8U6b_J*})X$P@&(tA#9 z|I^%65ZoI)s=tksw8!;CzOSbZ6?>R)$t}SqtDC9`3%eE^Lcj^@Eiq_ z>vC|JxO|^L&u{A5ES)_3`DLGZqJlqorU&#i59`-1_lNb%>1cTu`At=Y)A=N&NvykY`e~hS<}cPV!_riq!liw!uFci|Pl}7{^#8wvan)#DTmc6` z`?ER~@^k(RYjm-z>cDe?9G%zOJvdi&<9R_()xa0%tkPbpeJ>0y(r+&gF43uwm+IWb zd>!|Ed2oeJcE3u>_tUv{{Z)@&9Sl_MTqK7XtaGJ?it=lvWU&mRMCT-rl>3aF25)Lr^N&Q_RK*&3IQTn}_lDLU|0k{M z{rg~#)>=KHHL5>XJF{NYod^~N&A~5%Uy6tig8!luvuB8~Z;HCdMcp!y_-7c<99;fe zBIu|b>lwM+vx?yNoX+xI9wZd!E*YqwrFA=+&C-m?IU3K6X#DKc;B?TggTBuVdxYnO zJ;U=g4wW1B3VVka2LCnqZFo`GC%ibkB+Lum4lfP+hWX)T;pO2K;g#W4!F$0!h6Q22 zurTZ&4hXLf2Zn=!4Z+5+D7+>d91aOS34X6NZU0X=G#nOQ8(tR{hr>f1`5cZ6M}?!q z(l8p13CD)lhc|>@(5|>IhBt;cg*R)>+kXzng|`IzwZ`rpwW%$^yTPx5L*e-F)^I{N zF}y9jJ-j3QQg~;0S9o{$<#1AXPk3*5UwD7`K=@!dIV=mm5|)Qw4gVzkTKM(wPs4A7 zQ^JSBso}%nwD6Je(eSZwdN?EeX83scL^v~?6+RjMSvWhK6V45v3cnRTtx=E)y?sBc zx5rAo(OX1S+<#1WJJX{g33|ED#gH6Ha;MHKOR{sBOuqD{39>DhC&x2Qj zpKAA0eYi%wj}ODO;kxiYhCd8n3I8Un4Sy7_4>yDx!%ab#aC79TnbV7lZ!V79{KS;0 zvuDkWOv!xb-2Bk&Y2TWbGlj3n&9fezHFMfGBU3WpIpe2J(akvz^A)+ZrXu&KkFYkcV;wrJo9yT=2tT_zqmNCH zXKtU#*ZE(5jCT2{Cmx^j)ZFuDo&B$zdoy>=&V1dM$$w5J|NGC%vgh2h{*iNk=JvUn zuLtH%fBfNTIZyEwd7z^#p2~cm^MLyX=R9RR|ADh*pa0a^|B5`&QFc#dzR#OHb^7e7 zPd)L-!&*nBfn_EdXx00;JC7rnxmt^%U$>vv*)w3jtV8 zR-?1O7@hsa=XMa(e)v7eBOKDb@(yT6}*_=zWIhSU0F3sj#n$0qjpjBSp}=2m(p zw@z8|m=4PwUflWD;l-V@h8K6r8eZHfYj|;|tl`C-vW6FTKF{#t&gU6kJf=f_r*8}& zo|QFbM9xz>a{n>|Y}MRVp>JU;C_H4oYJ+^4hG&!79) z>}lD*^n7HNGU@n9&qtpRrN9_rr>4Z_E#%$=!TVK?8VzxgkrU$}J5@Adw4 zqmLQtN_h8oxN}YTV3#|)#JkSzc5k=8J?D~hV&^P6=Ty#vk-v`Y>fWvU7tih0@UDf8F!_^KUzU#s$B);B>F=U6_B-rG3`)Y3g(O;@d9%{>9rax!{s{mwZ2O zeBOh3kLA6ZcjD4bm;U?JS7Zlx8G`nb3QS&w3uNiyI^Vc*F9x!BiFxpeckoPZn)rv zo4)YF8~fb&#T&=pIP=E2H!i(#)s1^@{Kbu@Z|ZjQqH%w6%hBexXmqr!!2BMjp>=SvvgrlT8M!F-Ud#=X6^gNAc zX&e{*|C{Ah8eFUsr3zgFyfms+jZKcI2`lbZ2eq50kwn(bYo zx!x6;>0P0D-W3}Ce_vz&?`!1$eU1CSuTlT^HRk`mtf5xcP%CSwl{M7L8fs+?wX%j< zSwpR?p;p#VD{H8gHPp%)YBle=LbI+bG`|17W?WZjg#Ue6My)KPRx^G7AnT}=b=1l_ zYGoOj9cf3EKBmtJ>3C9~Q(DEP{lT(?TD@<2$D;QudbgtYFKGUr-7{nL?VU5;p_tGo zsZUCuDt&77H}92c)F<73M3$m8Q2Kaw-*fwMjf-j*qDC&?{l7wj*GIjiQhG_YutHDw zlAi7*J>5(HS3KQ4s{dM4|Fx+8Yf;_TqPnj|bzh6>z82Me-rM&I@dUg((eXvbYLA;w zBXB)cZxZy0BSw;a=5+dsP?iRbAMky0ArcVTv1R`y#w6 z!h0gTBf|S3yc^pE5Kxlgk4IaXs;3)iTo zJx8C2J~4fCo|J6nlx#-#=+2Y6^Q2ad9McMmV_IKvOsgx7X>G+Ztz}5K3nv8Rrzey=QVwPtWTZts@Lar<+nqB->L6i`qsJx@$#N(tM^n} zy(doI6(8Cer}Qy>ey6|xUZ2yN!wmH4qEEMW?>F~u^W7@*_cXTUQ$~GWZJ|z}AEFj- zoObT`O!Nu*Ow#9mof+>^uGHV-`Xuy8>XXu^N}q4Hd#%QHS>bkB;dWW!c3I(eS>bj) z{o8u_xApXI>*?Rt)4#2!e_K!gwx0fNJ^kBy`nUD;Z|mvb*3-ZJM{G7oMx#F4lwVrk z+x6|U&3&f1Pc-*==045bCzt!&@)Oecq&}zg`8-R=ZT~xQx0CYyUt@?Vqu*ChWnjVAgGd!JzM^Xq+jz0a=q$@M*EvaeO~?9%=nyo zpHlBL>U~1J&!>;+Qsq&r7_&oWK^!ZpHpCs>d~Mq}W98t*X7JkgKzM0>^D`+BOkRLg9TEx)Q-=2g`) zud-vzdkMXh(EA9zi_m)r%k}O3gWf&py@TF4=)Gay8Rk8M-ZAL?g5E9Yy@K8;=zW6T zCFnhZ-XZAyf!-bHy@B2t=zW3S73e*I-Vx~ifZh%0y@1{c=zW0R1?WA1-T~DOHEJ!nKIf{%(@EyurKO&xV;X5iSo<$ zvb-P5yRozfNhR~4wEa-peke^p)Et6qd!JG68sF!WYqyc=oi|nQys3KUP1QSZD!2LK z=>ye0Z;GoQsQ!6V_0OBCe-4Vbwc^cD03H3W&bx`!Li|*`nWL@ZNN4-#_dXxmr$hT} zXrB!2bD@1I^gQM36QQ+ZNOjYjs+-giT5-2l+^rRNYsKAKakp07Ia;7& z1v*lo;{-ZNpko9&LZIUV)`>gE26SXV#|5ktcTM81N!&GwyC#*we3im{akf?^F<+dm z6=xravpR9+evV@WI#QtH1lH-j@J-cUZ>s)!Q~WtbV4e5%cvp`&{Hb^Jh{vC*E;}eL ze=07U#ATDXY!a7E;<8EgnAX{9_s%n_O}umGv#n0u|Ifz%QEc3ZU-)cnpN#Euv3)AG z&&2kL*gg;2r(ydnY@dYfbFh61_GHz*W%~I1>rVUk$=5#j+NWOo%xj-`?enf*(r=gQ zJAe8#m;xc2$hKHb`9Tl-{dpKI+?t$n7oPqg-V);`VJXIc9sYoBB7Q>=Z4 zwNJ42`PDwX+Gkh$?VHN$?D#D0~;ewD<2m4w@*t*RN`Qi<$WiR@R2?Dslvm5R>SRn6$A?%M67l4?K1s**gYnqjL-^Pp;mw^X9dsu|u=sWyAn zwMw>GCEKi$ZC1(dSIO>I$?jLlHmhWty~bKKLzCB6t7d5O+G^DdO{y7AsAf2!n&E_M zh7+n8POzHVJBz%M+PjL*ddEpCsx^I-(1D+2O59wDrR*8vdY3y zNsekYf}=V)rjsK&IiAz4vOLFf%8ZcxiV-r$aB>7E$8U1P@0WJZjOXJ9vA0aF_S-b|1U9xKFpn+*y6D zMxXT#?e%*a%ez?J#p2Aq)x1TXB4ByIa^;R9mPafPSRNQPBO_*H zw2VA2MLeL9p^FDleDZ#KEIGn8$cVfQ-)k)+!?zi}&G2o8Z!>%gx1Ror{+j-V-l4yx zYbV?u{Ucp_;A#h4?SHG?Z`u16U$M^8nybD*tmec{KE*mq`IQ;V;HJpnnitKBqgB^> zR}(B2Efy^n+q6Dd*Q%eb@Xw1%q53OrdA26y*~(|o=Jy+EGdgy(VJ@d^rnJd^Q(p7$ zykL{h*3NCZ2pnb?_x@~8<|*AONqc-^vuT@6H)S?m{u#`oH%0W8_xu0N*wg-pZqm6- zuRyMAr9ADmNPD#EXYJMhh1pU7)UU?1GdKs?qHay}-WlH{zp4IiN;|%!J=*LmQvR*| z){{ax&C0AC(^T#IrD``%@0X`1uOAp@eP;dhRt3?dDv0*v$ZTz|No#u+S5})*Uv0)n zy*gPf$Mm1C;>p=YG8@UNQ1X}8WtacP@uJp2^)tTUGx!0YfjtYx)H!&x_#Q33M~m;# z;(N6C9xc8{i|^6md$jl-Ext#K@6qD>U3Cts5>x$*N0aZ-5Md@`!i=J*bXM-Q#IV5?BkG~$hjLcgH8G`PhMYVjgmlp3;`xD(yV{;g=ANp<=-=e&^o9E&c#k_$p-KPaKKb zBB;R|wCj+CKf@3HLc0O4_!|u2K)dO_({91t{Q>wn(r!cJ{Rvn27fj(h(1UlN3jc;< x%&s-G75Ko1+&zf7cipO3xsJUq*umi$q}&G%3Jd)I=g@HW_ee7%jYc!0EREz*&bBNk$(D_=g)ul_6KvK5 z8%*??um%jQ31$H&GMKQ7$;-Zk7cdxDcGnA-uvk6cxm7)qyx;fV_w@6Ox)xD?i%3%`h2=PmQ>>)s;t~=@+^DJw_#r8&_&@l8 zOk-ZwT@PItH|;ZDlvB3dW3ZFR8t_IO*?``Odie7|@kIDOXZd}>E8zXX>&s*NWz)i} zff$zJu*fqXR^2#qDK>^={7HdkjD^?gvOuxXE3Y(oljYrSr5M@&o(=EV8o~Gh{8(fm zatNr>9U)H~9UbZQx}(eAIX0iq!K>i39ejmb@;SJJoDRQtg9G?Y@Jl!!e(gHT_mB%+ z7*d8}Y07j4tVbV2uR@irGKD2{9I%^(BLGYf)lf?QTPl00*?tp;ltX?C&{EacKK3g zEFav^gV~awII+&TQ@w6)q*LNb92;C3flH`V&cUPL3Vg~X^ud%)xrgUx8ak3R!}a|= z<)Z6echM@2wv3^}Cp?N*Es>|(OAl{L$-KbpqE_91z3a~HnzG%ZVlSL@8T0T$R$$f5 z$6XZLdX4Aq-Y}||CXas|O-QXLhjc*YAn5G#c<6Z<&j%bHI|C< z=?t0}pS8^>#!j)mO+fA+U6f0#nD55aDav;Dt6qTLvYzcbS+<+@O6+^ zCbBVtfeW9D=%61%k(tPjfz$?iLTE^4%m9&qe29g^2nB=*NwZ82qC=r#E&qTBJvkSW zt6ci!^xBqWyK4K=V4H`XE2&KJXCJ=e<7&Gmi1HhWFr%8EgXqksSHzEJ3kz?i<-S+wc(_R zd`&Dpi~orKBQhUZj9eJXS2)G#)yVlp>!?JdGsvtLP1=n0!Z5nXh%eB`8Oa` z<69?nvyiSI^5mJFF}>{a7$;mk?LY2k+n%hr70t_5%B3VNW6tZXY_weWt#@uU-1^uC zPd0d?n)-NUhbzVlEUmalCF=sIMtLu$*Ej>0nFN!W#-U*gS*AcUI zzfYs&!sMY$2B{m>__{qRqIK0P)ecQG4W7lRDt@3TkeNn{s}Ani`ga#uv6UJt86wSb zdgZ{Tot5&I12@9E$Cf^b9>>3kl$P~^ym7$pKsN#<=mpj!Fgc~ws<(ID;Yv=zv^qbz zr?#>vv-0i@6}PHz*m6p1_kk^wEc}$o%eBc1H(jQ=x1Ctb0Ufd;)+Y<~^?Rz5GxH-m zY%sN~3S(H0hS1aa39$QtoddHDnnmaU=8TwgCmd6`4DvMiN)(q^s&J%)>;oYrU*R62 zns7god@YrVi7e;t)727Ny};8B?{X;| z%M~qzOw*Qe%;IT^O>)U$4hwTJns!fQ19{pU*@VY&Gtvy^J_2(Fi#`hf5-xz#vh5fl zJ2Bs(cm-aJnC!NoF${9=_rbqXQNe$UN2NrJ-8ZMAU`<6j^)?r0Wfs2N}#j=yKBvXhP zG6gMbTUVE&tgU+O(UG)3Q4;7>*~L_{63lHKT8nN$w?v{uwnmBb0(RwrK}T8t318JY zUVpC0Q|Lx8(Wtga3h<6i#JS8V#jtjm?wg1G5|bsfpOc{EOO^>7i|F zvWE|ExM6H4WA5I9AK|0CF>!iy=Gx<9xuPjEY;9!6TOXR~^oq0|+w>3b-c!xl?sYfa zaCoW_%w@|`A6&=F_oc(s0_^awrq7JlSMZEfUk(@Gxz&~ zgt3C>T~SYM*yPc)WkNtn=#+uj>Mbzm_2*_h&~`A@fqG>@_(1fsM8yKFTK)?|$OkvU zjc~`g%cwVbtmk#~YA@AVbz!B_jjvB>6r*BIqNynDpZU2VMx*`crm_YY$drm{PHN2W z+c-NmAD48am1>;$yk=|RIs>m zqU70x_c)RSdH*JUJW_~^5~}n@97hLZLqwh!8jvz#Vu-294(14UpM*t3E=IE>9rTpv z`53u3$uyHZ?O}%3IPCUMYKm=W&f~v9Jni-GzA{%fTrb?D-lR=;uH) zU&yGk4xBrIzT{H^;#t4H+Z6?laW?Nrq$c;QZ<}?CU$y0emtHyFh*FGZ3guNdykaqgr09T(yH2JQiyPehl%7KvOg;^X}JOXQMCjXwo(fLVM7=hwwKe!;y7?rwuIp`GRG~mgh2quWqi|zdj==I6lAc;QkT6omw~Uwzr)aJv38G#|&Fy zg>m+uhYF2jEVaE@U$}nrh|kFNMyET3U%D8rb=DQ4SiD|lC~i}^+8uMf)tnO7jAZ4? z>l&#h#pdl&a%}tM3m0q=KgTfU@Sfe<;-aZaol0f%WY;uE9*!dE2*URO595S~gjGa( zU=oJe?SLW;B&&m)8HgJCSxK}dPW#bMOe8UGf6QlWfx(aAxFw#sN29QI(=OG@Ti1+r z5}kOoGd#JWSUBACFeN1#W9z35uFb_O3~FpVj_)ZjDlb}1%es1+7ozFp*qYgPEYER% zYUA9dm9EHT=Q<;G-^(9prd?j3A$v})nyw^mw*O5;^P4Iy+pM}NhPEYtbgq$WQ6OL0 zrRVWG@Yf^l$Xp;_FiYDWSnE*C%3UWAx{w@!Je^GvOXQG{;5^|f{qf}s2WKW|KRdtX z@chn7rCKn-wM%??`sH`5ZH=-J-!$iUj_#X3A~MsxA6#^(ZKiCsy?A-8G&4TL!SM1M z@yFeSyB1M3~)8=*J4%Z$Y-Y1ODG)>FwALd9amhgj$v zNY--d1jZv9`j19Mt((_XH&Z7zhdlQck*CpP5Nkj@7CtPLmGhIn4oDD$_aH&Hu8b>= zKjuVDSLN&Z7y}M&Bn85s)OpTX!BFUvz0jN+7vCB`V&ty8hE$Hs4l}^ zeU0i!%0p358df}YWtBV{<}?@iGR|TXFq#yZ6Ikw0BLd|c90!)QT-wF>=#`c zyw?{s56)bXrXW%G`|t3@D1aWIdXPskR{z%+%QnLrF#h349Y^t%5x~iSQsJmWF7%4s za&yK?)@Z)O#t_SxaUjw zA<*m2vJ9W44Dn9HHvu0Ae*$?81YjBB3W;{}mic;dC(pEsEm0g|Ihp6#+^b!AboG=c zXp~scDP)Ql=PCt7jwS3kE#jMo7}^}#I@7ILG-Ef5J_~_?zoX#H-OzASIo-@O%Tdm( zmSbo7iI_JQhnzu<6@bpeOMNPeKLa-C@{o(mh9^|G0UKe&fo6g9z-)+`ov&nP84r99 z&Ih6pK7bsD8TAX56J0d3^5EJ7DLa)u+9-P}Pa|i=n$d*EOTERDuF11Vhj59T5lK>A z$$3SHm^Lr&I$SSa8#A+oLlYNIbr(0q*-X^yyzK3J)~{);$vXQc{%h5SbWCR%o=(h9 zdQ#P<^(cM_f|cszf%W_LwLJ=}qN2DXnpA9z?%Z@)PVjVB;aF2Po{j4gFDBiwUAx=a z8ADD;@qJhAI<~WyVW_CSn89?sU0hJAyDz@OD4D?uuWPYZ>T{2P2DkupRZWH=;w%L3N|{+U@4RKZQ*nM=?$vrV0$ z++5K`c5I8l@VV>yZ!&F%qK;-Q2o)Ag+F8rpFEz zP0>oL@saH4zRQL(dsgHrZmrwe1Vb-pX3N#MV$!TsFAk;WV)DZLzM1^^^rf~;QCj(M z#bvel)I`I`s+>~3c;n*L*Vik7%_p>fHPGIOKwfkn)AuxzdNAtjGetl%PQa;~Zgn9ivq?GAoSymIs6YhN}oQsgT5 zq%27VF3GrO{$_zapt%jrP5JsL`0rMO1A3A%4Z)a#5e1pja*Rq?ADjR)3t77p9+0a< zI*y~a`jo~ZM)3Q0x}wRr=ysn;CYfaa29J%S*ZEk50H5~z2dX@Rm{ZUxhNi{*mp!am z*!`arME3@WH`Tx!yCH8&5YLapSfCaW#>*_1EpdSe62T0ANf1MIL53@Q(PS3cw%!Up)Z3WtxUO=ghmw z94MAeA;oq3fAC>Cv)>ko@wj#)kSEDs;dE9ZEpxSE@uI**kXGz57fFqm%(DoSGb7 zH&L0ZClIFbrbiq*L*7W<6yWG+8KWx_Zuhz!6$}y+RT<2nAIP$1^xra8dGbjGD{lX@3$9=dKaQWE zVQOdI2^k`?@XJV|C|L08R4R4gywEep&!zx$q0J>#C|B`@Tm;wJ_?!>%?(hh1? z8a4$)=g>V0MSzF?wQZo}6SPLB&U`T^P-YY;+QGXrp&aLy&QJ({DKZv5%Q1lsBvBz$ zgv>ZJg1~w(l$c}*Fds~+1MpI=)YH2&afgd8VL@hYyn&aTyh|g_WErqB+>I~M;;yam zx7-Zg6q#`vR9Z-h{+XvlmeGlqv8*)1mSN7sDu^H!<1R(T`oHe~x}|cq=AsPBN(%3u zd0e9?2VV=JTqwVP!t3#q#5;ogf^P(Xf{@+`SV4wZLNG+m;?7N=JD$mX>5B%%0$L(K zV8E6v`||#eSP`TM3p(WM6n;cW^}o~qmV-pR&8I+8H8yqTo`%9Y??8`1@kL~qGhgso zg`s%H$0q?%z!3&=j`st`VxPm$hzN&t3&gL>kg>pM&RT`QH6rbTOLlj+k7lkJom<$w zXSi!}L+)@7NiRFSYuKl|$=2x`+SzU_DR9j^{-jyV?0ew-FPn6EzK}oqvYWSWE9df) zt6QlfbGuIOtNPP*E!kdwc*DMV;A9}9{lIT{5x^l|=r_)388~d#8My1fVedw7T2Tkv zW2n`Ux&HkgM!dmO!rBH8p1DzIIbJNY6>`&hccxVXR0fRW8J}Tj7AS=e)e2(ehaRKI z!xQt{Xu>NTF_vC}9|Rn4JhEjVVIW{(@UR@vg-0Y0JD+X?Ga05GVVHBCP7@#Z+iiz8 z&QxP{p2_(aC-SbF9_nnA1P#)WPHJjmac6hNHaV!OW~*MjQe5YWEFI5o$p7uS8}?<= zy4+TrSG@X2FORT4g#Xb~#Gy=M&sEp#+&KnNM^vvAvMj5rGG)-+9V#9%0Ho8kM3fV? z`260+<_?ru#++DoeB|K4BZt>m#-5zMZ)W${=EW-r{UJZU75q{&GCiO_sY`}a4(Abw zNFWN!R+gLrBTTT?b27D4W62YYV_hYF}ITkz~MJO1;$C>e0)5e z#uDv()1wPoY<8>*MPA?`g4lz`7lEzaMmX48hMxuuS_VYJNi9zeJnvcTraRgVsuu&F z7zT#GKVlfK-@0S&=<2m17mY$zBBW%yH$Psfj`$-Sx6K`2SXjMchGEobapU6VMy1d= zvCYY2rxzOea$Lo4EHiv*XgX#{D$TaDnw*2j3QoH>>$3tB zA9J<&V!f7|Kpba}@5|a6QYte;ab8#HxEX7XHvNWZnPO$tB6vrbyT0^4cs2M+g5^LK z2^I#p2uNXQS-|X&d3IBjkG|o{l0XYT1*FdsDEAvAXM7Yvja&zgoO#%1EJgJ37MIeZ zf$!_%6;P86{1R;mW}N^RB-SU zl;7V|uI?Vo(aiYPYtU8KB2)(8-R#mI@Cp1?!2ARI3493+ z70eB6JTQg=&e(D3ox3G|_2Mp$6WF5q;%l9iy7FHtMd8PyrT)q9%hvrr`caIBq`1`o zZvVR*OfiA?_*#HZp$ND1Cu%?Vl}UIZ5G{OkAo4+N8C(g(Mew3>2`+*Ohrc5|;&uYZ z6P$qWW|tb~MHK?pg{{1(6&(IvsASWx7hAT?HCR(Iftl!D-vhC^|yKX%N zA%}?G%;0~LLA0X@;!=FSu1PMQRRK&o^VB%M!<{0&~eG*kn%mty!JZVH|3M3 zOzYH@BIof)IDMUI{EJee=&u>(w?+Io4-sbnInTNKo`jB!yI$vbcf2;r3Q1nR=N{KZ zR+eG<{{dl@6x2$^rN81E@E1t8%Q9{P_97rIL9Pi^3CUp)xT`D0;;pwxNU^}p^M8c` zlc`$&W?T3}F-j@le}B~ZgHO8(4b2|Uxgwf2OpgUw`gMXpLon|m#2VYcju9^sq9|Mh ztXL4(2k~_{?O^K5$mT}cM<3HUM(RKKQZbG`?o&`L6X2<%Rth2GiAU2}RR!1aHlK=u z_k9Fgy4BzF4wC|J!>~}Ni)rq&&sHiH3pHdz2*$Bx={~d%|DGUU!JJ715_nXYb`YEP z(5TNL>9d}DHhwxxB$rn0)a4?`o;3dviD`pIi24~2x2fpP0%#D<*BT)baAl<lSuYHYZQMM}q15pk>p5MLO-(UMJ(PFbYr9>@#AQxZ#xnKs)^X5OoL~jU zi8qQXPhGrCl6;Ys<9^(o)zozDXtOnBNR$v)%D%t0C^X#+6kwA>sp`|N=0Pn4M`P_; zp$3XXnbo~DluDRk!oHi_$p?^74pK-w^N@{(6M>F3`Nti9>8b$mVtPJEe8;Y!4!z>?ljek{6WAi>o^Zgtj0L!qSg{ zsw+rjOXT5&>{^cAU_vDH9>@q0|2wX^ZeN4rG@TLR=`DMk`OP53(Jc!{oB5L9=qy## zoYSwl(Tf=tdTzE=I4Z|tQN|oiuCkcK>Y2vG!RgVIly7%DmUdT8#H<~y;hT=m?G9+l zE&UPw56EbaWGsOtI2+@4h>QdRwM=9%hUC;aauQiX-&GZXm>S4~tk&$2gZr&mGI8Mr zyC+ASpC4UW_N`TO8(XYYnY;SsCH<8qCKG z(aqK;R`E2%B)zGa)rksI$&5)c3ClWQX|}QM;%gg)!xWurZG-kdwOobvFcKr2K@Z`7 zhFZ$N7Lbx}AhNO1p!aDI0}+CQ;e##>U_EIj>~)_xxKBrnB}kjbTOR18`xP59iZ4O~ z1|J1DCFhH7Zk0_y`Iv|POWsEhxJ+Ddo9Q87J>Zbk z(iGGS#v`ktBkZCJt*Cp+22e1spYfuuV%*4X#4Wp8Pkzj-Q#UC|z%(2NwU27AB0P$+R(SO3H zqnLxJV7#3jV(Drgg1-Kb0qtV}UG(u$2xN%8%rE^d@*2QZqG8R33~5=P9pKoxn7h|q zo$;cG@(foOd9V^X0e1k^14H~N*^KI7ojJw>a0`m^kJ1ahc@SJ}PP8{Y5284LR53iU{r&KTq z2N$L=l4B5Nqy7I+Wo+&Vc#^tA>FDk`@Sm z$cKUOhoVn#PgaToa1=XnYdST|gs3DMwyc-$F=*(Hpn$hn@iU%#Wm_^cYx^Gr^o~{l z^jxf`0qwjlo$fykWqp(N(WeKp&M*BOYq$kHxdRz|p%Vx(BQmam87jT+hSSw_o1uns z_1kXUWdLA|c3pE*+wOK_t$kbPnk9xRNI2436>Bf<-LxaQwhTsNLs)lC0f|sl*@nMJ~$5xfAg+hv9_2}5lrtRCHb6j{b}0uB=o5EAYjxkBFwE@5y5NczlNE7vGgWlo8y@y&}@x!U@I?5#MyV{6+} zSvP@dH}M~udkwzcy_r7|io0_zyDi??rR4;iv0n`5)srdY|zG@(T`!m(hi>&D9vl-EE|F}2eGE!ZjRb!DZm^dSC7!> zJrE;8i3p?v@J-ShLjnSTZO#e+(R!FJge~xa0EWab;PK&JD6pTlSocjn6HhSy-5%zh zMt+#|Q46-kXLoB>E4PMrq1_y2$)v9CU5GH_Ncrx4*4p%0sUoVE7{7DZc>w1DR3q9)bW7 z`jbx}g>3N3K@dU?f)8-*tWXlP2<$v4~z6REGrj`9fS^sPP(*-bioz) ziawa2m3LXrCv91QCaB$uw)H`d2Ulgh*EZg)(whBd(|%b3$0$#Te#Z5lG%e^lR*qfl zy5A9yE*nqA-6s^yb02ZtcYql|OMhGHq2HgiDFOBbV;EFx$a~MyHXx$Te?=1ho=wKI zUqoBw;q-7;E49`>S9@67vKNmHO?Arn_2;uF|Jv+26O z`yDtE1T`p(zK5Nlb0|a_02w=n4h1?D7!T4Ruo_)bV375ar>!Jfmgs`;@MlM#_I|1jeyt>AjKD_(x%HHz6`9iouIJ zTR0sSAW(v#VEk2pwMhKb@nywiK>AT+#nOk-4*aj@Jby4~kjh}(p&=SH`H%_B(S9wH z<@AldzeVRW^%XLW{4Jum-Ssxh!rCnUKBNgTukzSbLDhRZ@9xA4n5UxInR~X3MWy`g zN2cORpxbLB|Bb$iUOm8l2SO28!GKysEdV2$TUBU)X|-5gp%`Oq#?kA=R$7pgsJ+(| z62*jSh>%yR)+*?=$x?V!Vn|22xQw7@*np1lOl8xCnRMD=1S{3-G;0o|Tgjo-o*7q%Y$2P0Rb5O}O8R&@ zcPwUQc(!_^%0ME!0{;X|NJ~{M7K>#;%XJQTfJ4%5p)xf=v)xXG6)x2@Q#7KAzoxf> zktUL9*DYmRQOS0O%AH1bh@&_uK0oS0v$6vHp2t?F`opwd?6nisE6ucPK{yDsMAfA? z<1_eYP(9l9LRyCN4k!r1M*clZE%;6-5>h-A{J`!&dssly@JEEG;VtMbJ1?3ot5!@; z*0=3%(P%2)a%-oh^33-UVcWVzyd}y@#?7!qUhA7CdPzl!Jo)5 zNL{Z05$Eja$duVmrWUiTsFpUzjCTJFX6VsWHNmDc9LKmTR+(zdqCs~eluj*Cod}@9 z`WQeYwgt$hPkq7npI?=x@`gT;#Y?e{#_%(sn*%iSJURvauY?G%Y){%ol4Db~TFZ={ zS|g#+(UhoY_+uTLv-9=5o0OH|<|v*S(&f>3dJwyRbLl(O7=APKzpM&*b9TWBVFd{@ zmOJ$ZxCl@@h%3g>0756Xh5hB|zeSy9-KTuY79bK$ebZxNQ3{S39c&es`VMqWK-%#9 z^7TGLt|0uHs6dPULmm>z3Lf_#e9?%p$@jTfk_G6m`iOt#MjT#)GX!FeAoRJ&zvDS{ z1EF1joPoB3JNiHQd?8b4SQLdWa+3LaF>iYW{6~?eBUwtrI|08MXfqKV5@eHUo|U}7 z%@KVK1PhdrR*WOZocPg;6bWn}d-s`z>!}700R)@3omkGUrXWbv~%%s zH-7PP16jOy@=C`&c@@+GG2;F;p7@%InYgGOzr=ID6$kw1Ymr&1iyJV0FRYuvNCJb) zb7PHjud=@nP+t%9M)ORy05&QYKgiaBs2q z!Qx-Z0GcxLr}J3InhLBF3hC!Y?!;e(oDC!@q~EgUk-3Muhu^6hl6YtqYKZpOinc2` za&*gjRo{o*n4p+nz24DvYvJ_K)wY1ti?8v#n}IJ=k#|5%eZ?~NPo4_&3<=un;`ej3 zU>cQ|jXUXDO7FIg&o^-o(^?`u{Pvx#TEo%(+}4EvBZD|F@?rdWTv~qCSuTNtI`2oHIs{}&`;<$6xsEZz7zose4YG$s}s(D`8L4Qotv%}TOMl2viHL7#()_RyO?JiB?8-Nmdd0x3heEm>#kh-vD8HC>%|RDtZL_6cZVuQ z)y>6L|AB_KSccBVhGkvBQRUK#5zp&?+e4D%qGGMI3R7Yle{7hc)Y9zM`Lr1oYYVg0 zH64ehNAV?6{gbf9q;R59NYMSyK_$7rBmv@;YR%{3>wx~rr61w%;P(VFd9K?IC^Kl@ zffgOK8EpacATk2u_kZJxDyU)%;!XS>T7gP6rsdR`e*;h!%2jw@8F=!<(od*0_@5w; zf@QJ+S4ngZeRUA{2Pgn3e)h5u)Iuu|`d+MLs(%wHwtnV&P2qWd1*G!qzheqoMn3N` z+ErIl_{|xKOPqOsELxPr7T#ld49lozo&wr}7*`ODXs}Qya#zH`Z^OR~vB};GW;5uB zAj2S*6WaO-E(CJ{=|2E4LfrfD607TlRbn#|+)hqPGH-2NZ? ze+1l}qB$8V5_FMNrJ*Z{flgpTlY1jF{wV&_at#JN3rsseJILGzkSGD*mpk=fG=Q*u z6gu-75{p^y;SBi@ZvY<>zyh#N{NI3CVWy3K zdg{<(BE?df^3khrIxtxgL{lnG?~m`@zj@frQ!&{s*0&rS%5;ntjf?Tt8h=QhnA)@F>c!3b#zu?rqnmaf*}rP#UWXs$hjN|8jk`9~N@G@5;q78> zDBRK*rB;`~K8pQ5} zs80b}z29e`YXtgb_6_2J`ywh}p+5&32;BjoA|YGIJO`LA2+i4!z%cacbw5Sce6bdE zDzoT|uo@&vNBbWtB_4YeL^lnE`7WSP58|IPr6cmV-D{f(#AfymD{~*s~$(vX% zAl_i&;1Wq2N4IC-B_mxD!pTAd=Q9##+9mzJSQ)B|0RXkA!FpZx%$EljZ*`(pr~kwL4O zHNcLL2r*b+NT)h1Ov!2VI)J}rIn{riFBmMEh5)b*1q{Fc0}D}=XbQa^AfRY8 z)qlOuI8bwWCs=V^k$4JLru09DVJ!m3vbx@Xl$@8NJeFfn_lR7v^a%br;9@qhu%Wkh zNSHKGW0F@DfjGhEe3&=P7f|ukbr;O7WN^BC(XF@dnrbq1wS!_iwhvd5hQZJUYot=S zaNohS!eT)gAHjdu$r^_jZ|v^adbG2$nLV_4^@{D=4%%wgs^y#Q)f0Qx*DFcMuZbzj~ ze!l$8^O-2D6Mq+m75A_SfP3aEpvYJel6b;>!2#w4Fb6ntcSHr>@ShNy1fA}ISqq5s zLR))&zh0o-+1!`VMb&b(GVa+s+Kv7r9*TNkhUE^!LEGzWqp(XAx1@5gR001djwHvDQSW+POcwEb zunsj_SP=F5xZ8ggyaCPI0*@&tDx;dFy!w?!oWPjCufq`?Ka77B?!5E=;un}5QX3{* zD_sdv{EW}=j0DT8zUa}K11n@7O_9ph)5POCQBbB&_+m_pCh>wx%d7$oEaV-VL8l+b zzZp~o0pB7BBvF|lDj?F^gRZAixpc9qJGV8?$qmk<7x0il*weW zu)@+i`0|_gH)F603Kmbkm^Sq0_?oTLE!z$I^<~&%!0BJ@B32u^aBlv1K-V2W*GDLJ z(8V6ml|Yyf-URU;vFYJ_$t>XDwTk%_(>Q*aFSFk@jNh`Hl(e*;8^(1nGGe-M{Ywn% zDFgpii1q*EIj_0H%tyKYGZ0UFRTOQ7O(Fmd-|_aCX4-#$KLGkJp*f0t8))9b4?;~J z>@~y)AwUm%^_;WXArVQ{5Ik#WuLg_{c(Kfk^0!$?ff*;)YPDTJc3@GxyQ903WgVzS z&{f-Bb8MOB`(~PsN8@{}SpVr}eh79o0=2vo7W%>3B2b3wUBuN}Gbm+ajrNzI$Qy0I zPDhs$zYp{#yB#qFztI?j@qYwjr# ztA5O9C|0=}G#XJl=kEl7iDJaL)^1;#n#T`lhQ4FtuHMAXP1A{}PJ@L8P?@aO$Q$C? zQ|-xvYkTpktsJ@W&dbM@c+TfUP)X5*tz&3O;tH!?@%jt4Yyq42t)&m)KcPNV%aeIAMd;|)-oK%}7l!ot`| zgW-T70gJj0=s|b_&CQYB9=7v4guWnH^cJ$h)UDdfrD&RNJz!t_s!KqeJ5tb|D-r;gdCx zcmo<01WLH((Ap#8l><{lNo#V)g$HKqG>W}l?Eg>QGdDG+_pWql@nF4Ig9b!|W|lsQ z-;5rC^}7SQK@yC>Odcbn|jLgMkzE!Riuwe6$?r>^Pgyz!6%E9}G%c?`n$VXV3wH?;G* z8z%jADHc{P@kui`JgNe+r<&zzjiz4FUiIF8h{`dF5?vmK82K*f*Z+k&*l0*oqBvxP z@Hy8&1Op7FaNe2a@uOR96%3a>xv5^P$Yk#x7ZQ0YS8CLY1%Xy<1`^~VRET4mwH|x4 zszata&EZtOo{IH#Ku4hfD5ucxNBk_$7HdQO2Vj{WY^^6G(PKjitK%8Ea|mK{19<-z z@bNL|Y=#Av%X$-z1K2!RZxT=%N*0i7!>CP?UWd~Gy8iZ6+r}ljV5COY&d=78D;Z{$ zJ5*|qRbx^SaGupJ<4;}a^dI*SyFS}GI@Q7VDfhhM?v1;ueBvwo_ojPilAR|nCLe8#L_qLCFr4LtPw&9ct7DfSXbaK@s8;0fD~g! znS%|EEIzeThgn!>_#w|dandSi z?#o^G3#OEbf8Oy7&s_wt8UUCidO0jI3C0jv`a0N)w+-Y3CKM!zv1I`d`UrsyVdTLD z0u43;z?IMfqn_xGrK736`zei1B#A?2ML*_?g20J42;z>dyqZJ@4~qZ?0hkko{0Sub z9>}zl3;pN&&+BA8fCaOp=_pij_j~S_z6^5b{q+C3?yVeyAcG2N)mYkve~&&uFhP(J zu%H3h7w8wEJt14b6Zk?hIW`n+GSUI~5B?7Tgq9fNL?jmKd=nN@8L<5igQwXFN^htesjccaYG9>6-@7VcAaUW5aP<9Viu z2x*`~@XGM5aG5YO2-69b0!j`t6vA5Y3kPWbKOw+@hN&01Vi`74V@JKz!4Sb)zizn3 zaz~vN3ywZcQCVKhurZXH9h;h%l?2yoDKXC-5$L>~B2gL*`#V911AV@1ayXG{XJH{R zLHFovp}xP!OFC@cQXk&{{>&ds`KrnBxyEd#)rheyW0W?HcOA?rK@Rxar3dj6&{I8& zg$8~$oWi+fX=FMug|B6cZ=6Xe*6s_hIXc|kwBoUa&81kSIDBks^>Az`*F+COVfOFV zZaKJWx{$x{`j_lTnPbVu#zRL{DVMHZu;*yt*Z*Vb>r@P64?ODfnhPLi(7r+UPFKbcUUtDHF|VLk zJnt3DkrA5Ov9)e9h4j!B3oYB>q$_sst7lw@OaHX=IOU)x&LS=YPo59VHj&M-vi%{W&!y;H}I^4w)Z6P3zw(3h2@2K^!bD?dKZ zqA&B3=)rbKlwH!p$tiMb8qj|+16%09YHC;|1Z(EsAo3Dn8pNlNQud#OTnARkzfZk=Uqn3*1AOGjUR zdOL;gNeDCzsMBmsru0&E3i&}o)L+`QdV15;Mvw<8^5>;pfT`2~ljuOLITyyC)>onRyms3vvgDzdTZp)grF!acor5XGe^wELM58Prvvw^}99xa>s zKz4``2veP~EE@Lr;IC_n>U`W%rlti+(ZawsEk@}Z6m!o`EoP~Q51PsiB15}T4mRa9 zSU(oy_#0L812lS&Q%vs{o^!<`KNxuqJC(I#%`_N$ndg|=&YjT0lZo0q;_?dLR1I(SowE&9cI#U&Xu7?snlRB@ z!Tc$e$^{GM>S~s2Wit1gu$nz}W3@DXL9R7_s9KhJSh}t)EF4((Mwy2Fu5x;+o@k!B zWn?4+Dgg7?fNbiM=mJtFHP6;bH>9XhD3pFPjmFYGxslvgg!|V1ulsyzWN@FVXyiWp zWjsPn1Ku9u_<_HHbyzU>qZFTYs9i=FJuK3}Pis zF{>D=`=^_tMADuNOMMk+dlgd_M9AY8G7!{D-<4K`=v#WrMMk0sqCa99A3| zwxeLt%CKAUkgY_~3Fs7ZhHPnMGzkltM`S7vU4O*(o{T(4y$Rh2d!UCnDhasmtGRk_#N^RSMiV@%6i1;XgHGD15>joiiz#$MtoLHV=&))Hscw-* zW6-X{DXf;aO_z?2L3QK*&-|g5imyOd1Kt?Y4!8wzIBez%wA-3ukylPd1> z1(lbgld?&f2ZOu;dJHb2J^_6K(8;z;cQD4}gYQ@UE3bqtK;zE}9B>c+nbt=;G|1F8 ziWbD6j><%?UwW9j9e)IJpE2-Lnc}+DSt3f(wM8fg*;) zJ?{i@<6#Rb! zOOH}F;HO|MjXl`a@hllgU4&TgupeicY+*r|kScWkp}sEbZ^+VK_e+gpIx5s=+lFS3 z#0@7?tk*RUZ8*5QnNNwxg&i|tcggzRqr2xPXr`T?+p()&T5Y4GRm2Tyw|}Th7?fm<O=KKumG{OHonEzGliLMb<9MpOl-uy z=}nW_4Rzf~;m4pvN+GNN%Kq(!8x_&6f9rJ*bc-@yX|G@GjT`w@?yX~u8Jl;KL)~h_ zt9Xpm!_PsD$B;*yq9iK@7u_s4_wU@cjpH1DC4ly@w(z2QLQ{L!zrLMq`aX_HdjE9) zI@ps{N5`{qhCRG^Xr?>C3e}O>mtI=I?cK1wS}iJT%E;oywz(B-)Wu8xMjgRV2Yq<3 z7r=7eCY&?LpThZ`SGyvaWYFb6=oj>Q1ojImwV#}Bn3~(HmQ7xV|0bYYc8XQlHeb0B z-Q!cR3P%9s;{z_#^jx&ZXVMv1asGZ%XJQ5XJ#}@yHp+`BSWQsPCzGSCO4`$6EhHK| z2V2%?|Hs2Nl;HmQ|8V!-ac&#e+VEmP5FiK;Bmn{g7LZHsvTX0Gl~&TKcWKpovx+5K zR^O;??l?;CPPr*Jx(|(iMqEdZgLbX{tWS&;6N$c<6Jo+epM@xZvZPe}6cikhjVNHee{L#o zk^o+(h#NPFkwjPu96W%y52e90!ph-8kw7SL@d3bA zYEkLNlR+sJzTx@+S&N85t@_XE-*FTH=)4dB?3}E{s;^W(Ba1LX4hRDpTkoG8|F}2` z8c-iS0ahfFb323plObcsMHsryVFVVB5P%PO-%NmB3hxhMH%^pSB3ViJbckF%NgA>~ zEk&xI{w#3ZG^E-Hf~{I(Z_B{0K{loGuOW@UUpRs}IZm#EZKyJlk?ec@>T|%j`vP5J zf1WyjM*{hv_+||@#$_uM&sKJ9Bc_JE=d(f5IoZdLPktrq^9baqA~RXk|M8Dz*rM6Y zm|{RrB*^?&<~1FbUvmZeciZ?!#mB(k6nnq{j*tvK;yxPRAIu4g$@8~B7hrZaJfHo} z8P27Sb_&4LGP&I_6QOs8bF#Q%nGPJ&-@x`sj3f{b-a%nFR3eNk-!Wxa5d5kJ{uF~z z;g2y{r(+MnuwgK4s}5vKhFp=cXfSQ+8L|gr;sD`mD$8DAnBbd_LXP*76ObKP|Cz>| zN_)mS=dUr4CYj9}XDQGEJEK=7JN!>AD$DccL;!&iLX@BC%%5jOK9p>a1>a#ro_1m( z^8>o^1|3pf)@@5m8sTE0_8_LY!uo$8O`NgT(Ej{64|KGpC8 z%uk5yI5%DxjP5V=oVPGH=p_5f)=2ado4;s6U%$aLH*c|HTH;wVe&moI)?$i!@jlb~ zsvL~!TJZ3(cE>>)0{soH$|FaU0HMK%B~{NGBQ!CWim^Y!S1Qb& zKUWpPiE@QTV{}oDMCGGe2pB%X!SR0bxY*6whL6VfTSH@*u0kHiX|}y(1N=ooQJkwn zVyvq>i6%C}A1zH6qm4oqJY$C2T5RWRHS57&?W_wUbNL3g2Wz+wN96A^+#&3D`4$5Q zmjP^+u_U4*2_j+fCi1do{V^GqbJerRLQ_{H=ora*WQ->A&5rPuka1Nw;)JhN6LNSx z>wT#ixY5Es^!o|K(8FXb^r5s#Jxqa5l|M~P;$fH({sRvci?9}Ab-h|n#Py+RMmVIE zTd0U#;92&f99%D;#~)oyY`pqvxSK+t6th7gU%wyw$btIVgsBa6qjcIdA|c=&1uD*d*Na3vv60fD zp{OK;#ZE1+syE%_2|@(OD$c~;5rBiZ$sp6E?0tRWKS9GrzDMrCpjaA!(0_dv z2a^j$zkNI|$*7hQ)fbCR)&B>XP9YMSGmp}B8!@^t-H-!7QYn|u6vA7@FkBK0 zoREsmzI`9>9pHO&9)r%y($o(wFcCmkV1W@|;q?0~khzyMW$(GiQ|1HvL1Ht8j-34r zLTi96l*z)(7|TgGhG0B`34h1$M2FRzVCO5g5@G;x@_Yp7v|su{1b8@KB7gV72ufRA zUE(R>G#sd)L-+U%;uo<0FSF-ryEt$tHcD)x%XAWxb`S=n0Za7^VyQ){o+rE>uwE8+ zXiuYFRIvKriffRi!MF*BgMe%u8tR9_)ec@t$kzplIr)Xq*}tb$)f57b9y8*(klfi} zrk{tVWs!K$Kd9%^uw48&>4MF(8~D#$bJnMX^`gcPtXq&ub~>3bi85V;s}jG9aXx#_ zzxJm`E{VkF47LyMnB8fHW)940>0C5D7Cm&shMCja+OJyD<|rLVm_lH?7X`vhdaZEz zwpj@538dVW8(W)ORWswXwUB7;3CG=#vIEk#4SVPJz=dizZN<4wm3QpBes?0Yq+`zf zz7oK}t-&Th*)`{PL?Z_iC}YyuctDpLOP!;$+v}K2N5;P{9)QmsJit~5wmzI23?1t` zrdmh}1iEK0mXT|OD4BPgQ()=jeR5spKc^920F<_jIjiq?Wxj!r-)7KvRsu=@tfS*KB%&~+fLHI3n zj_v2|)N~G{Quu8G^=-H&naK~7aDm~zL;OD2NG9)uU5)7}_RPZ$b?AH8|LPBlFGCga z284!RjK3^;h$liMu5Tv*eWv)E*(`Hj@UQXBfbgz`qa)MSM}bcX#}M4ziSoSl+voKS zAY3et0zZA^K_{wJ=5LC{flVU8fT9BK?Y))K0j2A2-bLg_g}2?^>o8!mo03iO40;41X0 zYd0+(mBgq$yl7N-Kb&O9DGa2mYc8KtPEC7*@Lo(ZXnfK5RXA__c`~}w=Xv&jwnM-_ zZ1|k{Yb@^nW>-k0VzuQ_{wDz3>#%$S0d{`kUHEs@Tq`cI!e(mgcP4*z>{d@u5T z{{oxu;)b>LIbt2-y@cE`e)hln9rmyI(&#%1{qOAm$iiSF^Dp=hLG=>7=vA_s>BLh# zo@1Lqx^m$_So2b&RI;38%l6@bgbY2gvD_O|jG!}Xcx_1E8BaPv9Uuhh_w=nzO4EaM zeNg(9lq{zzy@N}sM1F@IerLkavR$%JDy{&`)y%^HB6O)|lActL;m_WB$B?^Ap7 zbbDhWQ>t`}5_y+vwF^pLdpeP{s;_qC++tHPVc02yTo>*vmXW#N(;W#Yc5i1?ZYfpl zv7f4K9pzj!=(aWkQ?lX9s ziQSZpT3++@kU0fTPXp;J{{Z#@!h(Wnq9X7>l971pUn9aDQ47VbC{23g4Qb0x?6;72jB6L-`<5f#a@gTPeu&m&d<~zCK>B8N`^a7L`+~7h&`{*I)cN z39(mW9Lv}f_p*P^{Y{oCjtz&9;(XBW_s6Ny8>IiNcNqsvh1x27CvbH-Pp~loa3K9b zTusXK_k4^8NK}GMe+FM6EtV zQ!^*+U{h`5F@-&x8Uuls{UCc!M^Yh4{O!M8R45bvrYoWqiB^A7{Yegnf;f^7tFQRc zuDa%)3g;U-pu$nT;?wz`)5GlB=I*eGU zAkumfd!Rl87i}cO_j?%6=P;fHh(Ba?wtO@=J_-xFy&A7@E!JGDdHnyE!F)+BkS;t!Zo&YTS$^zQyg7|6bSW=!K(c~j6rHR zGX8$?CfLxKx1kmBpUi2><&bsO*IA6)r6NB9@gqtzpEG>Lafl}=F(F|G3wDgD9Xy2o z1J{p^-qVB>_S>$0{pLlRnmgyVklyXL0Du6+3gqe=Hmtr($F!-`ss0y2m}l%bnH2UA z2XV%9-QpAE@LW02w)w%sqj#=b;F<#qFTLmP4Lv6!pa*iCmVQ?r*#*C;0F>NQE?qu) z!a$&a<^t9oc$$OTF*lRr;#D^;G^To91nWGTD1UE=+ztHpM}EOk2*ZajZmtZ3jm0Co z7wp@-=yEwUtz+hrCo5$qVrPpbYy&RX`*q4Z+P7fqiKAPaQ<^bj|LwbWFD!Ldf7Kih z*+9~XDsBZj>2~Y`uOkmZa%=Mdg7Pi+6y{;#%ZM-h9u^f51{h>Pz*>cbw6QC=0s-8P zkf!8j_>+UOH};$hI|s^k0Tc&YKuT8da|hx3!&AtUGHNGM?5fz*A~O=!Y*2?6$U>0^ zvDYmc$T~68WBW@XrBhfc90l_Dy-`7O$kwhPxj#w6bnI;j6L3#W`Ml8i=S*ho^HD$m z1-db&2B8V(^##mF`r7<%p+6es>y{w=2lk24*X$>8T!q7(olO1xB)^Zh$85M0zS-JN z@;^M`JDyiv>_%fk$-_yvx){4q^ntaFKHwR@54H0=Se8BE--y0=)%Gk9o%s3bKUlxf zAOAgUuL`>ReiMF(7CweI!847%RTtrf{5?VwAH(D`cmqG%^MiN2dHzgW7O%w~598+V zfm^G#JFdT{J}BJBU&e+t@j8EK^|7I!lh1Qg#W^poQ34~YlM-Lq>;30BJ@NeH{P?ft z^39z@oTTiPe8Tv|oWGeQ0NDV;d4sfq5K z(_p<@tYM_rH2fXoI_mpor;KcZXMFG1OfSPv8?&;)Zn*20`YwCe`d zTi}86UKM68l%X(;%!FNJ2oVB&%;&aM8?Mis7_mQEMl7KZ?ewCZkD%FQ{9g>2@dBGm z%mp9wxvgQ*;xwoe6aC|D(yHsR0kfW><$4c)O_$;wTX|nu+k)_?hQ9|Iz$Yv|^F02w z>YUs!{0Z&UX4wC?!`B?gU4O3mnO%5UXgEg= z*Q6C=_B9@xWq-E0@C#Ws%Z35hX^JH7KF|+bA6XXCX3 zef~r=g4Pjy|a>$1po%w)@uHfJzezV3IZ1B41Mi{*=~b z7h^G}&M7m-qtoY1EYpCDM4Y~81+zLyBB(&jDI}z}kATy^rr#sJH?OYYU)$(;>ft=b zF`{F?nA8(|qU-F#NAvuoy5M?<>)sIKBwr74+VfXT&cfundzLLvp9d#0E@Bj$SfuKs z^kt~FKAhWXU8S9)Fxe6{u|#my)`umJGfsV(z`xi-gFdysavnOrxAn#w^U`^}pIBEX zv?s|-vQcdSbsZ{9;UO-+T>nj->$;BOb3OU43609B{35Ly^>utg*gSfYujXtI>g&}> z-kj7i_4aGLIaRsV*pW9_S2j$+)_4;%s_EDW=9AgWFQ{=QUNEKe=PIANx&>zd}I9;=h4WQY0ga-BG**DI*(`*+;!pi)pwZuegBKLsy72se67}+ z5XmX33pOOqcNia|sc$LxzoF{?%#P>D>l9jFkUuX-`PXvmiEeljlP{nI3@ zz(3A=%h!Bty%!X490|CU(gF9~Xw!Hwc(7UH8sz=N>?Kvkdk|HGkZ>a z4}{yNqyH}C)YqPar?B=;MpW*q1VQU=M0WD$4n5)huqiy_X}VWkPn}m^Wj%ZKRXD}h zvfh37d$3ik|68#||6@|t!h?nQ^sp3^RP>3?XKadT~r_xo_;h3=h)n?A|6w^Q#W?7V+|y97vd zV?d%iuU&GXb_v=Ydu_YIh1wO+ZuPb83KwcuK)cn~w%ah-Eb$l&+EfFPmJK@fA+{{v)?JUO7zrlaWdzeYxeH?{Y*1XKEX@s;k~7) z&k9e)Bkz0Bpyaz$pKOP0&M<558FXOs{R&1>#PiJ6ejx6Fj`8ZXa9QH*V<&3wUO)bQ zjQh?8g(1RC+|A9eEM_6TAGxyzp1To7@T;QE*a8|6Hbo;(kwa+YPQ-lfNYb&dx-Ohm zTt^jA^ZpjiFbJ3H@?ZAr{93>HvNfDq!^$T6>g)H z{1t!LjvKz^dBPJ}`km)!>eHV|J3wwgNlyeckcR&8t>RZi9p~&$-cz5ufIRE2d zPTcvrqn7FBPae8?|N2|jt(~>_lbs7cuyXgBm22ZxvH!%0BfHCGTj}-wzG?ODd}BJl z;i}tOE7PRltR?@;fc4;^qc`r_a>u^WAZZ@F|H+TMurww=+o?#yOE>P?e7LJT(7$#2 zw*Gm|rD&;V%gO`0dl!r(Iv0-aT?3Dl(9k!&L_C8ye?Sl-y1KTpxxm!@@`eZcHZ5K@ zb0lX;!PN^lzx~-wi`TUjQQ$aD-nav9pTeAlTLu8H={8+A{FE<18!y zQDMx6+6S2c5BrL1Q2ZI>d^UoxY%k+0`P!P~-v>Y!fr7pa z_HV3a5lqJP8~@_(Q~dayy6ochC@I93E`QD7atq9x@mIvRkl%4T=K$M?FgXVY_+YsB zhDb0(uHovS@M~3VX$R_I*z>;b%A;!T;)@;kYw7SRnSKod5297(wC%40%;Jx= zq&_}9HC<6t6~gn|M(4%Ma?fmlhWno8kHO6oLX-}EtAKjSyhQ1~yrIyKPwy=uMNdpN zZ7a8D+ZJTW&l)>A7mO|(i3gqKE;5Ay+Vm5+kdS>Lr~j1(O+?!-r;@w7uXC@eWOMCK zp(9_Su~^^6O}U2uzxoV`P#8Z({tf$yb{0uppC`xws9iuDy00brbPx6ZE1&7QXrkxvF66NV$dq>~A{t}8T3A^0XM}tI8DcaRnOI49{ z4h-!ylM@|Zlv%S+q@7cx9o4@DY zh;4=+e84j#^WUE{W{rtWT^9?9+?uEJBUPoFaUkr;0C+XfvMZ zANoQJNL7);M>Rwg9@vKf-AluWl=8ylU_yO`a?u)@*1Np{`oeG5_ z{+WmmB%4k9?;b%mYDmhw9JkX53Q7bB`7Mw*G?YUpa!}2U-Rp^IiqMNk;+W$l<2!{H z$YyrZ@MX)70Q6&ldQn*n?)ZB{QPj_nsHTkro7a&t-)jw##W4wGu)VQe6ww^P1QKCd z$Ps>qAoCk6@ypm3C4gJgAou|}01jh41u;uJrv~3`);h+*NJ~!ttVh!Z73EHf!Uop- zN;sgThI%5Q3^M52pQxxIoBUJm?#uzjC8&*!El~ANGT(`HxYFR*rwc-kG*m)**@Tge zpzh_B!pF%*yuZd@%>Q459Kt)H;(Taec9pXk#))W0Xq3G%rzH?w@^3T>X!Z6t8({Z! zD2+mbt#3i1aaN+ApN|TXWG#Xc%3~j0t_O@<9%#r2Sr-1#9@8B~9s64ue zHl@&2%vSE~!&%fYch@a{?~BjBp}_Gr-!cC0;$EB+4WIY1cVZldT_kI)9-_oHQdl&Y zNH8x2dta&etdb#Xynt)VnXzX)K((sIzNDw;$2(Jxhlm= zF=1>>uUH{f*(IVVbx1-zj6&e0sG%x55k;oT;bKK3{|rR5#8bfBQp1{MEnEmpnn*1A z6tHLX2v7xBnhMtAUytu3Nt~-$EC{q=jU#xxu<$3>Kwe=2)y+fz6xxz^7CA*&8gvn$ ze>EJo6rTS%e;y0i`7Iz?l5to8mDpg}B`-R)_5!4Og(m~tg~j`eN@${KSr>N$HEJV5 zy*B_PCg73}0J)Rxt3QEtaR$%BFED(Xsc&NZi|8+&+{XKl_pxg%RuM+<444Q6Qep~9u;6d93@F#LF9OssC<47)T!cY3QZt}md@7!L-z7QJ5xn8FZNK>2oU9v1HeYqrbe?)4EyXi${~R@MB|px1@%ZPT zq3IXyNG1c}cfOaVesV`B=&JJ!-ha6w3x883kJ(Tn^Ln-A$>c!o|bGyEarBXBd%F z)IpN05?SsRbScu(6_Jo?GQ4HwD~`Ky)rc9IKQwdemV;}%$)7Y7*Fc%Id{>LE4!_~D z(RIUKAk>%Y*s^=?Wr=uPo3?eaCCTBIpx85~qD4z{hO6VMF>UGSx|xF&F|_lF2bVD( zZYT*K5`RGcmHWMY%q-^bMqg`6k7HcI%+}v0`~g+b84}3-T0lYe=Gl*6G6f+F+@fnK z`Hm)O!OVwUF>E0a4JCj8ah~mgmu+m0!hY<3gaZ~lKby2D% zhHC060%wtcbUh$X0EWc_hGW=Ah=`je;`f1v!TN+8XD$Qe=b2W<3uFVTD9FQx%x-m7hZxdpwmzXGzEAShu^*g;94`T|hL_i<<-*30XFn6XdJ zh?fGllo9a-_#i|@HdJquE2mL_h|x|44BBSk-dDGvs0NbhP^dIq{UHW`LM~#6EuRhT zu*>~WOiWgq;ipZ`Wt03_SFC=dKEsw^AHH-90`!B7nLi zZL{A^>0^(V%gInA_4pH|PRISot4)%2^0HO%obH>SO#sd)ql6_f(K3iyA}h+5HwWVZ zXY6YjVhojGbt*OhR5lRsR-rzdj)2HHJ0E>xBD%Mtg*3-jo3ZZ%$+~a>$)FD;qOV^N);0M7^~&7w+oH z#^t_f*swZtIb;pB-Tu*?3oBBfgkr_rZLTic%^C1=`>y*g+f)q5GmT_CYBd8~WJ62Q zb5y>E!ant8@y+CH!w!rU^T}n%pKyP2eW99Ufl0-QYx$`x-~$QOS%N(=NdSHz{HYeU zvfbrq#tbF;X>!xjuACjKlnOKy&PR)Tse9ABIZmpw{2`ir=7Hg1M+*t5H$K&g)Y8$7 zX)$=&HPkM6nPfyzy!Sp*a1oC$nFdiP`7dO>E2x0$Igv!EmjM6>2~7-osT>mQ zilY}fkri`i^*6O_Iu=iy8gdh=05qC~*C2B-KGYo#C_;X=PK%XtIc}gV#&lq=xG_jl zcxc`7NR({}AS2g|zfIhO*yj+z^85H|#Hlz6#!W2%32bPai1 ze3oI9dk+6@-Dr8Bl5czR@#%-#FrlbYpc@3mC1zdr`db%Hw`027Gqk$9xa8peW>*LS zl%2@o5V9B9KJC}yL2{7g$T3~z^LVLHVjFjCOno~!7ymjRa2_b|{XUoY{#sp!5_`ON zfNb454}lJD%%OAp^<8akOGa!#5K!PP)E3Sx*|rje$vgW?A$6cV|F!(!-dQ=@5s^|V zgbfEUR{7@cgZGh*@o+#(Scs=b&LgVKiLNoy+IG?IwniCMAA)gYYev+f2U4NRYZyfj z1_l-u7|v=^MO{OgAoc)bn>+q`@lLD{7f+6@#3j-veSNfiKzz7tJU;K&*q0qXajvRM zKD+Z=X7-=0UxRe-3Py@8d091LiG^#D(vNK#E&}l%sqk3TWTiHc`UU z+6*@p>$MfZij_AVaouJ+7GCs`k>#qSAUTf&*X*3z-GV9B<(+d-deAd_+KWq55{_`= zG6|MaaT@@VD@UA}x)e9djunjr&Bo4`PPH`+#R1@`jm*hl(QJ-L`KGpOPjsYle3mp4 zHQk8&p7+dX0&2Gu3M9F-rrzHA!H12>+sm%jFi+QR7s0 z@4vOTEhD&#SFT;PiYkQ}Do_TBE$i00(Nr3sj8REd(hoHT!pLt7(NvTkyJ}G;p&LQT z8fuf>JNC9Tm4Uape*N_;962up0E_nvDG*LllpI*M8cAC;^WrP(i2w!A{KBF zs0~wWc8wJ5M-lhdiwz^J1oU#5D$O*CYJV-Rnb>+C6^(c(ow9>smriv!`#==pbnNHVJ0*3_Caqv@zAN3!WfnY62vm#jxEYXq;PZd+4nQs}_NhMS1m*$!E< z!pLJRm72QZy5_8yMU|`&#Tn%X0ZY}~P(W*L1u&>+2cg+?$4*sN9lm*S*L20|D~l%5 z_hB1HW@LZ1d+mzdD?%y)WRR0{^tuO+87L_kOy2P@Q2#}xRgP<^mQ1-nkGiQSGv+4K zF)t|s#@gMrFr#D6*%|ah<5vO$;Nc0BU9om>0xv6WU zue@Z?N|>IdEgCgqeQGGSWsx1yQvg2yB~*3Mbqu>)-f}pl$K&Z4M>myAwjmn3XRlh0 zq>ps5W%;`H!ImsGUZU1-$GqN4Z)mGDb*x-d_8?p72X@3`oy~Fk(5aSU9w0^Fw|(P} z!%p|F4VyV7`0#j!dC(uv6mA1WYK+6FP#Z5dCr&-X^GzBE=Wk+}M+@gZy?t643C!v0 zt?+7;EIMO*Z}-eumX?!MuW@Adv`7>c`sD2Nq@bnS8@scXNv&3xD8eQ^y}Yd{7K*pp z*pQRA&Tx_?O%$Wgzkn<}@2xrVMW>jQlvIGCvJq_0Vk|g6VPx7?tzNZyGzzmoN-_re z+(5)h8E#aexvuTkm`Ftr3A$v23Z`s#cXm*e5hkk949I1Hp)L~@{z=egG4k)9K@C#w z<(|+u{z~pk)1>yDWERj6tM*s7w&uNrAT>qIbywZIye~;$>mBL7D~t7Gdg=0%7=UG5 z0oV;n2u8fV=g4PF6!;9rk|;eLu%eP^H#gt+!G|7gL`loltN!x)jzlt|1Aq{q)U12} z@87?V?*W=vvc8|@c%TgSfql>)2Dgn<(PU43O~87}&Psf)Q99J$fcN`5DJaJU)0VWl zI7t8iGh|w_EFyW6E?&2?MGt0*(Llgz*0NzSl?H4_dto4J6P&3I+(w01&`N@S38^KW zNw$uB;#0@3=*R;(!*ypY>B+B#^XcZhi92N6Dv@lvzabxPX*d;?7%k;HA4~l?&>k zO)Ks?cKt?&1fwWC9dfY( z86X@M#B5S4=s-C@9DrC_(LT=V*Cu^6VWxPGn|6STluqu`-(4vm)9P&Fmv zD3S&SXDH!F^o5snz~Bb-gM$yff2PF@ej4n2?Ou9T@3J23%o5Y~O>41HfLs1lD4)#3 zajK=~TXgR94;(@U<=~=n`L=B|cHL5xX9l+Vw5F|340fvugn;?kPKr;!_BZQ1ndBXx z+Ihw^>=@$@r8H3D{N-~BzXmj&e}xd&fU49!5TN7b?vFd9c1GpR`5P zguoY*Qe9KB`NJrB2mB!eZJ%B7uhquf&vshOM$2ZJQ=>?}AM-j}^=O8KP|G+ZXKg8@ z*`tr`v#d%2cxOPyQ8EcpF}iYv*8A=qNzZ)4sgVqYjXQ=VMAcK*AK2wZRR#671lT01 z9~Ha}O9sto$~1ey{7>jwygy+!cf9LOTNb9Vt4aX77Bxu1`CdKMKlJ6jD=V!YvZn$4 z9!iPgV8GOX-5jY_AF-@NNK;HnkP`Whqj$|r_ZEfch~)ORb|i?HSUeM_b)n%}tckax zCKarb7o-y#E7l!f%lO_Z2ajXo`S9z9Tc2c;oIrk&%XZ~ZBRU|K64M<3E2UPL0piW- zwW3WyRg+NJcJzMgz?KaQwQhg~hzzhfJw|6uYwC&u9zsp!hfkm0L%th}Fz77PI&sIg zIj$VA=d=b5QABmOj77Ewis#w#-!$S(PqZAxxymqQn32_Y z$7DmAwS`Ld$`u`XMWaDEm&pX_<(KwMH?*FPWAIT%fx3Vyr2#Q1$c~+i8;Z7jGb>|6 zV)iFeZsO4<{W*hQ@vRkS+w`qnGbbqJ)qNTpE(jX1b362R$8M7*hcK ztSJH=UD{vH#W5g8tE1!3h!2p@PeyLk>41am)a@hZhx!ufGY2CQ`{3C6nV{91$%bN` z>BNqoC+L?R{3tcLdTpXv-)s-&%tR!d)98!eIxx+QqJ}U~g$LbDOXkFYi$gvfH}c7J zv~26;mwrQ~bYs9>GQ)!r_w>E_h-@3~92y=q0-6{PIp%aP)9)R=`RZMEqINdFa{NAV zJNX=|zyv=VW|4jBJ!9YfImL3%OgY#*frs&DUnj6B931#@)QDNDc2nIj)-COZwGGhS zd8F3Ii!B>=R8VKfbdn?SO(N~2xtjwPfmjq1Hj!*BH1&zIMcOZV#@-%1K z2$nr)e83Ne)2LYt-v~|2*f~d2;>k#I-SV{K1(cAIpL?j(>gu)_a46NIQ7oV&K`XPK zg^0)@IAKU9uE+>t3B>!?EN=@3Q9m?b+U3FB(7@Q8OJQ`cFyOebkzk)VI{v)4lY9qz zjw6#?%&6!Sb_$6>cu>_pQnM|EzbWVQ!O88Dl>KJJum55bR7;eJ%N@Mwc#`x1^Avf!xgA#n>GQMql#~u<%9r)|XXUs5*E5`W-lss%zKH z1U_6Sd1NCzpQ;=RM_b~O98cL!5~uPR0=atlhaIb^mTCglmAhdT4K=C?`Ep1jW)>KX zL?(vU+60{l|M;AgtvM&I-97*lM<{HpTyy0CCyWWe^bq&0SMMsr+o1IBUAiGZY!f{f z9|G7n+_Li*qv}{Z5=#@f-XftDFnR0co?IiVZ7I-IgD&`d&-e?-C3vJBrOwFXD*>NS zoQ@M*%eWY&_G-iv&NNke^HIPT>lg2Oe+C7*!sgnAODjpRjuKzLtf@_kwiMtItdtIK zNt;1(uL20DDAk(Y`^c^Hu^1XsWajq$cWzo-X^E(F+T*!^+z8GSjqYg7s)pK>hwtT|}9+n2!QH!yO20{%ah-F_HW-fm5zxcvxP)s%q0l z3ax-AwbnmK>4)B;OUtQdVPl#a-%a&iZHI0IgVs6RSk#Z_X0M++uP_a4+fNu?FuDZvT z+XJw?R|>(P5-KmH2~$$+txLA8Gerw!+&kK|pn|%xeOo#k%ZQUrr)i`IoPY{x0U7YI z2{w|*CSv0kggr>8&fJ{i~*-#Eoc zHEA>E*C$RZ`eK@&D8na7j@!1ciMLL>`w=j*B^DQ&Hd@F z&%coEPNCk>vA4Hg*-V}dHF}w_X;~K?rSU`8wiFBH2aj9y%yvoD_3NH>%~f+9Y~^P! ziqT6CwTLLK(drVwH8six3pio^us4fG5Hr5@e7+d8`ARjFC2G2vZ$BsIp3ib!KiBjD z4(LpybBzF~NbFL{4c*h7P)L(?JJC7chAVzXKAS7|#Fd<(cl52;oghul@}+XJdB@Ao zwk2^+h@pmpmWwG6;81i~TM|Csy{~hkON%Jj^ZtkC^uSS+H8<>DxH(V0X%EC;vIZ;d9bBL#TM9>CN+AwljvEy9Tso#l?4j9?(+K3wzL9|rl%`RI zL z$V<7|0fbgM-#@dUH>MX`nh4R&kYg|2(+IQHz7p7#e*Aq0c4fjDLoVjbUR3TA4Hy8( zkD%3K$@bP2Yd6E7&pLgVDrn3?11M^ayhw*I^TC=tSV^-M*D=Is1vU}NQ>QcadLA&+T zeM8J_+b7&DdOf+UE5qU_C0DIlU1$=OeACuT+aO}J5x|5vJ;P2J@9dj3G@IHT2pP(C z?cLXvYeD@QEuzRy*YMUgyRf?s%i6>HM>8^=wRvcMhRB6N@AmCfN)RU@kl$kVO*3t{ z%l6o?p+KLcGdOPuu(?H>;$bt<*+0E6-J?b10DMQmd>qkNQL17kkJ3_0@18zNS1sPP zWd5K505L^9cFl>4v3+*+3MHWcmJ_;XYg-b=B*q&X$A2q6O1{bKPZk*`)JascOW8h6 zOH5$6{{&R#s*)?l?~!QtA}6Y*+RWKoH*R&@m7^!Gp4m6NDy_ux_kZYx@0gORsW6r3 z>OC9RcB8y9`K&?I?nvATCp)gV{>lwD?6YCiG>H}s(*&k&7ZJ>49A5Dw58ZwroDs}E zv<&|4_mMARU0QXXg!?m#NvidG!Yhm_u(dOWe9ow*PBS}$4E72CkYnAwaRl%hn4~}w zl`Xnf%tfuckYl)ol^vy)VmoRV!r+Ah4e}4nWEqgt!~o8AuXkW1BS?CSw=$I!2`XNZ zmn9;Xqh_XK?TU??cX#9yvIb|m5OxjhYy??~xt;A@r*6G{OCcEyDOs3|)7aj7*^c)= zy5+7SAT}fUmMgD2dF%Yv6!z|HewrHoApQb1UUL4(8DEwP{#LV8n-4a2%u4ToxW02< zT8)+VTr_RyUyi{mpv9bG1>ka8xjb;!yS_NkBwQ04blh|(9*`{s@kVi{Y-+&}{BRM} z?qly;g!9~T?6GR`baig<>FWoC`V!+y3l}6#eI|X3C&&}TE0uc(;^v%P3Hrbq56%db zWL7sENSGh}F+w1f?>rMv+;ks;1fp-b$Bhk@+QYzvCf^j5c(G)MtV^y>(Knvz&Bdr? z-FZ{e`Il=oARXWRYsbCssH7UfOKzghs%5K7$z%xqy=DB}@Oj?JunFFd33n00P5mjD!!nal}eM2;J-v9OG1jOC5~Nkd;_&?AuX9{L7%b6 z6jk_)6iExDpxQ!V({2Cl&92c_OjAq4K{Xg4S0;#>O}KIU@V-rtMk6qz2-va-vADD0 z%kM4PCNTATv{*`Ce96gE(}!F1KoRAVMCeHvRlMn~gBy;&0V#$y@>W>>;FoxAULIJb zn;Q1irNEDlU@XBtljTAY=!8+RWKv%X`WZR+zn{9(FBDmzFT%q3m5J|c0!0Rf=hN(Iv%3n zOmQ-uv*vV|jgdfSiNvH#$S`q&rZkR)KWe56)m64gs4u071I zNj+7>)P}-{V*8$lSOT*}O}K8!4v324RXa+R-SOz4Zo7J)Cg%!0sS0(Q!a3A^zw)kS z)3XJwIn%lRGE{(%m|5Df?y`kFjciU1tbdV_BofqAx;3FKS{l+5 zvD-Df%l4^`9aKZ#yt%UyoYJD9wO#&j+-4%TX?s(9Sq_rK#iv@c9f4q5`~%BpV^#GA zE?>}@2u6}6^03TM!rw|AK}A_$U~j74VHddnaV?$_;?x~T+IQ6nOtvBL_kpxTW~be* z8bN#73r(f<)0K#Bru7*y39CK=I+FVb%#Out_wQ;~LyMbR4~(9QO7rp^8@KMm+P7r< zd&s@4VDEO)rz9f;K9fAlNx`^~^EFe^bxxnWhr2Iji}5ype)2E=)2|VUdUF%=f{C*R z2kxHU0ZrH2si6|A&$u|xB&-w+RJGq~G%+3Fw4A9`Cn}OuCS%gxg(Y}J`9&q1?Ezk? zFA$1|I4vDsuKI7w62l0nE48?8&WLrJ>FT95{=C;r*oeo9SP`pwxOVN)go)U#+0`AB zJZvknska8x)M;%h%&wx|Fz4=vEh|l=S<&ic_4yIdpdLeI!+6|8{&rndzK`qI|t-S8rLrqD_;+dJKhd z8haObUJ-R4wcOCU)_e-6yHQ&uQod!uvXRzQ1pv(5#8k61kyGUMbcun7hp{O^=<^e1 zq9-0Ls#GZ+!7{-^m4AnX;!rpii8@kre(SIiMtHQ>Pn(TE zrfvDP3kTb0nMxZXWZ-cNg=Y`Vk3~~f*UB|FUb36#HUKm9N#LWmP1O=yc{4K9l*Lpn z;WKwlOE7+9B%3-Rplp3Y7>iGe!c^htyBLwjiAyev+J-$eEfJo-5dN)LJansO_aQZd zks0T&r!-e1j+6D0NoUr)c33ui9);_*6`6)|hHkYLC1_j-uw%8(n(xq=Ov~ z@Q>|>9*oNoNi>Bdb%#^*4xbsxL1>0ICyj7ejsu?5%vc?bUYlV|RnC^t64Yi?524Cx z0?PRfWh)d6>qfDPREV0oX6qkm_z3jFe%P{`8xGcYh@6MudFFc^>=pf$it!Yq2v@Nn z9V71)(oNMHb>Tnv8Yd_xDJFoNO}hP(5RF&bbU|C`kr)_c5dxy+*t*`N;j}og^~-eZ zuW5mHwON*%oUz=FVuA9NKtQqz?KBvKmxYsCGCEu*57bw-OhTF52Dft$9Bi}^7|w!< zvSYI0^bBNLqk`OGheM%(qa>x7s0nLOr<~QTY=8CY8f9*@EIaO)5kRh2Z>(Lrg+|*^ zlf)`RAxuiT%8rwuVPX7P@fK1@I=1dDknv*2GcGOBV=}I9Y7#)iSD+#q62=CPThwui^3DU~TVwS^TmHG61pSWJZI$~D&>S}-fq zqS+k-1^5WdtCc`wJTbavaL3$538lR}96@n&)m+-qYBqM~+Lo^DFPGbz=5abs1AhAl zVLvQ4Z1d@eWyP0KF3&sx6x0EI>Z?Aab%J*Oo&Lgxd$1YfgoNVbDj>+ycGwvd&y2)S zKs$cj4Z4{$SC7WDcOgpy?6hiy9$OG1Nd#RBUziaao*9q=`pj8IrWqBLG-d}yDj&I> z*(&aV`C5?UC?*piH)&DSj{St2eD+yeF_M>G0no?iV>(5u%9|cbIy-gytzOV^ky3e; zEYW#?{38q*^l$&26~w~W+gPDBMEVFnqVR!ADgf?-!5B%(D9>DN1mHN)@!Wm@o{)y0 zkAGV%lLwGj<)d!vgNi5&fDV$`7WTX@Nj@q1AA! zH@OnxyE4Moa=94>c)i#5s?Q@CKOmUGpIQEr)X+A*Nc;wQl;`yBYPh=LuDYc7)56El zSL-|TpiM}J&+Wc|FpE5MZA@&dne6zA2(!-|9JR;%hjkIa%%MazSrn74OBXH8WKGRk7KId>?j^=4KD4wd&Z+Hx+3xzXbFJ{_yBmNfYHln-W@N(8@`nG|QfwtzB;{1ZtK5PGclyoh$61lCZ zt&>2eX)hWp8zz;7;g;uF>~K4T>|V+=E# zQJk*{n1|Y2aP>E-?m=D7g6zt~l7JbWyaUtPh-Z1j6Kk}%M@gtGT#f1UCoMSLqmiT` zjlBe%9)WbtvkiwXnAfQz*tfPBl#^|hWPM3M9C;Ut!qygqb#_>&tsN4%#fFg$_~1|0 zbve01p^<1rj=S;=Vj?99bE0y@vD(tK(@IsZtluWwffy*mO4Ii0wY7!e*2Waz09vd2 zC+_(^Og~Bj+x+sxN-Ng<4<%u?_;uk5mKVv8@fqZJR;j*E^frBkDoSZL zblApLXlNZjA$}gYlZ)!M1egN`o0ynlW+f^hlmwM9T&m{r?c%rLD?;uR&Ykt7wtR*Jk>NHm5Z?E5hz>P`alvpx zY6D~IJ=0BvLa`HAeY=s?5CQL<0ScAyvtiUJK$$MBkn6hsfn+3Zgz38FYlagh{IiI& zPE>oSXg!c`HB{S?rOP`zCHiHTeAU1+CXg}i4bt%9&D%C@s+4*%b|}`XD4MN>(rUy) z}CXUVZ~F>4N+qncF$ zn?NSMwKW9(dOjR(_NtHDKUkNTxrkkYimqh`lA~rsqGv6*2)%znDv*6ckka{^?!4Po zr2Of(uUz4{d+wa;!4H=2LS;VMoZg%z)RNrc{B$HsW!u1)d3K@@A}F%;6X+@AEn=x% z?*^HfgRa>2{9Q8D3$aEyhWv<*M2jAqTZkj_BNU3N?yzpq$16TSLYtSS~(U!WI2J+M5+$HeczW><^DW%D!973fLc6DDiW9(9tVlItB-M5e+= z{e;Wv0a(9Y^(5?FP$J>%+Y`t^##tbURC-Z0H18!pv65CxC?pcHbfP#gUx4A5U374K zv-lnIZHAD*bQPqTQvv;8a_z^saD*5xy){)cI4}nz-sq=rR!_L}JI8YbM&y(4PYY3G zN73qYOvef28-C6v-9+PW-sUNqq9!jrY0Kt}aOKMnRxE)47_n*s5el^`%f$nX;mMe|_@w`epqzgbGWFJbL`T_kwnaB1B9ka(98*@KeyIqhWfj zXEi=y|3Le(?qK)De&MU%FJ>BL5+XrMGI}zxnt`0xH9pH!|D8sglPqFZC)N}1DcVVy zL?6ECb*m$^x*S{v4b~QpJo0qTvdu@Hw8%Go=AknS3LU!@i1#jP)(lhU<9lr>m^T6o zUw7S|6evg1m?|ImL<;BzPhSs6QPR)}-S%ZHO1$a`v#LSZF~tnY6+L7ft|>g;cXV>f zCJQ4ef#u9TAhF;Pp98-i)8WhmalRDOpxai^AnesS@?yeFh;}J4r)l=O<)}WND3=eG zk)#ps5lCrlez&;xF~K5lj|&0Sci3}$m2i!HjL;M=~*M^nMlgqdT(#q&u=Um3db!PFY zf6l<5z%W*PV$5-8C$MwmSjp^ipTLwlmqK{2*rW|(UyFJ-0k~hPM<8gIBS0ufq6q&< zY`pQhJJL|YOE+A!wTbqJ69QILRkaOWL|P6qpo#!Wtv(tR#PuXyeLEiB$pX`V%u+uQ zE(2fS{cd<*;P!Q+qis!zFx-GWVQRt&6xV`krZRU21H*6-CYFwaa{t+kJn*Mzz*ehY zP6g@5TzV;&n+@VuKns47^7WQKz5W<{!eF+2#d1#QEt_ukccxb`+nDd5uh;RD(UY+U z!>Q-0r$&kh(WDH{0aO^}Mf#A!UHveAt?VN>%VfJ2F1-G|?~B1xBD@Hb((R z5E{oun^aLrSZY{8XtWj@7F`G#t=XcI5z* zK}n(6l|ojaf`q{b9>n}unJN}u+)W>6d(1#Xe*A9W9{duxC#-(Z98d{DgZ0LbDDxGV zPXc!4#5jF^VjeP+?Eq>&6H~tboXj2;=_;fb!IyCM8MdHlnPAm5l#LA_Duc9%ZZBvpUv(hs_HmrFkc98tE8-!Fb2 zbK3<=E8;TwT2YgHFznQmGS|sW&VBy&hg8$ab*)?!CRRLl=Z;WD%pjT)+mPyCX)G6m zpc+~*U_E)pK?h~$x+`9{3tIXLwvrGs7>(RA+U80!buN7*6de1ac%p`C@CAPh@S}k2 zV6CT}G?=MIJPBA{;gBbM(oMa35~YfixUu5!b#G!bDE~@}oZ8aas%UQWUH68pvF~%R z12(N}zDPqF*tOrrK5irP>TzBEe@J@|a7oHCZTM8q-CfnyRd02uJ~`(&GiP$nGfWOl z9vB#4$axS3kQ`MI!~mj#xMoyD*03gYS21G1)m=ptMKQ0g(>?$Fyw!c?z<%q;^?&wt z$*E4$^}f&h#QV7)UY4sDK>o)?qUCD_l-zJ`EXiFz>DzD}n9%oNji3V+y5Rb7eB!-! z9!}j?m<}gHV!vW?LC5Cocaf%803R>c{o;hfo{lir>*g3#6S9Vw_DtU|=nNV&z!35s zOgxXh2wU~dR!RILxByBYi`dr?GGi{;KSk`Tk&Ibor4Q81K=seQ-v|mbAp@<@*da<_ zMMD+T$_@y>Vxkivld_w!6HS1z^7ZIBaS#0V6PPx=kUZNOnNkb)U%3xOTTFK|O{Tdd z;82r96JjF~WbR~*N&P81FT3nZpE@wV(Lrng#6M@KxFurGCcgafcZO(Y*5e^&j5oC& z`?n6pJumdZ9LEe%Fg$=8%h2q15eEpqpt>&N-n+$QSz_WBW&tNzeH?eU4uXvTk?*xx z`il5m!x=R>=0AB#RoAJAxCqzPG-{JI%gq%Ry++bcR<17Q^aO?6^c?OKPjffDrsG!1 zC22VnQWkUW-UG$Z5v4I&Sj)9+y%rQqo%2VU!j7CTs!i4B8GwUY_~dNB+H+@}9a)`g zR`rFN=35fm9LYwZsq*U#>vnQw z*=W%mO$B1fZWjL9Y_c|xBD`-=kgIFVfy88yMXMigEDy>9$x_e))gl-y8Z8!7 z89CJ><0Is#(Yq2X3j%hy;I${}>k5ZjYYzMGzdI?JLpw?7!9mn_bTFc#?Bd0$vaWi~BAn{Ua~ z*MQQdwJ>(q|Il0k9xR}kkZo}B6#%-wd0ABhF#&Yp!C&FOn*0XOVuc~i&Gw7aTzq2!u2 zi&>B5kL<&AkWZGJOn}_xB@p93fu|D0Xb47AjP2dO&G%i?24~hHVW0RXq)(A2^ewn4 zmqaE*?*}_tquXIuzn+Oj5rEB{W92?}z;*0K$6-Pc%3)4M3sU~*t>~r=;T2qk$j8p0 zKZIQfR5}WEmY>2Kj0WUTCn4Ma2F~dj;8Weuu(#pJ$+fQA=bB=h9;T8=bLEz3bSxHm zCP_lIejpMBPbzU3;|ytM>Y5{oRq9Cq@h2EJn$Dwv;#-(8n%3k0jKJNdcseaK0$d_K zGW7UwjA7`cA!^7#GHjc3WE55ndj#%bC#H;WV#B&cQLAb!D}pI<6xv zX^~n@v9tmuUck~yb0?W-Bfe&pFCc*P(O?H+GIZrK5&eXUjzqwcZH8=g6i2Oe5X>J= z{}R;ZU%-a{SnRv?p#VL=p8KZz{Isj-<{kgkg2u&n+>dOW*zo9y!|=W5g*ItKWSREp)U?qpqojhaO-wITPh3{n3l9${k*I>ypM;$5cSm+H`p&{$2Fa(XBTJ ztXhJzBZwK)K3|G$?F|oj=$~1(rL)sAfY!}iafk>nrG{N6wn^^-XA$wQE=l&Z=9Y8P zIj;Hnjv$M~Lln~9@Gm(96O!EAc#}iUeNmnr00ZZr!MTWB+9FJ}XHC^-BQRAKHCBCg zz=vBshLM}y*q!Rrs0OzPB^;Oc=*?BEp1`_9$u@FoyeYEgR*&VfjUxLnIc-|uTTC7X zhtsu#IgxDviQ1RN*6Q0^!PfkG*4d)4>d{E;z}k)@4*ME>$W0CB)h(EpbTNc{Rq3=Q z5=O@z8WeZP<9T9Km`aC)U3=3-9 zhHuEZ3_7Qg@=FClPlymIr(@dYcOqnMH1IM$kK2&Z1rk5cC=mcFh0q1#F#ZfTToCW8 z{x)LIB%bRBur^&7y$S9o@u#9WQhn%nHXM#)bQz2vhSL_<#l7=qqHnG=vi};4oU?K+y#1c`U z;Cw0qO_r~&Qm5(HWL0U|5@N=>nD9{T`?&XOKSzM>Tp z#jOi>-iREOj7gIICdHR1Eh6rtCfMY8{#;THf+B=Ck;J_!z(+ayO0cuBk4JFjO?YdK zR{FCw0TIRHMD4d|>rGkc9bnFV|J3;lCH8^9LlzU!ysWpp9e8W78RoD^pN!<9P(t(x zcewh8HW#;9-H-@^G=YqPq=0I=dictV@0*P;%OW?Iv#s&nXP*c450^Fx=sU0*OE^cN z0^P6~y1_$Kvx@upH55rrKOmbi%`dE9aowHh3fy_k%WEfmAN@TJje*og@^qpx==6+F z{BO?-e+scULT9&Q3|If1WK3amnKF83zs)A>o5j-UNOfGoT4NR9KDqI?dUP~~h_RMfVYeZ+fZXV) zmz*v=A=$_Vo!M}4!?A|j8{X3JNW(`@YFMse$UY{g4C(|+m}rxef2$A}u7_$y5#mJ; zk|eBXO-W7t-Hvxr$+4!rYLOE+te~2&efRhTz?HSX5nb_5P>umP^yC9L?DPd~)KW-W z4M#{g7tERLZKO;xj>JCRrI_6xjM%sPZDaVGkp>z}_5}KV*7y6KWGrrXZHqlV;HabD zV(jszwA%AgCVde7X{H^%9;@%Ow?_D~<67qp5xXxh9}nL~*VRE3P)hG-Dx7q|$8!kK z-v>i2mOdS^ry@f?<96XU|$2%<#HAwdRQAO(+%~3LfWv~OeW_Ohrv=~bC?~&YRM5ixm2H0fp zB(vsT+}$49X?N$!nT;k}ygzM%+caFdjOiWhXR+d|fR6}(`-7MPTr6`UYoKyRr!2Z@ z|KUKAJhZm8C;$d~gW{n^nLTu4nA^61F~51&NRHihVQbb-2ln`$HS1U~xy;T%#pY&A z=Ge_wBUuo@O_~?OpJ)Q!_j|Cv3y=w+OlUoWL$^(0mnceZV*?JxCtbn)@u_7=>@Jo8 zQV2EMjL4B34y@)YU7|mT<@p-hkWis_mIxRhw8HJ z3S+N3GG{XI9QWK~eSNhIfN=I?TMJL5?r4+dpiMfw?GWsD>5?lztSdrh?&tVtYdZd) z_FdtX4gA`=Ddm3iD=zqJTt*Uw*@U)^lZF)EA^ek(8tc%CmQm^}R=T>#ouS(7oo2b9I)T!eg+e6fWrJpmgcbwgZT44aAX4#ZuG4J`+z+%l)D$j z&kT}z-;b0qEwc*9Gbp)-U>6p&3T7Wik=YNJoB=w7{K%dYd%-7aAQN zZ#`x5rsRNp3hr~gYWM58&BW`f`DD8fP!q87bi7RiWHmR7OyGW2Yg22H5wyh~4P?5nkKxBKDQQ=-KY4^=L(z z3ip(cxfp!qKcDJx!v@r}33sGkooY#RN}^Zjef3Pb)R6{P-S!Xo`7b_>20Pa&EI#$j zJyG<=_s=VsCfot5H1grwSa@(vM_;q0f$*!J?YNQo>*viHl0b-@PU+RJJR9cTG28TV zf?XP)T%U_>S;WYG+75bq=3E=HbFN*wW9}f*G4_$+r{07wyXmqAiFc|8@y=u5k$?xq zbE9d|PnwUpuH^cV6vD}0OAK$YacH)uJK@%f>&@x96Z(M^CSJb@WUiS-Mzhp?xW#uA z@EvxvcTZk+>L3`6oHKXL92sy^h!entn7eM4+=y-#OJjeJ)Lt|kZ3^A4l*JVD@K|Ti z0@un#_rvp|x!^&+tcuNX@2uM{STfRPxS2FqCRCwWSHh^jJapF)q!pd92dP>vvW=g< zdHwqBfNVFnqEcY&J-l|qb#FQVD@KQd?8Xt)hJMO9ZIj$?vWfKwm~IPa9UF=}u0OD| zO=_}0v^ew-nuHxe3JtYmmf5-Z;B8sc4t{^8Wv_k9f<4$qOAFSoU%z|i%Ih$>F2h;3tvG8+I{Co#0pF2~JVf zfo&pjojT3+!;P=O24d@h-jEtY!!F(@6UKT(YS~kNLp1SR{Nel^;wH6#9 zL7%zz@_D=0b(Ug^qD%+Atxi$Y-K)xIRY7oYjnGgO|88VUYDXGCI#&HdqQ|NyScav+ zKPJnbTIyNU3Q}M>-oGFypuQh>&Hy1U(n^#+5g;-)h#3qmC+3H1HNK0aFQc2=sWVakOF1L!KSjR;uq$<;CYN$b;qXF+)w+-XE%eV`AV7 z`PZElm}>ex&w^ZEE0!X0(gwy3IUM%GN=pj{%QobJz4$S(Gn*41Cc%^>F&*6voxyNq zVg$E?Cu=py_LKKX_rc#2)b9vEKyt%8DKIYlH`*AWHCua9ZpYAu)thd4YvlGX-h0Ku zPmCc&p_z@Z1K39$8XlU8NwM+X~c4=&~)P_PGpfzPf9%!3i>Sjo3W`ayQZ0v4dxdp_{au_fr z8xNg-m7VVDwIT)i=pi3^Wi&5Y&^ZrZT}?RN3^u_YT( zBUo5W7oPCrQSFa^u32DqFL2dBP>4@6cII_a%8{+yhjB}=!Lxvy_$IiT)`D&HFzqjG zBYr>bjh|G0m;7$6+;Tt2))nX`#0S+-`oRbBQMYMG{h}lv1F$?}`X43@BIs zs6FULh;Jh($P&-BsX1yPmHIY;ZK!mInx&u+S(*!KxQj$zx8Jfb25D3}zGA;^W(!BI z_04qQ>hnn~AQx>X&c|Fni7Hz4Tyibm<*P^Q#^s*_Vv_Sg&(#;@)u)5BIO+A;l5&Q= z+LCfLDP0>niv8f1v1mh)oeCzGHw`@cRmPgSHk~P)Qvw}p^*y&9+ShHVP4m5M+SFRN z`^bT#LT#sP_QePHEJFw@LrI(hsiM-Yu#K?`_nig?M#~JAedfDw7XPmMsWeUsyCD*D z<(KBj_-B65z?4?;TV3O#}DphvWb8zBPOg-8re$|L412XT?WvY6&u_ zJ8m@p|J?I!h0KD>!^m>3U4+dhAAghd3~*sHQQf+G+C3+AcwXJ@;2wGM`|B``M4NEY z$6b-8q1A#$;)f<7t)%D4ZK!8m>w+;h3d>5+aynQf5VcA$oIgB;C-D>>wal8d8q<_C zr*PVP^60(fImI_dU^pjxUOm5-D+K1?!xzS~S@^_bPgHNuxpJa}*RO6Z#;UHqejkz+ zbus!l6Sf!3=$tL+JhJy*9%()MvpLWkVxsK+Pb*%^dLT=PWryg)zxG zR*=+1V5}IixT%(1JcS8JUuj?)OF7k_djV?jrzH9uSg#m)NHMlqw~bPalE~o9IAa$d zi_Gr%ddV^t_nF~6o!~EY^79$S5$f^&{s5l6+Tr@bqZXIT1E|v|4SO2yX!r#DZScV) z3r9Q*vr=uKnqy&cSibU*Kb^7 zDNV=DUAh#UScHVgee~0Se1VGLx^s>!Gg$S(dMQZ2R_@-jC3b8BB(PQFb+#<^G51Bv zZraDp&K;qP`EZivU`#lwtc~aMofN9?1+x;!Ba`7N?3PI&6jPUNjo7~O%<{LMRwu(->IdAjCY6R85Ki1F{?GgKzorEQI?YY}d-ED{8 zLbDdHB@OdRn_?qB@gqIInVGG9(BoOtnnW>ryoY#l*ifScKBV-*a<8Y-PCtjafj08I zx>c$qvs&z8(VVM_c}tDEQ*0*ccsb1DA$ztB{@xR)=g*-^u`%BdqIy#qXLd$|ZXRW&6v_&Yqg9<=LpV(k= zbiw%1H=ebt$8YM426o_p`>9g)91-2dI(}l-KCXIvv$% zNzY!>-yNkf$V--n3%xr}Y3*Ed$@%AHWy0184MT{Zz9#9!*9epe`f@ndn@>ebWS3-| z|5$L~pnwb2!eu*&L-6}?cN4&l)#!4yL>?&|L7AA}C>Otp@lQn-{ z5);vY9_*M`011L!tp2q6pWu--FL-9gb?X@>q9JQyq!_qb#mM*9Y}~T-4L6LGfC`_H zNx^Em8&Ty#r%nVLqHWpimvW`*p9dREJ|n;{T_%nn%=FO`JgCG#&kG$jVw;&#E?*AO-mA?Wge55JP6_Gkxd9YKGI;=Y&u&SQ_R5pi8 zJ?IlR_UP=qMW?L0=DY=s9>d(7eM@)Tc;gsz@)(PW`=Q>|{kWejCP&qRqlOU9ye!8=B$doWGFYwmB`<^AU<{Ky?05h*RXnadML(6tv ze#W7dT^(~!UsslY{pAp)XtZsBK}nSw06f#uWx#x8pPY0?&XyFpIPnUQVkL2i}l!dp~)IxpX_^IKYnYB}c zxAT9AmxP7CWAGGvDN4^kPoBfNd%I`Bar3;!=H4=R@ASsb&JSVI4C!t5OQ4eM=&HA0 zcg1#3b4ATH4G@hOeW%@;I`ZbL2f`MC&2Uf?Rmv+-iT5FmFVcZBt(+FWnQ6<=eKWWE zKwnGFNGY-_X6B=t`a4EOx;h*?CsvzW zB+0~9p^TYR&5~)N+X(0>H(Xj|V;x-Ha>UzCVm|sgkku zRDN>qDd0dx>+JedCx)^BVW%~}ySdH2oi!oXeJdvzJZ6zRYcn(&J)+O;0Nh%Ymr4J-8Q=E!`1FzIQ znviGM>5cSWJkM=J@=3Z%z5$=3&+ykMV5w_E(g`>|HT^KwErJxVyC!1WT2|)y) z5XV~!;^sZM?1*$O;KKgR)gO)JtQ1q?AKW#o%eG7*o|6e2Yi3?KQPMmN-XH?kuLZ1? zbn%Q?wqnNa&2$Tyo_!(?(4Tj&0aAxEoNKBmltp_7EE|w01;o5 zbIgrt(EwT+BSxC#lC8FeYQDLrceF2REa|oqw7H&U`-OoSGb3$S7mSjY2UAqWjk5<( zd_rp?kFyo@Fzkh{@-a*Cs)m~zKHc!uL}yVJhPOD?G(6u0>~S45L_X}vB0^&1pnf1K zNv)D^YEs^Wm1s_ir^%PpF&+Fs@@fL5nDNd01=@M~IuxnfJ77&tibr*wje7u_}`aKMSxC#;kPpYe_8C$y#b z!ia6kWmBRtygp)&QCzFXH%GwvWEFM|hwa)%d^M^GgN`w{k+D0IQ09ClZ79jW!HT6H z3F)#ecYb8ifGFe(8`sYE%P4_Kxss+wy|He@rqnllH-og@Es>f!DHH0qFhd@k3{%LG1P3SN}nJ@ zn&bqbPHGYDC>h_WWN;GnhWy=B{Hv=Ua?FGmqYN~Pecx3D#4$$WhAr?JL4v0bv*JKg z7OF-f8w?LH97*L@mstiA6Qs&F#hfR~jh5|%hS@3H9D40paIhgc3{{49&xYk7ReDPv@ zbt&?)f)HkA6~xGs!WnAy>#4lsb(d1UC0M=U2}3thj?{#tnwZ|}~5;>*YnECFkK zG=GMBQ%W=4?iJvr$obKNdWsT$7Q2sbTBF>_nQpH3tdlEkAIJT;Ejpv&+@_0D_z8dT4@kS4;Mh$7Fq zp#+zBDqN@&@x@Q56aUu4I>0CBpT^~=_+dMX6bgFMy%}>Md2KkLn&4p&TyK*hS6AP2 zJ?Plv#wG7-HZ@ULX9lj;IxCw`mBxkp($?(QYq9j!ap#@Bku{7UrK_LH2uD3#PB#w# zWdY(rc5o4#=`@=-#nX}Z$bh!aLf_)ZJaLxZURLW29=v829qIM(HP|n$KAfH6uO0ZOB8G2c(ZB&Ghk@ZPzz=c4+U32FZ=0q z7kJHa)=hn3^~N?x4v5!W(@aZ-oHtX#zEO?k3wbex^Niu0lG5KDOK8mp%X3K*)GYXo zqe;v_%4DmnFalcBOTr_AIT~r>#-3KjAjh=MN|7RcUcY%e3mbcfmc?GSuy<#^hUq;2ke^a==kJcfcMwd8nyjA07}BDqb%RJZ zqEvzGq5dOa6m>3}U%S$lrN?bAYp^aWW$SjSwR*RgE9X-vANjW5WC-_$jxblj3@3v(twa>XZI5$PgUW|HivC?8x|t1{&ZQL*G;cu)6=Abd{(BD|LQ2iu*Ta?&vZi|4*gI*s#ae?#$DMXE8f5X)c zcQ!oG@cxD$CVKsqqC6!_5D~5`N&4!3{_0bmhBgcQpjjt4&d>*LSC0eH8A9AJs>@+Z(NP1m zGP1i4ut^Z~cmcCBX(!A%foHRKps5x8Hh~=F;g$j+%UUC(KQ#~&f~y)KaU1bo=_m=7 zaC}0oc>J%P1>y?L#I(W1v*6r{V)4+yY%YRx!9Z#go7HDUeY|N&OJFp%#=zAHLf2X_ z1BFUFXYfoEDnYS@;VZ`3diUl|Tj}1_)}p#`$x#$A1tJOaM2wEPVn1?t=ypN90R?y= zDi%CP4Vzn0x+9kX*x7^9jmW!F4?A@|aCNEhC^S(r$$oJ?gPofo*Z{VEHwGoW47Lef zO;x|s)4HtOpAQapk6(0tm!4^P+v`>Yvp!k?74ox;M$BBGTf&3ZisUgV%y#`duWl zyn5Mz*~$>klfN6UP@M-KOjI&SUh)Y7(UUaap_Ifo7fmVCxPJ3tFzD-Y#tl!oG1kJd zQv;=a!`hX-m_f@b_mYy-XQhi$JS4g^=C01#ZvMh?uNh!p7_ai!;!_S}ku|#LRF(;# zJX!T7fTqM31feC99~m6!2KRQxvW@)WJ&3u@@{){b7rNRpA5Mh?o4M+n(1PDRIcM3p z;rQN`twlgV-s$_Txj;5cYPLB|rC^5{wy>EgDfGGYpnu?dz(>5P;o*i4HGHPwU#I*( zDxT1K;r>WZ;DVplTHJ|Oc*YfPXyyqsdeZD4Vj8<3-`5OcJ1EVBZFH?wcign=I4c8V~GgG?P7cj(}ktOq> zMc6kK^i?U2%)k@csIksSa)WPU`dGvwEByw>z}w!6Gc7sd6i0kG!DLj9=JtU> zV1Lp=g-&KsaR<)6e|AcP7A&m>vz!p1~jvOVjAlKVfyhC6MB*A=OV#L=e9i5f{1b3l4jqddha$AXB+?`Zi4hZ z1v`iA(~n@*YAgrU6E)%yR=uTE&WpjY5eH5I9VBKUE1XHdRyrmkuhVhexkLIq?#Zop zc-QVKIl+84PCi3h^eQBnihM!RT!;h7l`A~s#O~9*-NIqHG>jhIg7~Sk^;p8-r=+j4 zx`mk=FHfO83Pm=1WR(@#_N7~#Ff@x6tKMIIOXzBnKNhmQbLn;zKwsvFINU8*jW7t0 zDvi}Y)tV;RH@^!QNGP#=2QWh3eBf&=r4{Eeq1=SPPVS|dn8CmOl!M^7{B@%z|NF3G zvl>=nHxr@`NH_T*b@NdRC;8pf^b?6+t?!4s|L{o2l+e1M`Ga0PAT6T$eB}kE78NFZ z32p^6m>hn%)~ycDglPA{DzXJ*0D;Y@Hm%K%jVcT)g~Y4)kyM0bQJYG7i|}0#P@u8w zxmwx%3MLHu@$)~=^PXn~qeC#bYGQ(AH~jh~4%)8%7wRrI-Q0*TyCsdi?LTn{XN>mt zl@eRKquROVx*tlG_*D>KaM7Gn@s!5l52~PXJ$)-ssR#j*9jxpl+0|yE(HWgMXiU#) zrH3N$%ot!UslE`&g`s=;JV#8q;ntaGH+h1*HHAnhc&96>jBfSMh#B+%u;FTJjHz~^ zaGbGAw=KVITcjDT0WQj+ty}lsf;nG?k9+DsFZ%bz@1YZY{d5n6tQYM9Z638;B3WK@ zB>B$O$R(i8>X&>YaYM=eNd%HZA!99()WjHk0w&cMEDnm7Q9@zOh`|n|i8S!|$LsBE z?`QI2Is8bR0_@h+N>Adgt`b&%2Xi2PIn{zz9c2-SCGKV7Cor1;1E{gpr=OlTCaUKH z9R~zD{3~kD5^jzpQ$f~Lq?bjp`eYF+cPZ4sVH6BSa29O?7eN}xl=G)7_LOsvEg{8| zq&<=g9{uq>q~)Lo-Es1mmKVl5rX`8t=D_VI<4^5@xoP-w@ku2OUOx67T{F;&bpz`C ziH3cshViR@nt_%%7+Tou*pBb}-EDImk$n=mUhpElm9alMO@R1EZKQ(%CMDU#uPd2a`nsoshf*^PgDt z2vd5-Q8_@eeCr$;y?Y2+L}3|gPM5D*Wg1Q@n>+HPnclc&e&n-M_U!XQq)drYi5ly= zyYtdWzBO>=SM@R{4D9|*jk3_BzET1sUR3`0j+HI(P!<_}s z)7=fTjV!PTazodNW77ALBb;bB2Yn7V*P_TNNyA~{ei#W7-S$bbqE;4?9>5n+H|5l! z338^MjHA*)kPIio8=y}@`UWnWK+@qsi4i0}>K*`JUigl6ue4oQLaxolzzv{ppBEJt zE@c4Fe)AWR2c%?k#$~9TYcg8{H>fKx*?DJpNbHH`?QqEyXSjE=uO*E`hW274n`L1} z`{=ID$sCTLR9$M8#djyon3XF4s5un_Y-4GEeaAw{M(!2;mT;y)vc-PEFet^&hsLr- zjB0Rn8{Qrh?g>#$Ku5~mOiqId>`SJs=bvP1d7UeRV);;$%7CgL(;%<9-_%d_Zprhy zIu|r%FxzZlE*7qW7OmW(OT32@7?&R_RNq9Xi?kJVzyRd=JJ92+&~Z22^Wa-TF%Fg* zJ~_{))^?2csBXCEP@|ZG>=lwk*gqU`e3H~ct&@%p1HiPLhK#-n8ijfqkx}A7Iu&j= zL%rA5rT`IsT?KQI`J^zTwtLFxo+SBUOV%N0feL`DwD74#8j<=q@Ugmt$sv8+HC*>K#$WK7# z^>jM7bP*Cy03md@=RH@2>M)yT&PiKnFRcEJ1N|hO0WOu9@3=FUB7xy89QNJO*)isy zh^fhWUTU(%^0Rh%DCM*vR1i!hycUR4fHmN*y?i64Joa7Nlvb8v>N)`Ivja_Ue@b$s zHPbkjeDV9BW1*(9)lAg~^{^P9_1NZY&X)y@j0ZdoQxDa)j;^)a_AGCdtjVq};Qwsr zVcE-;Z@xAkEL)rb@OjR{C|uTyfYwY|%^Miox2Kpg!mT?ZwsB>D5vdW;2np(FbXVWq zufmzz-`*<&E&YkGLc(3O7~_;kK=P$&VBL<>E`H21Tz|(kpE!HxSfL*`%sM+U zfDfF6!V#KDs_Qu*2x?gFs@~J)AqGRv-Uc&Q4(*PHYIq$jv*7H2xJJhr0bEk${>`bV z2RdMfU7h@Tgx~ca&jpMBv~h|1Imun{x=l@P`Msc{u%3{EK;ky>!0^XE!V$yG)Oyd4 zzheqFDm^Y-2S|^}mJFh9=~$@K`ZM4+qjOsg^MY(6@-V(SN?kb}X5Rg#6wJqs4 zPg={DTh-sBN2-k&%pjTFcY$3!ZN!&_E~bo(VbacDVBU?w@7J$CxX=VM``I_dO)rDs zk9r7C1!tbyP$W(Rp8h5mgj<)IlU?73THZWK=ZWb;y>ISpi^2zgjpQw~cuU{=ZermDGfa2Rj9khTwCvmGL7!98ULj#I zNvw4VYV)fuXhprCpRxB}8Rh0K*|Ue`eLszg66k<-ms4tX-8{xVc#OH{^~oNzXw!C9 z%4RN_ty!iIw7N6AJ;RQ^DIcyJ$l&fW&W-mgw6^o$H+~j4vsLvO2{i|guNEmh=qg$| zS{;50aGj{PSL?1s-Qh4Kn?d_j|1gvnj|u3S_MpDh!f#=JB>>GYPlzI68N)+sS$@U< zW5*U5k*6$w>ZT_$h7az(EAK$R$Bp3e%eKdiZCIK^>pO*tpga-wqsJtj_1rmU<-;p? z2Lg~(se_j>wspyUkCxJ@+!+^~vhFSWmr61^f)y=}YiW~nmgKU%-MQ?c+wz*_e(2ct zNkwNFrERstc5QXNjN?UqZuKf20wZE-jFICWKy7mAt$gRX*3v9=#hV8^k|0;iMT?sFKYUe_x8R$- zniz{xyTB1r!W$Dq@W)7ym62J8@}AN(G2p>DM>+bgNS#v{aC31=^q032k==2kERsQf zEnI|Xzxsla^W<<-(3lBQ=B?ruKXteuYntPU16z=zA*@tKtv$GMRp1S!QbjvL6D0CV zsNSVTOg*YrK62;WSwSjfT6xjlqu0VeM@WW&7no$PR{!8*4B~g58Xb&4Dg6TQK7RFq zhw}iwi9Y(YQqapX=H2c^Z&DHGy%T&pwRnc~+sOam z7#~XHj>NeBH)(R7>Lu--NOCeL5k+6hW(hC3Av|PZ4}2Lxah3S^PZLZ$`h|C+o+=*b zx1|}CcMm!Wpe`Epr5=a{4`U(pTxGUV67O!zxUHp;k@H!;y`u*uN^7t*vTXdqs~oZA zq9b$124LCN&zhT(g4+*ZcvM&+bT#y;XB9A)%m93b44^6%3-8m0)?n7q==#292~#Ap zAXd(JossZ!DQL?3xv*8Y+){IY9Cepnj2qI1HLE?M*4nh*_rk*T{(qx#8lB8HX+| zc~>|4XfF#;0qs#3aJuA@19E|oRG?cAbSUD9S%A=&vZ&3S;z>=!~Z#G zD#IH_4P|tXSO|iGDmOO!De*TcQEv59*=!-uGCJzgx{nma>XGi8Eh>X4O!A%3is5@aW9IE{k~8bF~Xuley)ie%av z^9(!InOl1}>wL4|*Vpwiy|vzmK;KVWBK#>wo!%Hag^}nw(icBYp#E5R=!BnT#SxZi z63zL~MoOUDOV2H#WRS8}%+FdG5sB(PaOh$>{X~-{w27cFGMcIwRj$f&Zp!+Nt>>>W zgwF=$gKJbtwxjIgvtazqP>!=i#fObZu=>TK`YQ#nmzIa;BjWwrEHE6pMT~s+FtY_? zX#H}PDZRG+9xn*n#kQN84Xxw44zcP)<;F{FRbkUp);cgqD4}0mH&kH51ZLOGx$4 zpC1sKl6>bLYRv8PK_2P*&GX|2SJXf+W2 z9LZXHWtTHo{7W(CnrRFqa}616%E(UJm9Z|=00B)=jvN>SoQ+f|z3>hnDWif)ETzz(dhI(WB zz?dUQS;y__$Y9d2(G1@c&{@Tb%b){?A1$zlMoONNYj-dcK^FiDiQM2mL|YU~$-rap z1}8!me5M`XGreWHp5ZGw-D7yQmZ2bX0%`^w4O44RtBJLy1OxUWNfp3tt?x_CKj%?v zy_KT_n^RLg2xdunB~ygQgx@F@N}nhFx?i7kCaT|8dc_vL6F={?Rz;{5mxS*DZ_r-Z zZO;{d3!a^_jj>2zJ8%9v3JA{dww;y-H<+a*HEpyF&tEy7M*smr*+^<0+%abo!(nxm zZCl<~m{8fnwjLM}=+q?iZAz|M0$B;d7Qh)mt~URrcGK#-2wT!~RQ6{8u7fRE(Wq8G zHP=wbhS!Ehs?^n$m)ZA_DzGCV*V326V8X8PCQLZQFmKj6^de)IEZ@~#0J>htM7rI< znzth-tfs=<5xh3BY4C{(nm-685$pHqf7+;#wmj( zK||M+t$TGA9RN}k3!PQ)2%6anTs_5?AUB2_NU5xXTJEWA^6H5=*b}D zRC+6upyS0HW&>@o9|iUXI0~d3 zTM`kWj0sGA#{??3a1}VxnCFn`eVh*lB9v5lh2K~qTBOiQZNqB^qWed>i|AVe=WR z`tG18UOi8h7F4dE$VeMvL_6a47DH~W{8DNZ?g}uz8Qs6tiwowqydxsjwz=pCaObMJ z)hDhQRK<2Xu6(mMwYDA2E|_H%m09IGk=7~ZJ1U6GrPBa&C?9_Uz<(J=3vKhVJS;e1 zmqeclepNpDNF>>lpPHGG7XAw;?OHyXw|n1L*0&=>ENF2nTxh9jxtf*TylD?8ico!e zSh4!k-<@@`DWa|?ZDDvQGxA(J>nLKU(kZ{d~7XKN2fT++SOBgwfgx~LIW8+ zI@9eu<%-N6-j8!i-^2B22M#wmeDs!N9z_BNB}2&njrI<0d{Rs#hrSf>OM;%!Y3Di_ zXB*oOCmkuq4v0-VejjDCNE<*mPo>&R@Y?{j zY~j|(k&WXw(ByQ9;+g9ATiRkZ(`;BhZD1o`mz69z9zwRr2VM)a?jm-G>4QRcTwn(o z>y2f=w8}k#H`#~>n51A94>=}oePx80p5(Hh zqr(zzO8lHux(C#bGJeIIVhN#*t48NwgcG%Z&r zw@9$NhTBqF)RxU*{_#-V=(mLdP}0>f;|-`0*eaiIl)Et}2Z>!lP8nwxa6Bz5&RYdR zDa-<64C**w>_XYU`ZIKkCK8hl0J9kS(v*!@kBI^`e#x$8mZjD=DOGvYpp)H7BJglZ~`P`_4CCpUQNWE5c|#+Prk_hFdlQE@j;s*feJUHfwZLwqmo=;OTh8r_~S0dFkILMtQ8a@nk&@!*AX9J z!m2_Y_$@Zn;T*p~Ye7oOUAhw(qjz8fVG@k8@W&VhlF1b;$YtOD&hdp2autn;wZ9KP zpb1kxh;e=#=M=w||Nh#*whmm=dh_3p;ynxldA&8mFdc_M@A;MMirHpWMuRuhrlg79 zpv%1cS*?yCK7v_mzb3ZwDyqO)T^R>HWK&W@sr)Na%8H8V>YkLkew!0i-bn#B$|b_D zV?(zFmp5j!`FkImG2dJP5j-jq21+K{T!;T{ATG+Naku1Mv4l4XY%6IT5wLw>D%A_2es%(b`NEl zX-^U2DSqsMX~>z~HA6TYffe=_qd>e$SvyMk2j8t`JU=%%X9zKTBzu?#uY%`Ql7psA zqqB2q)gLU+jOMHC&a#9+DWid&OCo|4Em(F2LkaP%^^F%!6hK|v-kk?5J)K^&@xq%j z5v7&oLA!Zj^$!oO>SK2A5*35I47BFEQmU=znwNI;b!H`Y#RVU}b4PDFpGx-(Y+dn* zAK;%)rGX~gNR20S7IsNL0v@ahyvJNRXbq-I2YATv%qygWyA4y>tZ7S0`7ESeerH;a zoaum9L^6Wf1Q1sNGtX~xP4RNQB(4Jf3OD-}L^59Yp8KPenccjqx0$eOplrirE?rMw zavmi6y>$`!tt1x;vnPt6`@8Sa6^pW~sS6TucxBI6!B@Fh{0mm)Mjyenn{wfsaQj83u;#duG9sD4<9`UnSo=rCuOP0YnG2=L zdSIN!!4BgE21YHzn!la!VyNFrW}Vtgx)0)|uiZ>-H|uAE-#p*s z8chOp9=bEzEjO#R4Ql|5Vi+j)Q38%WZf3T9+pG{Rr0Kww*l)Mx1!VbO|8UaI1x=<} z{*8O=pz`6^1iV2uW8o*|GD=m&?)HJe%D(x%Xcw@3Ol9&mAx-ok9W|GU=0X->{Km38=`u2-0oIv$T56TV7lirVJa4?mPVIXfI_ z_>UD_6;#c zseX1q`%R2zX)Rxn&=ivEkS*j*MX@Pzb75*#d!wtoC};lEZ@a8_Z#vE!cg9-uANhRF z66H9aYh-|XG%wH{9r2^;T*04> zYIfhCsCo`uA3YphK?O3s{6|blONFPnZj?R`wK2<6l*1R8tn%h5>-_6$t!QVW2=BFj~_g{=kQm+5>B|F~%G`<1P zPmlL)+qQiF+;ak;6IrDLbWY;0yIZcFHQ1zQi+bVE$jYvG-I7Hk>0Cau>VnRSYz1&6 zP}+6BAn1MF?K>9s#>0Z5I^e@bSvzX%UUtBw@xvKfgJ$?M&%t*qVGSVL|7Z;$xU|{i z8jwPp((-(>r%W1zVpRBDZ`%A*pi{9hj8tp3u zTqF%s+Kp8HD}0O2X0k=wXm-JzAH|*-E?7 z;S}Z{9Rc~I?4ir7ZM3r=q?E|O03c$pRc+KspH@m3G|*NYFO7t5Mw0zf)20&UcP)Tp ztmv;rKgP1X^x#1oAUU`}?1%Rcj;5SqWCCxTO-bl#FfzeFdFYJ2v(W-Bscmj}@L&Ou zy|;ew`m^WH$U}r&t1x=&$1c78eDb3qPqf~3|M=Y3yxvfiNyJi*W~oUm(I8lL=*lU- z5^K)gXsj=%(5IzO3L-dyWB+iGAAm3Y@gDF3{w`)??dkBdi64D4(|hgo=6MUx+38Cd z>vh&e{mr>lQB*pSRtFvvB>PM_on;#POPW&pd?GVn&|1M8OD45~%?^>~*U*rDdwq!kN zUH*4}vhJPNs{K6nno3M@L8S~qEesS!%0Qz!r?+TlC{ArJk*3x)ln%)-jusANm_-Ygh|edm?k!%7mYLeM{lAc(zX8}EKKUkw@2pO z^6u(09bIjhN0-l;E)G!|Rx@IT+}r~3JqMGV0#vFGGGi7lkFv}FvMWN~%C+{QzyV&q z#q-NKfMadBuccMEmKg!`o{53Y?8Rg(0Em$B$#){LhXly~EzaaVbIXaXuqWh8T<|J+ zB?UV6Dqn&E1xjXQ~D14ja^C}v~3uaP^*wmUObOuRsI)MB_|9y5^pOX=EP;+5G%dCpOz&+H-Q( zqdle2c2=wvQYaRA<(?f;ZfgWegz8GFf<8emC`N&r=1rU6l{^Ylj+8l~@86n8jV&s< zId|3O%N_?vC1sa-`f3P@kKMRo1#`EJIDspUot_OQJEK4Y3fGWZw);VT9Y%>6IN6bVd>< zfJ^y5HeBM$ETnrs4bohI;4^B81~%>k(|o$8=inqpp|R=;OF@}87Et7ptH*-Wff3WT z)7JQ|{AZ4lW-g~nF zh7mt-H-$a0M=ju&e-Qpn(=^}qWO4)I^9liLrxk-p68M{Dc8uUMDHi6>_xn_;fI``#F*C4J^Y>o*4jVB(8UW&o5GgIf2>pNZ=&<|z5lzt@Ml@FqEL(?*FN*Vil4Cb7Z(bCTg3*@mhg}($XHr?DWyGnNZ!$(x7+1~sMH+cA>cEWS5U9qD2WwAE=6cYvTR}R)D zL1ALb4h%eWSO@xC-;0_}Q-a+DaZS!QjUKrAO$g$<)(T3qKcJv`Aohsse8Iv|{o(bnMKK}7lZ6QZIy-FsD;oJ*l&o= zMbyfwT5>6-B|eI8;q2srR7TWCrw1p70(J^r6O1Mou2EFm_%cjOcA&PNEKCixIf`@- zRojv$6W0WG6Izjc5B`93CNJ|8NKO7w#Q;j{e%rD!0FnungxD#^%y3~_N^tjjPa3IE zmOFuC;57?6DeW>k6x%XjmbIUhGs5REv9JBX2Rl34K^|y~#z0)mn7MgFR}UI|B+X5M z*FLp48p`!A2-v$}E*%Pmi z{$JA)93#iIjPa9AJ3}x1qX1i&od(e^%0f(-bRFQ!s!!ylaCYCyF))9l2}ZGfQ?f$8 zzj3g&=WtgVtry=96#+T$PoknJejtcf&On=IX69n+waBdMXPkJ)j9HQBNtR&&pezO- zyJ6poAx&~ywq$)!+IaisjVn@HGEqmE8}$BJbyh*Pigf8LLjUw zanFB8LOvQbr@bW4i627CbaHVL`NT@#RSjH0bz?{8SWC*qJeR=*zrMhz({Qu#%0n-F zvL!4c0l$9z-lGV#;>m+ot|{6qzjVjuRTC|)AQitXXNCJ>31sv%wDLv>=EubEhi;1$ zc){Vf7hJ_K{j)bU5^rEj^@+L;_#2<0PR@b572X6g&cE5u$MDY@wI9{aRzFk zCh}Rt8JNf*TB!Jv)t88_U=s<|M=%=BurWR6s6`#g+9rZH_5Z+Kom}@DvtV*~-(485 z)_L{kR?i3Vj_fx_@EJa$f?Y)b($S5~{GK(Qo(bnqlziq4?>z6CPLRDKJaG!0og3CJ z7#uDRf;6pi!V9n3oyuk1T^HNQfVRpRk+Xd_$cu8@_I3lNY2wJ+q4*ITLc;Kh*Ix{O`92fe+ zoyzYaH5pW|utZ#nFk2cJz6mrpzm5+jsyv)@H~rsSsY_7@OndN>_3D=-jtmp+oLv17 zfGE@s3jSvD6`SFAd<*l2ny5xic}x<9DYXx2NH(3H4u}WoBXa$xp?dfQ#DzYZSV!Dw zl1+JD3j;OVf}|@|F#(2cEZRm}<8YU)wh66Hj+$(Q^+}bk`VF{OyWn2Qs%sQ0Z-Ffo z1hD?Rn~5)>KuR0`ITW<~ z-K$cp@>sp1`7A4zhGs>XRQi$om(IcvE@Vg@FoH0(@+8yqeX1M!O(10g-GgdsfH9rs z`+2>&Ic@b;c8_FCQ!#YSvos~8YDIAmGr_>rbR1}Zi*T_rY9yyYuXKRLfjZj{Co+WW zFkers22}&cY5nRFG+j^B6bikKBCo09K`ocbuM>%^eLhI^O%2@j3&)Yg4$P`^&|wCe z=-e=xH|&Wvj5Za{9vZ&n&CS_NYTe$MBZ!5y3*U?uHql;xVH>y%h7-&LI{b-E;|NGr z?AX@l&E0eOhT)v2$(dc-H?KMvTKTF)@4#qW4H3=cwUzy#!9_PEU_pOitQ0R;m9sM0 zm0K=&s~yZ)_=bzJXe1jsbK!_5XwH3SgY4Bc%sD&XFL8hcL2EvMp*m~-KgPZTPLirx zf2*o1S66j+b$8wBG#w_-?BuXJv$Hwp9AVjIVRuPOSYSy@28l|LC

783XdrXTXFJ zLP%O}sLa=~IIY zVEmo6-OMk`FG&SQh?UTRrplTqnuUrU12f6qLR9#sokU9IAJ`g?71+5Kfh_+}B8`HC z6txW<@&mb{+g6y>AErQ;f|4S+`#XGp%}StRKxqO-Pps*^i36RZ~3wE+}p`J0-WELlcNXkcG` zYXs1jw+p6~Pz&D#c@ucipO#dd^QA!f z@+tR!x+{)2=?%OYT08lGS>svCJtw3Y^b;;j7{KxX7HrbQjSSmhW<39*^{b0$3&HAzhBAy!82IX+YLp5u^F&HUF4`Ar^bxFi z(~{n(>E46=1b`Xpk3WH(Hh~#&+{e{|^M7TA8dpegk%Z-&aWjmc&T&u3u~`4wE6~fu z>nxO(zE)5m2oC(qiwHoBpaTBekQ5MV@gXZ91kKpP%xG+nVJ360hb|xlk>#ku-b)qS z?U58wcRE1Y@uDY^)>NM!Eo7J1HAog{f%E71$jQOPLh6JfN?M3e{(?(XNI{Q!T+fj0 z>j!KnegDH506U|FGUgZ025)gPDa0)AwBwPYf~GJ;yZk1e^XD#7B8mK|J8@6&GfHz3 z7S8Al+{L?S|IsE1_8;9BM`H+sXs#Bt)HW1uV%oS9Tq(R`3BVV8R?YMAvphKPKP4$y z21S%*VRBE1<}!}&v03FFbV;sl$R2(God3~no9b7ktvyd?>|)*1n=;zJ(c~Eq2xY1I zDnwsq#fyzz!mamPh}#Ji1!}|j$DwzCI2UY<4o>IaG259PYOb?VY{RN^Z-G2*`_q?O z7=K!^t7&)MdFXv`6PcTDZ?>y9sYyt|EEo$DKL;p>k-OlYt6Q2npS(~W`SqZ)MUNwN3{*j`Gg=o<4J;J7(?&Fg$j7Bf}SGDT803}XM;KFKQc^A;qL^f zA5~O{E4_C?GB1JK^7wy1Pt&%dhfY3XyZqY8N{M7wUp8jN4j$fmHNXIM1~?)T7$vX% zz7{oq3*UeTBABxldXPUdnz$5VOa!-?540GsF-K5K+JM~KL>x^#(uZNczCrHECTyFD zfnP%n{{!mUk@cK<0$e`L8i4zOH+H4w8ZUD~rJ8xL1Y;jfnq+Y`k#zAiU&r zV+ZrqcrM%BQOU&Ejzx#xg9NPa(|02u7c!4N3EooKY$P_`C+^6pN?teb*)IsKMs(4Y z*ETmN-M*9@k7eRcF~z3udU$Tig(CDbH?Lb&ESu4j7hin~avJEU(B38d#>=Q{Zmm`F zf_f!wPJV^*1dSIq=tpEN%Ft+c;&^lW2N!YeS^f-fribweiy+ z2hx#UK6mZbrD)YCnB;4|^YImn9%VY3%p&WCS4G2V3awlC)i&sX{E%Y}W}{}b)1kzrR6vNsBO?6 zPChFN7EMIeb3v)I>%UiT>aAmBU! zTOo#OF|9eWI1x`|-v3ZfgCJGbzW<@3BWFJQS$K0ZhPbGzhtSKO6MYG2S? zJNDW)(F#q2+rB3rw{mB_Hx1=&q_$G2BBL{k`Aj(ZSN=!C-mbiTJ?f=t#P&ORY(QoV zOc@wvJZ&VikqLv%AEL>zS>bYnH*hCRX5~H^ujKa{e?aWY=;^*%Zj3Enxb9G6lZE1% zR675nRZH^a6}ul=omS=8xfg7{9VJpG3~{*mud%&1pw7f+g8%Uq(nP_$V__dt&~=Tl z&w~&MrM6B3T35Gr!C5KMbL`G_L#NSP^2fveZS|L^jM20& z>QXL^GhCU1Rx3u1-;ZC`ma|_6t0As;9$W6l{T_u~E}wW`@zY58P6$Znr+pldJ|0Yl z=yYDE2rNn44I3}0Qv~w}96UnNW>6D>?GU%32Uu$x@c@)8_j)8BSKYh}LP;I!Od^Ky zIwLYl1=h^QUg43n1-Fn4W=U~-eYz0{RzZtq29{8{U3Z4F2_X`zyUPct&BndLo&?yR zdLnW!q%VJpfYh=JKjpa(1F7wSwb+9fmuiHro?8=QY6(iK|+7oU0PDjgP4|& zl3wD2%RgEL1rkb)NOv7*Lnk7b{)JW!#= zyc5&EM64S}jYDMLACiHPRLie1_891~MOR@EK>rlc8VO3(^)QKOMAA^z6#sP0C0U!) zMZ?ZMW*CqyIqVBwJT+r^M`s<{J(dSSaY5+oJJUt2`deeELN7CBtsPF4BJ2j}U?87> zbcbCy0UG1K0NdyVX_;M0gFV#W-i^2|hN$f(?jHz~%{@VQ-;o1=$-+i`2vi_T;`DoA ze~Q`xLF$DS2>Mf;>wFB(P^*&QK5Z(~r=vE`s{&Zsu+oQGFb}Y6&U~;@oT-9CpWS>y zMX*Yp%THzO&JvsjYAKi$OSU~sL%!29L(99Pa!QmG-vS;{al3k!%^1w5?3BdroQ32& zo)CmGgyrv_Y2dr)IcKx#^NuCP8W0}SVH3=Bi|pw^FpK65 zz?u9kR!w*q_qqsuVf-W64osohhfYRm@rLja{$9!YgTvsyOdF6t@980pZW;B!9f%8~ z$bUPL+wGfnXzbKXK$q0aRx=!h8MGMu2IO}nxoKK0Iw@p%eldov?tsM&RLV8*IG&_i zGW-;5g5W0oBWj%ywW$^p+R4sn%EXZTfjS2)iq~Y#8A&;olT&?)c&+N9QY`CsYFW>0 z@QcD}r_n}?0D(PoOIL@V5H8217wHpHx~Xejm`4(Argg%>I4t7#Vmyf$%9Qwyi$^aX ziv$0pXxYrd#RUa)jLrieSa_Ui+jT#@GiNH9k3AQ&)ia<5Lh5L@H77F>FxS?}PW!yP z9R~s2_PWlD3zynaUlfN7C=dPQ_i<<@MYBK0afz&tWS_sToHb;*@VUn@oEP+VcR?2_ z4Q$KoiQEst#3YXi$=HG8sBPnSj_T0#pz=)`hXsxX?;~S#^K%w4_%0>v4h5#h0*E_l zcJdE3&bHC714(DwgBU^PCm!wvqcyoh*0xy{VL@ znATaYf_XIzDdq=B$e9KaqdxBC8HMPvqqyobLz+5L1?REC?nP9@VbPGBM{P6GFT7Qj zr1GOzpFT9Z2y{+7dgud<_1MaY`v@cT9bRKR2)_Fp`A){^=Vqh7dqRzowjjPdg1^(Y z4aQ>w2g98>T?Z65Pl%oIdOU@X!J8=}IV$?*&tX^di-KPQG^!e22m^z^at)&uY6Cps z5v_EynZ$UhwWcL+3uhxE{3`g~QKW^&O(>HMdyRaaMbw@`c4&P9Z4j_7Oi)=4(&}X5lsDIpt}mpi=a%F>mtEt3b#8h*cnL1NLpO2*H18)y7wV9sxKV zu1omt8a}3JK&Db8v61&6WpW!4O7fLW^Iy_9c@BR*nhc+CV>vS`vog9qn%Qtwk{!1* zr`p9cH!^nKfrORoJnjtU%?Ao00?n1!^u{?UKUFuc(uqcH3)R9!;nnIJzRX6MoL5Gm zx%WB~-34yDpPtv+0iDDtrTNV`Qu)r?eKhFPrOx-=#S-&dtaLWky(pdBQPGXEU0IRv z7jNIWo3Rhxb-~((M6$5y;JqKZ5=8Kb%o^G7X^h_c}Zj zj2)bkaAbfU{ImCI{CqMdLO+VC$`G@ND5;{2f6WO#0z^UhxR1I7NH}8<7m5^q<+IPU zirr6m?DESk6|AS3_n*bs)i*IkE?#=3@2#9&idk+dx@I5C&g-0=1|XhQ*CXr$L{lrg z#MobJczF>CW;&ACvwC!d*PO-vT)vP@4z=0|EpgXl&CShG$ok0zNC^ih!OMNQ^?^sd z*qSU_ZAc^9SI1)OThvTSYg!OXFF(GcoQ&$J+jgbBq50e9TXe-k;wZwdU;(Or1jDJp zJ|+#lc>z8L9XFUMl_DOhfY{s!SdcqD?Qm~c~sDE#2{bOF=K z(I<(kG$`0&j595iIOp^KGO>Kx^0SZ(dAj+oWwQ&aT0X90FWk4T<*u2(0J!+-{{}U{ zx0onYZ`8AfV53*TuL2ZVtU@{N=z3rCpjdRX8=8PYj4c=h{{`qfZ8iTuDZ>!}>~kMH zb2mr_&4_u~m8Txc_)pxvW~-?Qb~3*I-M4)p6rS^eye>jp_@c|G37oF2AYHU(}y=40mILc7$KJl-PQv;1_sALg9I>sv7uOvMt}?wOt(;JJ|GNJ3L&1 zpnwv13WO}!(@luz=}sOu_T(Nz*cK;kMWCV91t`7hD+sCwjLi1=rkhq5ZLCXMEpw8| zHV9avg`Q4euN%4EMeCZa%sn42VT$bP{nP82F~<=-G&A|+$EVOZ6@`~HYtBrlvAFFU z)Ty}=OUH!5&I}xc=_1bg@U4FKz?DoP#lny5X&EZE@^bi`O&n zl71nt>s<>Ag(UmHr+r!HLNCjfqGX{dk(o;~2{%5xDS;fS3_hzLV$Uz3o;`Ma(Cy^b zh6yM75V|n|e#Ty{fkDXf;kKvv1rInHGAKEa%bBq6kMdmu;&CLu`hS6Ee$zMeUCZuu z73i%NKCvB!qNz_T!Q7QA7h?|Dc+b`jH1K{hM)Hd$^!1b0&Vvz#qf%#qcufe6<<*)i`O-z(^{;t^{$taXp+BFYi1pXx(dY5(Qo>TFYk)wT)!ioMtwYydP#h< z9%F%Sa>YE$8@+j~$?{*#wjIgLS`7Zn7dV1V$Hr z!Prfof3zW<%CBC(ZH4e;%1sGDTtK$@2IA&2I>o!DWF7pKW0P5Ap`iK1F%Gp&$M+e` zfnb1;R~oo2C(c7u3*z@@QOL-E(g!oMz+a2*$+s4vw_-+5S$f$VEnWRz zGzEmaOyj~6aPh|1obOG|PU{?5^;A&S_w_TSFbchesDyc9RF|Nu_uyGkDT170#pe4T z&&bj0A0z6a55}OZa?>FXAryRN+uN&=W4Nd>&90$mV1V&lxz$vi%($-+6& zIby5}%##+2n^7`Zp~{*gnA$Q0@r(Z$(yi9%If1D9#mMl^cH7K-zbt?=?95_Rb=I^( z_*9Z&R2V&L^x84J!jJTPzOOA2ff&1U?}vtm?cH-Vt!L=$oE^=yHnJ4v|0-t!+lId% z`HMb0`s+qj&fF6x`hzRyD3N}#P!YAWR{Dw)1mf@ZC?Fpy;KjwmwOG|h4oz&RsTUvb1s*4*@)cFNz zvEb}Uz>omV@G94|)y=}I2n42huPB(t*ceDcu+3W-vHT!A+q0sO)f4T-$6o*;*vgfg z*X9$p=jxSthacqs19tdQEOCv;z9?`F&7w{L2-R0b<*r_}(hI_yY)s8#CDycR>)d{|r$KX3yKYa1! zpyJ<8&~%G51!yIdT4H6EFm=&fT`5??RwYG4mcrVAY8yAb7>P9;9vHOjXnJ|`wgy0W zfLWqUK>s0o0!Y^8Bubi?>s<(0q^=A~2UhzKl)zQ=MWJ48VMWYTXJ%kgN5P{mHj4R@ ze(HInm(@^BegZ1z#% zK>mIhGsfvc(Qy^6oNDWgruFK-iD_uIU}zD9P)6LVucuf;@JD(p-DnH7Hg*X26cmC; z^Yz(`o{tgn& zW8^(xJB#(}4)`~etxZKoxI9on)tnW}uL7L9@Y6*=7&f=9UC_@=HFwLh6-xCt@z~so z8U@@;F88NVT7rZ@<0_}llsDG{BMm=w6t~YGAVS)+&XF9=y717+d$N&0a`eTsmLIzC z;Eq_TSoheEGU-*THm#YLbh1fj>$Nw0TxckqXk^~?!I&M58JT-eEhMz0Zr*uQds27a zcPrP|CjYzw{@Fxc)=3=9JeK9#jE6+j8wqxIxN*Ip0K`*V_~t%|8Uho>D+WoQF0k|X zh6cQ!|0vkZeCPi%rW?4eZRmq#!GnR7j077{=x^6R*sFce?unllqs zot?!bAUi+-dT zHl&WqIE6--$6`>KybHHKJo6lJ059eF0z%1)lDy{*=VK~Ad_^KZz#^J~j zQNyhSLNgEp|#Bw&U4#w49_2|joypKGiDGrH@@J&OB{_S-+9a6KMIzz>A6e(jXg zi^=NbAwqZH;#=;lsW8Kt_TI7}(u-;a!e}!E=@1mEY=4FeHQzJqbxnA;*(E&Q5)(&0 z13js_r4KaP@o03z`aRQKkRhM%ODm!|+bX4F(rO3gMDXjO%R%}yNdB>u^<8}nu@$dD z15hV%6o^;F7+btN8g(aE6ne0uF|N>j!!>v=5K+gGWId#=?YJFFB|^(Yd9QN+y$( z@dJ$?<4bAc2B$p<3l4a}nGVi;?VbFDlXZi-%cK)J*Fb~~ly1;7Cd6KqMQ3k|d&BMN z`0n*~%$CplLDCb}vS_g}X(-XSv1W!UMAD%0G%WV!@0y!^QOm6Ild}dBsgq9z${3{p z7F#xCvF~x@GnlP^$)+^AlSmqcRzxc%Y1dtJRVF>$Mt;>DhSa1#j1BsH4$&pwN&F+gv?rURHyc%og>BYZ|` z7BCi@rm{XVmVj1}ml4U{G@MHj19!I8xNLn8|*&5KV2b zzPe=Cjx0QnMUzj0^-=f?10VGs;VZ1V(3dL0eZV+RfojR9hZ=CMo<&DSZ%w&HQCT3K z)9s3bP5dmEV2AJGz8*nd8D{2ykp#gK?KplogPJLIAt@B) z@b4f{Lf1YxwZYCR!9tT@!BN%bXmHpC8G?ACk&?kOHDN}PJqNySL7h__OrUw9cIo;v z44V<8QD_7g{)UM|1$4zuXUNhAcu%S>merm84dA`}F6KTOghxT+T^8R)6%pJI5H`Nu={l^NqWB9#8@%>e{L7AP@Gb5ss3nf+7eyG4z19T*%~O*A5~i z)Ij*9M4O2(N3Z}##5}-MNn9G}CU*LQk!roY z+Y#9%zFHC9RCFr|7f_##=4E=31y)}Zg&s-xmUkOK4~IYyG=&{0*#K6Y=d%k_fMM!| ztv)*+Tz#?geLgM3s-H=Mp+M=egr$s){;3JkTM{&*X1WcBxfcJQm&Y)4^{XXWuE*Ie z@miA0Yf0ym<%8s$uI{m{J`DFM-=ek(zn7@hLb*J5g}j7x#QqIX_~b`}3JK39f^ci> za^g*2dI^07Ic&aQ{4-Hn-5JV)fFhGvo&OVnnx+Kle^>v8=sNA74h`fpCP09&B!KUm z1sfc?z&QPmRj+VjF+J8E4m+R??`0#l8P($h^<7|+zg4L?R(YXrwB`G%iIg*35AZ$I zq3ZgP`ql(Os{ao_H5A_1V?KCK5H)?VAbXZw_oW)W=Hr;`QEeScUqZ2<*+w*T$*B`3 zAzrfmY*(`p5$%`@+KdNdgN-pWw`)HX9-3AhjK#N~;y9*|*t1S2#reRGt_#n=obkzs zW8ZURI5HhA2AOl*zAp99yleox74wXgG zT{W{4a%`2q`*Ixoch4lJm6$Xq z^+aG|=^W6;r#=@Ml>)0;M8>~xz=>Z|c2cS*cYJh3Yrs;VI!?&)vf?ulN9 zj{E^=$gyYnW!CU9U$7HIB=k5WYUe!({qX96Nu2jLapOJ3*aN~h^zuVK?t$u?>`5s1 zJ^)M?Mpf9uxcyAUjG`SM9jUf(cnQ`ijbRkIaEQqZg&z&s=*}Av>zJK-p;l$U{tZGd1ZX^s z2oi>1Ki5(Q1O>FuDFzO9cCD;NKrKAQx#_{uiHi~Y`e#KU-a1AyD*BB;^wCP=3iFqTz`5dsX5!W#69R?S4Q736%=lx!tcVJ+?QHyCxwo#q$DVFtKXV0 ziyP~-M!{*3^fG3}D>t8k0UuNlgE1(Kp)z4)rV|n4(e#Q0M} z16}nH&pNq}AX|=y!4s1*ejNtxoZpRn0Vw?7PN1nai;f@D7wvNHU$9D(xrd9?ya;qV zz|&~peh-4$#Jj;MMMB4o!3@MMGL5YKCMGl`t9Nr-Meao-tg-cd5W(Rf>CXew7? zUJ@fZsaID|f=oAwwLpC+aMeNtvbjmH`3UzTn=#%a)g5ti8Jtf9Je|Pv!xdV5y(;d^ym>FIEaaJr36bu;~*Hqrp9>4??K+V=AXws^!Q${ zH6242{&E})JjsUIps8S`GP02}RO?_tyARw%{=t)=%$fbzb9Jg9r(19xi3WNwz>Anh zm*p+(2C59>WUAga>?Ibgf_A*3Mj~+6C(Q3iq{Qk&j=g_Ltj;y(oTUNoigC}IP67u0 z+1l3q0XU92I!KPsaUOl4XGn#X>nMa*dza|3Wa7Npc0~n!h0a9Gc&G~IB#pwaPFlO= zM9c^s2f`0kP^9GQr5U!RsUrbQ7zPN5u`;elRC@&FVNq3fVLC5g;R_N)0?VaC-0_1A_?+r%`Ef9Ik^g z`M|RyFa)_gkEP*v5leqcO#{=R7HgA|reyjFQ!D7pD!wi}Z>J$5Z~`Ro9JL|l^{xe! z$I;D=jX+6DkoZ(ocZIL)Gm~W@W^dP6a|qCBWkP$T|Go}O@42fhx;Gt-OLG1+;LGyj z-;yXu%7s(*jb2e(gP$hLg?I`AT7t&TzU;WulWxqh3d?+JS%39~56qdFLbxK?j-!ew zDCAq39u~9(1sA+6)qk&ksVQaEH#Y;Oxdt&GN9wF7oY`Tj-J^5*bg5r_1!~Zv`ygIa zC%(5Jhdw3X;985!C7i52mQO(>!SBObV$J^psP?{`I&Xgci9?nQbXG=ydO~I)Gsiv7u$bb z!b&z?x-&ichk%S6HDAONGIE(s($_g}P4Bch&`O^YdyN+~hr+~=HxKCy&^?AtNzn*- zqrhv_f@Si`lbP>nT^H^RZ>&AIv7paX#GQ39-C5NS#=+#(vav3oDxQ#+gas*Q^E@Y- ziVy5eOvPM-s1xFrsy;y1lyG8#Ycf?oOIMXJr%4?BqY_i}OV8+zyScMYj|s8F-WyV` z>tB2x9sJ940VKki)t8RgH=vjKerk08QCn}RT2NI+aL znbm}yI^Zv|ZWf1T$JxJqG83ztu0TSqQkvJHTZu%{b6EAkXX-Vaz!*!Mu~k)thZfUF zb-8+6Cq&rgbp;*i^A&AKpQmC8B&`1U(_2)^UruPP4Vn5={}Bq??GpBCFYDy3huMX zW7P2t7}h4J!ax;V3J2syih#q1jVQ~|BObPf-}A8bdy|BvCq@>(=R53niXtP`->^?3QhkOAISMDAXqLo(95V(zv)_$iCyuU5xpk6cc@^;+ zm^-J0u@U2$@QFXhw`m{q#jN^EM5lm+F)&uh&2&}^u+?{fc`i(A#WdV}Xy61@?js}A z;06i~A2t_~sGxoW3*jE3^cS~C007`SED*8@5@y<_uPUh{rtbmgGvj`AX=B^X*0Auz zFv9xk#<}X2lE#FmQLAe8s_T8ZB;4F0jy|Op#P{$9!RYNg;T8YlVVwHNvHQbOwBscN5P9+ss2y2+3U*bgQ9M8q+pno142b zx|ziATnuXBn(8Jh!l{fz1%g^N@iSjA?cQ2Fg>1>AaQX(>IJz8zyw1n{*Tg)NTZtSP zjotTC_n(ekuogjFj_>0VVmPVG_{Lt66MbT~tF4O^-&h{O;d*m zY1%-NYRfIctTNbN*U}IdXfq4KN0_9=-0JlOI|huQu-eZ6iYq8_YvD<|&!`P)w+|j0 zZ(du!pw|%K#;4G0pkSX|WpEdfbDa1vfXvp~4TNjs$BPb>Dwp|`V49XZTtYe{d~*ar z>-fV-Z>?)|(8H|$uV$sF z0k%hGZ(5MBZURQURbmSl$D=xq z-vtjQ9Yf7F`qDy7RG^`Ud+oN*5MQ)w3hYHHRXT{W`-t`jKB^9UAzwj#ri7a;oaCa= zGpr$Sw={-Sfa$`mUrWtu;4YY)gAPVSyn+^>HmOX_bJT{ZI)w;(ce`4k^Ygi0qprGE8$h3e7H@da4Ec_1iq5jT6w5TKcvV%;rV{HQs@HJq= zw+XAL$;Di5b88MWgFjI-G}<~h)Jvb^``KK|E%bc<^CtbbwIk9hf~c3HpeO&Oha9Fh}I7Kk}1nc3>Xe)$Bu?(D%G5VM3>=q}%c3 z%`FMgx8%$H1D$BQfnPaQlA?fz`5KbR!oNe02+=kUm~UC}xSsd+riC0)l*mlHFbz6i zusnUj2fL8wA(o>%^k=B?6wvuNF6eyp!bV3O0a~YEU-R&_wtVV@(lEV%Gnl1SWNzcf zi3-hFGk|smT&ff&yfl3p;i|-K3dZe~@vT0J$xf;YQ+KR-@jKqT;ti6Ok-FBa46Wbb zz>MBq07Hmf5Kds)qPbFaz*B~zaz&TiK~X^)gr>3PhC4d!e{DI&O?(*PnO7aH{sCD! zjfu)};cXF%KzQ$B7y}EZmEn`#&Z{a?S>?}|@j(>2l z6q7k3@xvKYjn{QAo|yq5Y=nKIhBf~(T8cy2z9QIGA?g~{jfk7-=uK_P+lu6U-)9%> z%3_e}eIG0s9$mCsctvC%kZXoK*XOX(l{6`hA4OWrgSQ56`&gN{mI|6^?Z z2>}z?J}`L@caN3uf)&6?3NR8>*5EqW9BqZQrR5YoH`Uh!@t;JYxmbPq9Z$hQ@v1Qj z{J#V?MZr#(2H`mw+L(EQn4$$wEENFh{E|j31jE3|3fS=@lAK6&%|eor?P!Fc-{fH_ z&?nR>`z5C>LI?%!Q*em@oMNRoPX*u;no0AIZxCHRlo#kOrudXFP#dY%$+O_`Kq{O> zIRbAIJ_yM?Y9Ines00AAXKEjN)Hj4?L z4`@BU4wKdN1Fj3^Ap{@eqb$+92AHXAZ^QmBjXhZFy?%tLrWL8)GfA!_LG4T~Er4ti zNC4UX^_Zgtvj?j_gSnJ(S%LM8&0Ag9qUO50ue)We0oyQa=*Ns?`93Av{s5daG^>w( zHK8gdH3V&5vSbb6Gj9J{nmrNFb7U}sgq+vdf^x=Wd7^Nk=7NJ0^gKeS3s?OlGqW=g zy_~xUa(PG|PaC$Atrg!%nrAMX*=R7h0Zh7BTHytzIVaTVXz^drEa{~wB#&Agr9IXh z8hF7TX3eSIm`v75$^v1~_xlP-BOc#zaN7=q{V4QFtgCvh*iij&y)HKkTaK>DQ$_xY zsrv1j8WkOMGAz=9z-iZ9HQ5?@0^h8#X06>yy&{g4KsO05;7*zvOB4G_lR0SNd@GHK z@yCZH)*5W!>fe~;j_kPJ6*YgusspXMR$O-S8F{o*cg{bEhIREH;~i^l;Qj2OJh+pv z>CuwC)n^Y)DK?aohHUQh^}*_Bz*7TCsXc>QBCEF!Z90+po0c3`lJk0`t!EFUutKb= zAPuQ(Md2B_@ZY{a%33SvvDCP_b|Y`Kfm^+LyjNE{{GlDmsKKSD@ z8zK#N2D2%kGmC+*oA7D|HMb#^A~rRz-j(+)d(GN)-J17@xF96|2JB7s`jDzYNI={3 zXsQNDrRw~a(4d9BRmJAe@0y`pvr`0)9i|Ytf3n1%g-dq&Ie8JfE_OLCZBv4&HY%ATGz7`duHzH-I zD5KXO%47<5u3|d*+;NrS*8!@i2)B|Ly<`yLa!Ux;z2A>4s@~HLzC>lda9S4_ub6Pq z$~BvYciT>r5pX3`%lv9C=g;Uf5#V2S#=h$FTCw^(!F_}!0d9rx6T85LMm!U%5&Q0+ zf*198Ym?4<4H2or3fvO#uXH2fi)tfb(2HF=RuqPN4uC1B3ryxi*J=<)2K$tYe?E|q z=~Bn={uGMA;M+`X-;_+IERc3o8Ll%!I#EET0bVI}c&4sw5^S`T;(U&-O<&9)k zlE~Ob*LIZC8a6l@J}M{-VmdHnvXr$`;z1B&NL1CV!_UXoiO zho=D?Y*kFq?N~|TC$AFn@ zsOBs!9jd=eQC4}0RnIl73~>8VH^dEqInm3Q3C}sB6j#Ns+HnNI>|-DEV+dQ#Z@z%x zgJ@rW^Tzf4orVJ5br%^49ChD{9a~RYgd84-B14F(g@Uj2x9u;Y#nLlSMowXSTL~OP z>h7ne6Tn~=3ktA7{>qI#%{m+XQmq&Gxp>C!>Wrz5cmKo7=UdgE#56Q?3lFnM%Rx6{ z0?TtvEAZef)&rcLlvItTC4DZCUvgn^#z-kEfWt7=+An;HiYfB6KH#}u0cUh&T0i_1 z?{o+G2^|~S`oR}B92t-AdqNKJ>SY+F&{}Z1w-6m4Ho9v*jC(P{haq$H#?~lUKw9D2 zFA{!Q*J5d>9lw3M=P1#pmJgkiOeWH{zu@>a>k0)+(J~KQ*!*RXXBSYMQWOY_js6^- zS(PqQ3)0L0GY?G;H<=tf8Mt-JC{&uV=%27E8csjAVoYyGTc* z2qqAo<&Z&wqB<-z&IA%T51Do-&%XI?r*Lt6wmGP)1m`4JEf}^w49@BOI3_ejj^&zI znuqb}exjo8n3xwQVm?yLOE|0%q26z6X(h&9g(#{+D8~LLliGfd%53qsBdVV7JN4Ft z>g5Gx7J~CpUIZZ#T@zOgdml4PZpFf=L0h`b6yiA%250X&cpL`K@t;u$SwD zVEjNBO+HwnqzM0<@80bsi|&12_x-giZ=0#8zH|65FnL0eBCO{A{(+SkWpbzZK3y(U}_bouh=oD!lWp}U&+ zzO6+?I3g4?@w+?#^9D-*Ck4yXS4hOgKbyX%1)&GWO7cS(9#!!BaovRf2=I0dfEkU~ z*20f0Pkg2DpK0hrVf)EZT!HNJm>rYFo=ZV2+$lwbOulngqhnijU0GMf>>mm$H~45P zrxgaS3ahSuH&~-E4!p8qx-F%z=ofLPUjZsm5A)uU!g*l5|I<5ib_;LeRNyzi=&&vL zZ(fl`e`r9fP1Vul+=|56J3voMx}8??JwC%V5AvfzFVcZ%?r^8hPWH|ISqqkTv_qXX zp3qd&j3#@}%bI{NS3h3>rvaEVj%RG`%H!ALpN`qC84EWapV0?ys*eEVr!wG|**Z-> z2LCrSkdOD-8Mci7=uN%s3C&!aM~{H*Wnd3HIoKxwALfswJTi$8HBZaR?;Cu>5yx1U zvBOCH*3fOzIt9Ls0Bf9GB=B@tc%B3CVY947*K-FnOgAB--e=(h{iUb*F;Z5 zQDY`xCQpMPOttF7S3tON2`EV+%hb?t*JI#xm?F1j5q$H{@_O-RuzDYuO5K5nOtlIQ z`YrTDHxFG8wPWTYKI66weoR+=*zrd69OP#KQfjgy!@ErhThLKj}o|21D&CMZ*SM5IG6!+Yp;lcj&}!F)l;hK(UZBf3R!#m7Sm;@iph zk2E`490j%WgCABv$=Flr_1W)Al3uv>noRoECmqXfxbCWqw|jR<5ED%^T@T8!IQGdO zGAHXOe~z%XSiF0=5P!w@RyU`okS*2$*J`5MFPooE&{!fOD|LogpQ;OsZ_C#Ywx{&1 zY9?d#_Zs%Poa7XAZ>DK9HQG5Z-nJaXQ&u{{rq^j7V{GZ#sJz-p%-P(|<64>@2{3FM zQ4>0I8X_zTeaJn$vjgz3vGF2qRV)nuj@z7mg7xFeKx;sc!_$E8=#{}zRVLQphyA&<+6V)g@??C7ZuKqsX@nmaWGz(#rc!MUF z9``fp(!xDaQT1fKvpk%PLS3D`n`xDq`E<#hUCBoUCGyooLN?rDO+dp+O$P~e^vuS% z5&5NDOh&u+*w8oFE1Yj8qSA((=wP0%ekt%svYl;5Ydh*~J~x*%oM?8zOpr>A9-LlD zB9By!1bV>^E*Xf5FcAY~r|f7EquIsVmu_V-1mcNA^T8G1PaTWdey3!!{j=R@JaPL| zE9V;3E1EHf{q;{LEXRHEt1hG_{`6iKfrFlU;@f<#B$%ywmERL10sj72=VD@_fPP_k z8I0Q)3(!lcHag)HzKvJ^@iQLJArmLm*yK2I;repJ1rIvugnjMlP6A=7a_~7fZl%s1 z8k}qAkY%$+jJzmkkar12qP;pa0(_r^NJ}bxkjaQ@k9|){>a2&Z0Yb+)>(*q-SDw1v zaWQx^dt{GaeOZJ+QFSIJ8jFIJRV+3C_B6tzX(NJ2Wm&Yj{!)kg>ucyOpsq3QU+Au# zqHp25l_zU7O$E2XXB0R#q;^rzy~}L{@7~lX(A7)T60}Js^B;SGt_STliC0%wAy7Hq zi$gZUnpJ%S555-^nMdF68%|+5V<___#Y&{EihiZA8bp9oFkFj<(?H$2TLA^I{oHRC z3GC*em~3P)dnLXM(!c8e1Lxl#eYuQSzkqu1vm8ek#3Ex;e3bW0IIu?|>BuUydx9ex zo_wA?1=S(AUOqB2aR*}4y+hMuVr)J>Ow-f<&gi=*0Ns3R#1dN@4<-`m>z0@F+mqrjQs_rSS6yV`Tu3?uETYP89(<>&urm^o}5%dr{x2zu_Cbt zL9fWzQ_$$){|`SK?8{g9*}h-`gU3XR9~JbX#mozDwdNfK)}j>NXaN9#25SQK$MDV@ zpnwqb(mZ;^a?yfuZ;)_n^nO8EF7VI6YEHI)&la~5s=InUh<3n}AtXBOh?LI?oy|p4 zh+v}J#+WMprznjr>&h|HfS63F`rj#?0gQwaO6RMOpWFU>mp5lC7C`dfXri8mtWJfQ|#yBho_T3Rm7HwqK z-r3PO2#M137ntn73Wn=gb;2X4e`^E*6E;#UIm0_dQTh z?U-iWdWYxF9*oDD7p4=AB3oy)fFCnKNbJ59s8h8^iq($_*V1f&I=6aguBxnSkT5{8 zk2<$gGWNMb&W>GrHcRy9GtdY{+gK~@OgMXcBT51!%UwGiHfM9j8|(xwJZ{P(2bd~N z7cDKbeRVdq`>cdq?WM)~-E1p5>#d=ZT70Fft4-hFOzJ^GL5w zeNA4drr*W$C%F70E7_{#5q^b5x!Td_L2S1;Z?5fs+Vn7}slLygtF^qi&hGMG9; zlK|1En*Tq>p07>if06`YZhXfYrg(jnDUbWC%-EbjXRF6Y)sbZ&cxn4P&S4yBpIScK zVslxfZ3|8Z$PAWuqkh_6n29Mv!PjCPJv4-<#v|TPM^jl(K*A5HRHjmX5mOWZ<|nk$ zjD{{31l5$&K_o&nXjYUYWMaoEUS^2A!J7w{6`se}BnE8e2qq&l_Wb0p_woG@?60mT%a z4snw2frqa1i^9i-Z2+h$)fF_pT+oFE;dab|P3??rpHunZDl?r1Xky+aeTsU+*$Exe zGwN{f&^JwiFP5l3TL)yt|B=hXP?(WWh5EP3y3+h>oFtkx*^Zi867ybHPP?sE5kN6= z9OuZfOkuPW6ya;N-e4ogwkK$5}LuC`tC_qpn8a#J|v0tZXnxgO(3^oTO z)xt^4nLYaQBv8L^B;1ZHm?j<7F|@{RTl~APTB-i6%m74HU{?e2$Gc$HP~Dh7fFH)C zt_iUh0g?nXQ()JEhMh9CYY0D&%EH=J$3*|7z~w zu^d%B3vxFeAHgdPqPIJa3Z|V*krls!#{oZNVk{j+T0z!E3x*4t;4Rd&N1ls$XF1jy zjyr>t+RVfZUynHZ3Q^@`%s!nG!hinC2-WTVA-pD<=0Tf*m9AmBtx4X`vBCAo*$s%o zf5`N5n^$eZ9GUQMEf^rnBxUWob3lPSHsbub#+;w+M3(Q{vG+eTG+V0^^$hqZSVKn! z_kcC}+mWa}EM^kvg2?JYc#rDX>uM1=&#z&S>KUJXyKE{LALDzP=BM0gGoko;N3f@Z zsQrjdUFzW%GdkjY*VdXzK^7J4+hgukDxgt1fDc9xFy`9B)56h0xD?PF2{LB7_+fPV zRRiKqCk}a2_U9n5e~oWs14#}hyKftlq(iA4IvKK2c!gCDPqJf$+fo2yS5py?t^AY^ znIKgL8~7-8Ch8`b#=%K=wT2i3y(KocDJe>!EsXxJ55@}up*rZrs1O+^E-CSt8@IYa zPb!5u#LNPB{uERSkU-*Wn!sEjE3Ux?cj;q3`xPET9nZNEYRJqLIz$cK6!}*V7 z6S)zdIK!^6Fzt7~e897W85eHkU|aKvz|_C^9uq*5%!^#86ht75;a`wmp@|CYmYRi} zS6GU8>#d|^WX!@GMnmN;vV*r+^(R=$28=TX|MmE&V*{H~%(PjALvhjH9YxxJ?=xAX z&4ft|D-l4+#}jgbfo~VyMcfP(K~J5}AP7V>A6Iaxhr5^nDPXGi=AmgvxS!&*OHhXZ zf~!`GeTV2|kT@vA#1>ncEL+>sL9#ocE*uz`EY59CM`!|bYt8M4aT7J*k3c#M4g?db z{BG%gJ!Z;Eq7;^K3F^_HCQ^x0;cUdMWtf)2-L)WZ z+sVSRo&C^y4D#le$57zwPSU&sJ%A2WP$M?fDmb6;>nWCr@cfH-%1T@f_{^zfU*w(0 z`2-0@ZKY`aXyLe93!EB#8#o;TuZ*V>69bykB)P-`Nf=c~2PMq^rP~)i1rY7g-zU+A zdIMV>PRuDlLjEnUBzy>yvvaFkkhrY?mr8^1E{bNV7ffmYUkUgZsS$9F_FMd5_CRLf z^tzSt8s`pu^rgHQS^T4sXmt2zDbdJ%rh+N!e@846*f8ME-96RpjLd-uFMyEHCJtQp z#Q0;}e#V2IShVf)+%U0OnGFOGJYA8KM%Z# zN`kNaA(jblatg7y_*K`?ye)V76#6+}2UZJjfNP1O6?24!yN%h85=)tE3TiN1dGW@0 z0n{~0;hFC&tR5;7Wx!2S&Unv=I9UZ$a~|~BbaZ_rc9u^mZ1wkZOnXRRvrM2&5D-!| z?Lvl{YD7%{(;SzpzS!^=;@$&29PG-t7JD3i`}k>(gr0z`HeUJ)?z&pk2QAnD;|)V$ z=kn8ER%OU7#jaH z{6D>bd;c&|e$fVLdrK(V4#^V8om*M=lq{64dZLLl`exdY7pAkA z35@n&^h`8k`8SxcxEt_J{qLSKZ*K-JM|4lw1nSd%uv$bVD7V)ws%I%titA=$ePa@% z$Zjb_+3_{g*7UAZwEf_6>i$H82v(!kb`sYty2U^sql~}!g!xkZ)O!{hjZ^{K3sJVV& zLROJy3{?NCS1|_e&y-C)su>z`+*k_NwGol*c>N8y(@?joKJPm|AiPn8aNV{Bb`QIA zR=1`AW2B}Et>pV9+|#?HpYwZqK@HQuPszWoA@CTVAD6I{G_jb}gw>)mLQES+9WdG& zc*n$h0!tniH2C#E^;I4}ja4_W{F7YHpHd39F7CeOhB8YUw_E|S)buS66rytOo{Q2< zIY`X&Vj9@PZ=jIPgHiCDeFBI?L5@eD*2(@}OX8@HN<*H1r$R+YhKc^mt1)iPW8KW2 zD9pTNMLe$?>u!!(cIKhgAoi{JGq_43Z?Z8%Rf-@7ahCSQ@U_pMEyjE)?A`mYuzRCrj@xnpV<5^aCwpqR3YLH(7ee95;e|dhHo5OS9z0Wp$DE zo+WdWtolQsrUfakr8{PUuDsIK-@%|v?zGJifwk1<8;z%(QwLnJZtgoTX&|Wx?jg!4 zGC&1gb40#ZI|3zQnZl*QLnipgBb@0GEemg~_8K-UU~#MyEeS0Mz4gdP!GhPGqxA_~ zq_|DX7`QygcllE;jSp3?ddK1Pw;e?OvJju2fdi26z? zRzK6yE;+Zo6&ht9^}R|VB6*kIo5AqXEKD{&c&nG(JYoV5-hQ^5+_)rO(#^%IQ>ZI@ zY)ux#-6lEA#@5t$O#6zI1%J!A(=MNOORc&z=9yHE5rvpD-7)ClkYNMk2F4DGbG2Iz zX65Z7T7ux6WN2h8JW+Y)73FsoU%YYTb?r07894}vqS>j{qZOdEIz|@frcW1RGTVo9 zVI(`R2F;^P!^j`%gPNjRS-E+I4@u{(3s!i@xZ9cPR#2kFq{s;J0kQhzJFf2joYP{6 zB~vgPjH}#)5(N$bL{GMLS|h|g%tB!h?VaY8$K^4yqsLBNl7x2gEz#`8mCxK7iyMvs zb^E6=*uXB|f1qGw9dpLcGp?FD3GY zFX2TCo0qpWloM9sq8kj38=(0q@_&QCe^Q_0hJTqm!u+%t!3k*SBl5Oz{pcRyUl>`( z0`VmaUpF|0T;y*hYGCdqc?B`}xZnc^CldMaxH>Nq0=0iK|5r%BR3y}gPEdHV zNb_wwrT@VC6rrJcSJ;J3Q_JX`@_L?o2WbixXgmhssUT%Pcq`tH)#DD6Lb~yV4dIWJ zL*mVNM73QsqR5}}14#>A3)1;WF(UKex$)`Ofx*eJk;3h9=n0~b8`Qtv_SxqabM7we zcTpZpd+&YOHN1?>-ngH!jc3K(Y+5%rZTI|+VxOfzg=A-y z<^-)4nt#w&TQ_1h6{{zpKO6x-s`d1q4B%K7_~NXF6^`#asCru42NtO80&2Sull^}q zdSDT+#d9NCESJkPTabanjF_!@H?iuC?|4O0;3A<{vmN6uM9T7Dt6cpYctR#1$d_9mj@f4fif3P^d!Xz8TeHb0)4-XDj zC6pWu*9T?Rpc8?YAS-AH*EbXh8Vt@c!btMB!2!kpV?SVhgLZTnWKzkSsCwXh@$1D) z(g;Wd6O&@Pk{|t#v?1w<{wR88g4SqJ7dDpvErzrAM6zgrBB0;xoRLhn6q+TrdUZ-nt_BMF zq&msbHLJP#W0>uBm4fH18MLWO)z5BUbJrPhM}elswk4-uC9Fb1%?2$|&mBGp86D(* z;cWMJGKJiN?u420&%fxziy)liUd9e6cR(5s~WGJGX z>gX(`T+HtiA7i?8t#cws|IIVh>W*@GolP zIF4i95e6nK)4xJt)J`~erL}Mf+ks9Vf>WxT(DvvD8j03404wq1%{A92IOM^B*MV(` zI4w1nd^o3)r^h{eVN*j&dP?~00tL0zIVfDMENZAtJxH~w>SD`B%}(-jzyWA#+-hN6 zCV2O634R=FXtqEt7?DwS5+c#w-nzUO`4p(kgB}J+Yni?t<5}G&YgyfE@tEW-Et-nW zcJ1H$exnc_`Q0o#I{b%O^+MyzRH_0Hqk4W0Y;$U1#hUfUFG!&bkkm5R>|!0BjTH7KlO4b=#0tWViUke4_l?DjHgd=2np0pv9;m3?$g0!6EQOB$1W6V8aG{a9a`OWcmQc&~?eeOFKb>EGl z*yd10>Q~I{m>XrnP8Mq@r(Mm8dMgLP&+KFz4^T#*xmvPVl_M>4!5`zUw0L&A> zYm6!QvP%wonBVh#=FIId*!ARL#VJ*Lj}KI)*uFE+GXig0QxfWxk-D9yVy-^b1@NEf z-B*+SeU!!vOpkI9ii|U}7P7GtMH9Q6|0_B6aV0y9iH`)(+Sqxp>9@ zFsFTM(rfKu-p+c}kquMr|Kdp}`KFpU3w@&v2X#r$K;6fk-D7*-r!Ef)wFUSUp{Th` zoxTGQnR&hvkK{X7W!R?0=Wfgzdi=oRb!+aN()wJjCe*wa>RGHh*LNX#HT zPh1C4aY#jWFOGX_H|RzIfUShLVIx{z`v0fwJ>VrNtF-Z3Iaha8cUQgDxo^%n&D=XV z=bUF47#Lv4Fbqgi1Vj-~5f!t5fPx7#qU)}C4U1t{T|UDn2K*4ix~5%sr};nUt?GO4 z05iXGSjNwpE(P zK^#i98sIa)3>bYcrQTvARyC$Z1Z@YQF?Sa3E|hh&^MeaD+=gwwk4stdO+$Z^H&+(*8W z_Q2_x*|O=@OQ73MTp%&NV>$bot=qEf8~*4BILu0*SntYM{he;k_Fensy|VBlC$Gu6 zt+C5TvVOE|PiV8wOcu0x`fltu$SAB8A_4${#Kr9aS~&Af%O|^R*USdi${ovAhJ5?d z5^}GaY`#tw}IX$Ne< zZ+_gei@s@hwJ>(YbWv^&w(VzZVlvW^)VP=3$hGm}`Bgj{f28Sg+RJ_E_{TjfPVna< z5cokA$2lqtVh@SEWdcKh4yx%;_BHH2yOA^FOR?|8c})@;VO(N`h=bz^DJXIkfxeGt zx%B;G?Wn)Fmo`3o3b%Yq2wFo35&#CJl#oIHu-A}>QSUxmcHE348*ZtZw=6892VpO0 zHuO~f^GvmZ(fvasp=76uJJxNDOtXFCx*e9|$&n1E3RI z63ONMEhdJTHdt8=^z!uP&MY>NSzE`>krIwnTi4z4ycH{e?pv?`B&?CvvEy~j9U2}6 zcj`ja6)6|rH`Z9?&SsVRpD^%S5Xo-2TYsZwcNQF!C`&OlR`@>G*El|C4fxDobrN>M z7b1j`X%Y8CczYa#$?xN5;>Q>c&&FtU=mgA(l6ES+EvZ0eMoP(NlW)Tt=6)C-KNX^= z?&XEU!&;{Iyqhk6C}+8>8$?q zbY56qHk*~yk&S2fwOsppSQvUX=kD0Qc}W=Ea1~?i?M2&C^V zitvH)+-c#Ey7Q7fwq)XUi$^kG33UVL4>`+I-ojBUT?53$1ldPhc_ff3MdqyU@N$Rt zLKL-r82OOjeAUq{-M(JH0q-c;Y+EY5wjYBm7qzS#nszv_R7{mBfz`jx3D<3J!A_yj zzyic^U>|nF-haArfFf+tTZMNve4FeVTefk)&Z56yy>{fFGmOx%9{P3o4jwb8!XZNj zNs7fE@Vu2;;>jp*6w)uaVdy)-EOH7jzr{`?P)dQ&qiZ;VG3*J~Z=PK2t47x=FD-ON zPS>&{>uk;O2Pe**cA=%oM?#M=Sw7bSdMQRp{fhEa;S)fhZAyAY_07z(O^i}a;e&11 zYIYnmH?nQw^|w_-rSSSUPfoNj%@d0CJ^dJw62f&HCbzO z^n%oG$ORJFjCS+uCvsNzX>2xQLJOsh^8fyRtdJGd0<>>+PnCrY*`R>wixMDYR#^TP&pdDT~S@Lc>FiG zBXt6miet`G?HcRq&PQt|Lx!zpuaaq${P4AhTXT>ZDGiAr~AI<^?agh;m z$sS2w%sb-bl2qjIUh9du*9p^FN(4@Mv*2z@CctER@h~_qWF@IYfQvvS0#=#0D%lvZ z^Ei{w%1FTOXZ!H(wzQGjw8&LKtx;dkeb9m=`=`(`-#n9w0buy8#`N|HR=@ldXvKdt zQ>s2bs~Yu6Jl5!y(w-!J*hBk?@C>A5Gwo`=MTo{8Os zU+ft8nOsvi8ZRnmACkk+`ziL$cock-z6Hco+{7C@<4GkQHuS2t_5Gutgt1O z#u`Cto2Q1h1e$q;-FO;fkL{oiK(c z01F7k<457pDx_u?>I1UU!!kWrf~I9BVxbNxf}I874AxY`zE(%BaOhFjFNzESblim8|Jvp^OH}s z*n!;QU|fJ1=Ah-q#6HteRKo~`t3ZE@t5?5=*-_35g)>*k!sdzXSwSvrYVSb=x-qhg zrj%XM3&t1g;*q|Z#a@XtUxG61o0x%RxcbAVz^@A_$Dwt`S2DHML0?9{f)c=1%B8%@ z2-P{%oVOO&GwV`XM#@? z#1bv+zO~u>F>7$`P~Eo!I~X4L`8GG*P4hgm3$LZ(7{V_&B1w&|Ep=M(J5^%w1nzWZ z;AEMGZShNz7R0AI4^wk`Ux@LxQ|6Q#v+O>kviHpudEqruD61A z4|x3s2#%yUXELuKvsUOR2B$FvSfM~jtr=23oauSnn(Z4RYjjLTk2{mP-1gS@XDhzm z53cQw_EOKbi?H;efx~lf(0wA$_8q|pT3c@i*YW&-`kLS4@oOb!wx<=lVw0WF(M%2$ zu5TY3rE#N>Wg3T2yi86f5}t%D8;Jz0m?RRhC1W#BjDt-pF6vL&JsYuefyLG!#9hq% za-ZjW-npxEfQ$TeiXH!-Amw$ogx>sz0cK_2i(U9*@GX~?%7543YO4Q7W2PrSh5WX(xTjO=(wm3q>XlC{~+HDH&rTnIt;^~~mIPZSOx|+k1YVN-mMF;s*qJlGO>xZ_-7)duEM__tJbfRFYjXpYS2_{51XUCig#xj233j)z4MG?R0G7Jd@P zIedCJVF%=~l{_ZKHOz!sK7@@s+*E|oY!63R+}WDTZ!yv6fMK0V_+xANoO8}ToB@}a zQvTqlS-QQuGIZtj^O{5Sn%C^Q^#bn)sEpp9w7u$kC<~MJ8Mb))LQ5>x`a3&20Rw95 z=|ZF9KCmol#8-xny$$Y65Pd`5Ck5eXB>A6C-uJ~c412}9(vR_Yx2kCu z=NmeWn1{yH43LtNkC5(t_)85Q0R%F|IIvcSuqpqYEQ+%c??RIku?`&wbgc+|GEO?P zC-;p%x^<(VRpxAg2sJ z(QiwWUrT7v-o>Evcv`-3SYLJ=Tm7A`RrDCLZ|qbX9pWcjOi5=g$6G8Jm_*Vcyqh4#>YBvc>36uWjG?V!h4#~)xO-HR+PsWWFY1r6sm?rP)-NtQ5I z8|?o_p1{)#KEKqOHLxw>k_HoT$A`lkhhvNa>=DBhkdE-WhI7lWOyLtfx0lg{OW=a;aB?~7e$4gxfZt#s8J4u)_`Zi-1cVGY+{0g}t?qiHw#yVGr zirO}>l#|Tn704Pz!BxsThkQhvJTN-B(?|=pBb>Q;4-|^8VM0O4lTV4^*F$d<%UZ>B z&wS!%PEV|C&gWG0BdyF>ih9nFv;p)vCwU_FLnTDxj1Qp)?kk(6Ps3LxPE@+4O?0}` zMY`|lf_AjWCkVVER#QzHba(-N!hdKUbLv@K>@B##;Vm)3jsh9a#VLGo=Mf&&Trh{D z@)PczmPA)<@dwvjJUZyR*(-M~E~TkEE8hYmmqY{pZqo9^F4&WuZxrr-Ia7Xuz22Qr z@w){b(tDE%7T1Y7oK)b)IWt+Kkx`Ky=%V8q^66#lOq7xFtC}=E6JrsAhsbBhz^8Vj zHl71e+h)9joR0o5d1#C==8yPe@jN3FT1uE@A6Tfd);93hGBBZ6)eCE9h(K z%@#1t_%yb1m!!)^#sy!({Cr7d;E6=L8)fYnlZMhgtWc`oaZ(2p!ZPGp)TGV#?u4Lll2y|K z86snk+|}Bf5y4@&cIO3rDoQwaJ+ndPKA-@Kz5n(POh4$BZ!V6a|! zismSIH_}QGyc;!wMUsaDE4|MV zEctWvwSa$oDD8rwRAy(7$<7XoZO({TxHH?@aP}T5`(|P1q7<7y1;|P;T2R6c?mwfptGSMtEKY`x{|MdTM5@NrG41& z&MH_v%)|tQSiBS5c?fZzfzDWb`A#ry2(Ds{#ZQcZw=|`JB$1BviSNVC( zIV<7KcpkyNe8S(?hDJt$*YUsj7wp>0`}5foDM#)oS-la#Q2aCtff0-jv# znDfyDTxw&WiwO5dCIKIpJuc-^Mw_JA0az(8{AG0nK^t6lYD#!Blb!ls1Gns_D|*=M zfflTM%ONL6MotL6o>7NK#}+!4n_0W_>Q6$01=vWaQzt@q(-W0iDtF$6X8qZI$t+vW zj)rE?N12ZONHAY?xEg4`U5pg5F^K+p!7w6q>F(W$KOZzM_){WVw>sr_w^!Bj1X%Z}eyD=K?J0imtZ2IbCGQztYQ@C+bR6=;hCDHD zBca@mCsNdjr<-LqUh@_&or1VCC|J`^t8sV?jrDknl=tU?Ht&t|+I>~38st9trgE2PoPlbQx#;Rd;}HS1wO^IqeioloRIRG*eiJ~<_}R-AO(7XG3VY1 zjU;H+KO3+9*!K+}Sfsex5S@IR6NdhZ&R$f^uQmg0QShaDuwL_}`Z+92_cX}H1c&q~ zXOv$b_p$G-Lic;B576UOtqa9TbC5Sv+ev3vcvvZ^f*h#s=&)UJ^_Fh%(|7to*0>N7 zmX4Ob{!B15zq?U-{22%6lCgr74i6r=>RMmOLbVkPP*2ee*@OrNh;cbJQ$jBGI${}v zN+T0%<&>JXYx9>dc5sVrdZlF;!0lVy&r;cY9`5Wka|Ph$S8mSdcI_@0g12^67;W0r zq8Q=h+Md9}~=$VDwOSH}*L=D@Tpisp2z~ ztjD`I+?w%ujF?N7gn5&m4m}==qcV5G*hxb?J9mOZE=@n=64`B&t8279hFVdfkOEI~Yz;a)8@NcuFlq zD>}Ti0gi!>{3VU$Z?go#5U$BtEo5|1i!pzmzFVT$dzIkoXoSV#N zWuv)^ZcHOk%IMI9sZ>kfP;bT_=$4%prwimF)2*stp$NupKF>^d^q4^|C8n43rM+Bd zrWX?-nON23rUK5>M^Tg3fUw<%9s=)j&iFH#01e|tcPzF;ILo*Yr?-@FQGy&3JmO99 zIF)*981tdfM7A_e9ZlTQa~}N=TAO03t-)*xIFbuhoQc+ zOlSnImJ8XhT7Mu^+zIo@inObIfYc`t!<_#xw{R?Wc6#J{27~x*?m!e1U!Nj$JiFa?AHTymqyaPqmCivgTpkSgNly zy00GulXIHg+}?%(J2TU=l-mI`2+tjxpF0GdvMkQ7vy*y*$DsJ+!u5S##lcT5GE3Z` zrVJrDxe^|>K*09m zh#gDVmwyp62;R!jx=LCz#~3@SA53oMr|Q#6>CP$^;QCkEg3DUEEn%IVX>D0|%Quj4 z5Hs7i_O4qqok>UK=A2`v-RU9M8S@qF4JcYMWt;sL$PrBN?DW`*e*g)6>M)^~B?aOL z3irbgU=Kl*e5ow_S}WxjkK}D9{nqy{UhkG1I9M*!**7t1<$BFAuN!*Dn14RqXx)6C zDOgy?uI)lmspPVouL8}nA`QIm!6@waS~2}eqb)Ca=~WSH@90<22J#oIW$e67SVp(4 za7$~RU9zK+)v*HB=jQLtdlm|*v;#jTuK6D$4t9fy^Dq#MC-Ux*<6+Z#oQFA_cL0c! ziFmu2kZtIN9KSW4$-4`yQxJ!^a-;VMEB3e+o6>8o4ZXj5z7}7rtu#YFEudmV3*l zbEezNIT!TIDbjO-3SmsbcVPrYz~~^pK6`PLs)X7i{`;t0h9yT6dOL+1Z)Dm=>ad%6?DV&`A zGWltkr{jft|MA?FrgV)d1KkodPMXWO3#h_Of&@oRY=^06})8t){;3z z1vF37UqwIIj`BTVhA~qutsNa<>zA_IksK)HTK`~}w!NNaNCOTESNB`uyxvIb*#wXr z#C)x0)c1l@>pmx!>6Y2~5t5`gcjR162}f3}wNRH=2AxfjA}S>TQCuv|sVv?*b58!@ zd6h*MSdI*b^|UQt2Ec=fVcOCmO$|z@SC);f8OTDHuxn)OHAAX8^o;?R{kcmKZ6`ZM zs<3+J;Ar4gvA~%dtTWa>`P%I{DV+r^@`^o$Zl;X>P{xkfy#-aOy&c-EYEy(7<4K;A zyaIZkZv}@`oTmaGp14?CXUt4B;>$dfR^m*ILpIFH4Hk!2Jc=9a#O@IL7rF7=h)a*+ zkW8I)m# zLC|^5r9joe8RIF)uO+!qn3zsEnZgZ6&ph9*CYyJIkuqpn&jHNd-rh6D%wZV{>Y0?j z$xbayVL!$S6}Q*QEZ7>QB=yWGFF(CI5>vTmLB;|+KxiO$43y8Lx}g=flQRYYId(8& z3)*zH1x#!a*iJS0>|X3kQtdy)S&(8`Jd-ij~ z5H!XTPw~U|q@&5+(8*?cmYVf*a}W`ihIRGmOSK6`$ z?ym~dT8`w|v8#%vk$DXkK<@pluXt~{JIbGRsH>9p^0gGZCGPgThdEgrQ9uoU&(d8J zwqruom0dK)$4}lp$eFE{!qSo|f?!=#ce32dy{&G*&e`lhInltxqra5Nt=?^VR?oae zX`6T;-A`nLbbc5G1ys1$&4&WLv)g38Iy|7eyE1Y%CwPl2qqRBe4E)M)GC^x^H$N4z zMT>k34G<%HE_|Nuga57US*LX9a`bplqZibojyy;W`A3Gk^yvB`P&`-H#09P*yT7W43odG4)OT%KnbvD5 zv9x$(DUsa3oW+LeOdqW7D?p1vrT!nFI~GFqaQdEN7UUiVN3KW6!B zL}$8C&&#FJI*(&7`CG&1$O5rpaIvxY%)=~i3WWiE2cDp}&LmYc12JU64G&F}>og)) z#Ir$$J3Dc|#Iy>w+&&2B-uX{Ri9?zxNxRS@=h?Q6j?UHDSS2tDcOL0c4NIy+JP}@ z2js54*ygPDpoN+$2_Fd1>pQ)wc0;>mb$w|_V(-G5G;&z>edyZ=ijRhZm^EulHb&8w zwJZ&qK;O#z+yBKPr@!Ewl(J>ha2A;2uQ9dfo3d%J%czW%9gSglqZ?GpCUcN)a{v2c z(-SXw{ow~Rf<`S$DHJX|UCmkdi?43{nCuu|{YH{R&&Tc-TWt1o@J;$Y4VRzH#BG5& z3KgjIrrG3awk)Ps>9}rqK2Ow!`RDNs4Zl6Pp9Pew=~vPxZ#i7R#kN zmuB=zkC9fC3?^pKd~#&NDfe`?0!q4eM*-A|Bc+}JrnX?NbRRS#MtzLYRI7IkTSCR& z{`Q`<9gGa-*x|B>+1Y|=#(+jmL0d;J?`Eu8D}z~3v#viAt6_G82L8L5=o;d&u+-m@ zvNGwu!SYLcu%hOdp0kOmmGYKn&}*#PG`LIYH;>b4MnrrH1e@4;n#0y zdgp1K!rXLZ%9&Nngbaqv9sg(?5*(X9zW0D<;jW(4Np!dHo-#jn>Hfe^@^OBgCo!GI zu<@xucg;&2$k$RP0}uo-Zp5DZ_h{gZ#pkeG+C69SWDf?ef{=6a3l3K-JGWs1$Rp7| z>vooh?nvev=c8TR;Dvs-?ew%2R2jX#Wzktss*zRsjHP8U?>gx=ABgf36*n|`a=Hklv zAZTW5kfuVgGj%`W+W^Mr5OVq$C1CUbuRINuM0cZ8Y*(RDg=Rx)vf2keiwfFH8tYBl zE3mbsd#r!{CTL+7rpKDCj3i0k*j|?QAOUg7wv>`$R(5ov?26|2D&MJf0Nw4C@@^`8 z85lcc3Qhl zQfM5{Bmsq6hzmgBwoqTJ4-$8)PHco6L{sX&;~MA>m}>&3`h#I`cddyjPykf`rJY^A zl<8SlW|v?^MwL?lHlPv#2O4Pig(ofcNv5I=^&CKc^;ZaQ=j85Zlg>vpP}49fxQ<2z zr{%TXQe5Of)6W=I%2&qRCt@1gpKR4iL|QObG5k|Byssj2z7ybGW}5Xc$}2ui(jSle zL8V`8dpk`M?%{mzgk|^?P5SlY*@(H%Z7DFK88gZ@OPmA+WOMIJrL5Y=16!%WEW*D zThylk1eBFxcPIXP+Wp{iR0xU~?p(jf*7ClZ&Mtu31PXE;Ht- zkKp@-Z;|$Tecqs>tOL~~utCDD)OI}nKl+gHr$NjE20$_28YyEPJ;K_7sw?<`3OvP7 zM^F8M;o3k>6}OU$feb~M6k0wJv5$cf^K>fUsycKP39-Lypj9bs$UqRLwz90&KilWZ zW7-2W=wmky0`jYeh1Mxwm4lJq)(QQ0r-}|xe$WwYeJ1xN_nqr@{4%#wjy(sa(nyZbkHl#RucIW3`Vy#kX4g;0 zCr)hy;h2^M-2agwQyctqWVH-r!(A(~S)7)NYM;F^AMU%TsHZBo9^KY&v7He+w6T;< zH{bDT%gj3Ib|w#hj6GJLyM;R{U#Q5;oT(aI; zGt^z;9x^Uuz{k*@rt^7BA zTsSZ-S1YOq)_!0;zKUAg(H3q1c3RlL#J2h`nXr%5af9RG@xy6&fr`P)_()FjbIl6^ zqhmzX(}8VX36k^oG~Ouw9!$t~_hNu7mxa#s0!YTJ4{3ckI`6D4!aT#6JU$O2fDHK4 z<+P7;Nqo|X?#HrKt5W|l*Ze)Zh-fu9l@As!s%ZJ#z?wX}cq??QGPeJb&y+xt@G#%M zR-2k}UVRrF5#!j1qUiIgMvsmcaq;RC_11AJ3@3dV%tt7#r$S#-=~Bn{F=v>ZZRgXS z|Gb6~y0)_oBl=1*Lx_*WUV^pucrMP1j^VM~95aYpLsWPV02-j?`lfal1S#w0I}2GT zr=m$yKOewW?CVSB;x{s(es{_+iHkm-!hqVZHx;GXKqvJ5ey*g!%%V^3&1OT#uUsZv zVz@ic^YlnJH=OTX1M%Q@V*ZUgRCpV1-1EsJ7^Y;AQvOn8EvjpQ-!J9lC?jHtjg$Za zUB?{`m>-zxZ0vn5G1xD`LAUi;j_PjYbcN+w$I9Wh^O8C~uxJdQpdRvkjB2h$f7v~P)%-?~<+b2$5 z=!+l8VTH%bh2vX21J^I3IV-z8u!z_HnA7D<+cHKux&-vr8CVNkw$QIxddp;nD+;4D zSU7F7tR-hJT455eE6FolhibbV_P+hM8AnnwKut@=OBd{#9csnnLT?qO&58!9SZHXZ zvF(eE58yQ;PxAohy8&`a8hUtoZqL4oWle2_e&yms&K5liDZFAmunXwu-*{Kj0zbw? zOKMZSte(-z$A5;MUXXl=QrSUVYlEM?6}snDz9;(brbn7SH7Bk$M$9kbFu#x z@?vYkf0CLT-pJc-+!}KqkO$(7i8DQNIC3|-4JMM&^ThbVA*vwalo++SHYYyM3TYhz5FpSPzP>}_J)v-MUGS!V}fk1v# zh?L+x5qli@Uj0w_FrE__Nh0GJ!4|dr^=G>5_y=aZ?q^w|w5u{V`?mLutVkDSHFBXF z+TUVXwyP@>^`;G~l-5%~GaF!Y(M;{V6fOhddSkx(6bNkecoj=rcuZFaLk?-MM+*K+`H{=p1WsDv)o@ zbi-dT5exa*hB(XXGwx`3f1Ie3x#=g4qsg;)>x(=Kv(G*+5GXS~`4W52uCC(CP@_{a z64&S*qo+Gt4-Gj&Lb_C5QQb59>46J(%eoTs|FT~J9 z)5=yR3~Xlt0595m85j^+hq75e*wEt`df3-e2F!iovZ86b!z=PF3%gC#D3nIZ<%~6N zNy)Q=&gm2Y@*^F#o(p?h#|oOWsQ#EDfLsD~$3Mpfqk`TX0G?l`VGDuUW8A_wcusj9 zkSDXuCUdR*0^CAKD6;s>g}G)h352+7$MKu2f6u)JT%1g%KV5;)(mWi zV;+sk^mMDCHgf!@xjo|jq0^W~hcDnx$a!G1Lj>lRJ!yPU3g1}jBIkis;%;Wc<6Cx9MtoH&pCA5==O_J5^Pw4dCeV{F zm7`#W$b*x{16d;_jDuA&rbX!DcXm64IJ(o(L4lv3?t%$sw3L-TkjWSs9gJjS;-ym!xC=;MuPh5tUXGeudvf~7E*52*w-1{iD(8*pvgJmz zF4}AFl#M$#2c5Px-qHC3yQBW+LEuaTzr7ViKkTs>^Z3LVjcIY6TaZiqRI-pu3^y%q zS`S6pN9a0F@H}DWESb$E;%gSyJdjz7(|L&AD-pq>CS) zJ4g@Wcfu}I`Nn3UFQKQ&JdNyvIu11qf{=%_qmkIo53#ZKZwvXn>Q$4?DhxXP9GdgGN0wlrJEaBVcho;x6T$^7Z5oEM6?7)Ni9Xk@zg;M)_+`T%r0!stA}PgsD=F_rA9+2AIvrfJjnI zXK-uu+nq;`bP0xSAHBh>c&&T)f*~Mt{`xFz?*n@TaaJ2Z(Se81-WCF=7aZ^ zG2*`hD~VI@^|d_cLa>*&HD+(Bf1IVOEm?LQQy|y{objMdvZ|d6K(1)G`Hq%?oUXhI z8r^8#u{Sq^fz>gg*4@!o5k>c|ohf!#gB$1(h9$ex=}>v7ymMUxj@4TT^s+gx!?enU zP*!|!*R>nwinLnOd-`p+`IBX^Nfi!?>A3 zJ+0Wtb10lSYYl<`cVlk5BvFjBMqUvT((d_f#U#t5*Jo-9+%9-L2V2*1^0-a2{=aoA z>cCeaXVQ?97L0PE>GBq;+8Wa8{}WGg&<6Q>r?n1*o4jr)XhcSXYN7r+lnn^r?<9U2 z6cCTLYA+qdx3rsx$#3n|kl)8Mn!`!^CE24pH<{6#!4S1C6Voc&9$`{|*2F~-yU2YK zV%hZc{5iC0|awDVcHdO&-5vEF`>y2i-Wp(gjC6CHv45Ngfgp zbGWzh2|QhYq>C}I4L;rY1`5ygG0H{wi^v~qWMlqSI5-K;Os~;jc`*#^#Q1Nk;>_+9 zgmbX2qh?sj^fIz}c?(*se{^y}VZM{wnGZigoHT!C#>n++(4&Qtvh&m`J^aw1V+?+W znVp^eQHuR%E}fems99>MaK4&Da;}sfjAYEUg*E^jfo%OA3cz~3U}`xYHFsNyTQnfpa0aSUk6L^js8^4EmP#!6$QFZVL3^&%2SIQ5R>fcV4e@Y@4 zcK!qetlHsazky?h;~sZn&h8){&udx%4G&TiPnh%Q($AdCFR1e3qc?6R!ys{HIWmm) z${bQBPWnji86Hat^B2HV@jX;Pa1W)wm^`9iDYo+inj3hWW=%8%XpHw}>wyL&(|drO zWAyt3jC*oOUwE-nY>mLu*<4h?Ek;E^S6-v-%%MmtJ%S+(XU;1YGn&%sb?&MSxmi^o zcG7`4V2GKt*S2z=WM1G`zU!SU3z{z#&L9J z3wbujN^XY+VgeS5Wg2+_F^6C`uJ(9U7bH7Z-^&7DB=#kV1B1bJ(%=t>{= z^TL~^TmXHI526C&ToJ#C{L3He3T*cNqZmz5O0wbF-qspY9Cq)u9%$`}Q8?Kf47eS@btk2Oj|YG6)Go8nF)8_D2VDdi5?E zroJA-RQykCY6ouoN8-zxZ+&pZh~v24Q;&x1;XsrYVtH^rlxR8sO8uYta=7Rd z?hs9q_UQqL5QxFj;lKgOs&IUTyz+;Ap)86jP;EsL3{38BM);bpUZo+p`GRYvc`J;HMs`tI2OaLgw7 zVGbwP+9_>4d5R)bJm5rw&AI3^pJCwycs>+mcvsO&SLK2PpE~~AvhKB`A_*4EH}jZU zs+hceA1XVzPG1K~lL@Uv81SD=Z`-x-PzkK!h0pJI?7sbbS3)BWN+f&tZs{->m?{IX zzN60j}A2``{tFDydp^bdrOs^3t(toYypxPFRb`f z!BLzb2j1!|C^N^`C62sfVPA{E3{AF|L!5l)vdK^}@cv+G-qx7+AyUza_x%Y^3e@5b z%qm*I>-%p~4(H&xm{kBv%sq!YO6;`cC|tlhXaK@uLy+esKM78V9`VwHye%>9$?g*V z2C{zqN8)pjzPRzVZTt)PtGH>B(MD1MgI?!Q02^;d+<`c>2yNAKi>wz#fMm!Q%ho-LMC2zyKB zyeSJ?biUCx?COO?9lKbx7u*SU zB#RV->VKY|{_@KeqthSXbm6&Se*4-xv6hlbfj+%!_0IFJ5Ny6)2eO{7GUk_{OpM;J zQ+~15xRE+z>DBjTzgU6pOXrm8o^gS%rDZj<9%4fKmXs0tw{C3f>6~u_g|(`C$C6MI ztqmKZ{N@ea5>ACxdo~<)5vN-ar@zT_pCKqzZ)rNKi8NZN+L%2nUu?q%%jh^Nxd(Ez zSln!wL+n9ue9r4Ut_Sp`aa70ZEx9>AYI)v7-Ot83`3KW9=H#q`Q>>)RZswAjW4y{L z2|rIrofq=G$t8M8d^ubRXy@dc#m2Ml zTPRz>Y!NJ1x8Qhv3oSLfQ*R#()!Oy6uzVG7y&;x1BS-lf--Erj>A~k+cYfBLDEBw( zNQp~w3&f!@b{e?GjFVyWvHe8vjDsW`GIq?^ze4V~Fevx|B^9Y9|HI>J@@?R+Wy0A!H>z^pjtuhBeTcGz?QLvrz(L>`=^}kMwFB zF&jo|M9jux9zT;+DSBtZM@RV*UINP`Sv`rfRAR)BVzW~KkK-=h!Bew|@yE45Ru!$9 zPQE!?o}Zt?F~SVk!yIq&!@8*6nx%{G_4-2A{5baweG z_Fsf$de3gOaL!mAT0@@V7u4doo9fG@bS;Q9$X(_}HZnHcnN?VB*@0>OX2y0;W`ZRP zv6fIe{(+eKS=?#V|D)961sCQ7DU~ri->B-=>d9g7(McHyzo;Ek4wyRcnqDBOK}OJ` zF5CmeRj`-i4Li^SybxK`hvJhK_NPh_|KO1l_d;SD*dkej9Ie4fFL9r|;JBTkNh7N# zX2o~VALHidr#k*ra{J(4fZm1sgXiQ)xJdS|;=E0~!p^|p?6)yx0Pr0<=wHjeF!>0h$pzw>x3IIulKf`okkVAm|Z2+u63^tScH88EraF~aD&r{(KU2xF6xQcV5-F0u$S9Fd8FO=BI&qSikUue_rDHJI-T1lnKvhsUJ@x zNn3o7r7h^PoxestEl;+^aii{#=p;zZWHW_+u<)meR;7#;C|37{| zYFgtLXL5di@4|FR%ci^?i&8SGC};AB47(7o*>3DV`oLE0Y3!|YPk~pEhmfyu$DxNa z4`yG9BWse;zEn6*3Rj%SC*X_6V;b?q1o2_b&+dki2^A{-6RGsRtE{FJ0g4k)+Wlfo z(~6CnZ)DMi*2<5>EpoXooZ1t&M4Gy4$@-ibUDKjRtF{-?SqRR(at9Ho-_cOw0hSk= ztsv}1nRzP{A>d5Hyt^>-hhnk>nk3H9iVZ7;nUF+!B<^`jM{N5vybaV6$A5e41$!zc zxEEJn9+_oO?CDHZ%3V(A9Gp?)c`Z{U(3Oj{5Jclk#L_P4A&{O+GrWhG2A+*Qh;qxB zRH)JGp{@)MZMc5qWLU(Cdpy9f(Ia{-Hgo(4Emb^*Gt!w1bIhhf^iF!r%|Z`gC3;Le zP4tPz8A`&uvyZu_(H|Y=Z-L{|Ysk48e>OhQ=`nw9_Kzk9aQr9ve?#&IpY>B>1|txt z4}!T+Fw(^(J&-a^_5_0L5aaKEzJCg8F3uEi|ev^TI^Q58V+ z0RUtsXusfa6h3;pM_9Ph&EQjNY4g}oV0oZ`rI)uc*K;l5=azS7Z^m+3CKscjHK;nv zmLntrqc}X=bF<~(KLH8PtqsPsH$`rBB*)f)mmuY9si3!;h3mGkG{ATOUlg$4lNr76 z@;rO+uC|nF-*rcro2sS4x5x7UNC$u+1VPr5+*@{o_Y$mKm@_IyS@<(RLc?29QcAb4 zx%%+g1ruAPzLhhZT^?N~pi3dMHAz`~$Y%98s5#Ecd+XujN^#eLGX}I=^SmNEJQ3PTZqt36x>C6C?ZoWmIS#0*@4hu;PsZEX z*sYl>#mQ!dNcGpgh*JRk7XWpbmYT9i%;a(=-q&G^BSFz=Wqw6NXKL#@=5|16TDKQW zffa6^o~>HF7hUyX#=3_C_5{;P1<)Yb?VX{jrkSQH0J5dpGN?;T&*(#Jq}^>aM-{OD z17EZx88ZcCki?zrK2`(37%ty>D8pk~Gx9^)4{Jt+@JQ2ROH$bBorm)F4!{{WetW$0XHuZRhI4 zpn9CGDW6Rhu#-GET1eaJqc`lng$B$sf@R1<*o|OLvOz6ezhg~EN@f{)n^$G+VP__yUkVV4dy zK~MR*YwOM7;eu_78;suT2f+Skb&oD!mRe|ya8rp4@xvTM?64Ne!l>QzU%3o`P)mLl z3FW~X^TlQX3{==j8|pZ7YFm3={ymA~Vk<~Ab@sc83Lj;U=>xThO;pAD>hJ(HcMkxs zYIp8i(bodPq>s!TJU>NaxV;96Ai=7gxv-VdA)z&Gvu@ER_YvxhPp?=_$tU zzco}!cmJpGwjo7KW%Kn9kGib>G~K^u&xWFFtEudzlc-U|tX~xCkdI)uMeH{80HM2L zw${Ikh`Ewgpb%OAEQVlfBKA%&2Q&0(BWQ8|1o;07=dS^KV+RG+8N;>#XGFwU zI99k76KF{CDDEINs)@P%B*Y9X4>oQOepHaVBUaEqPIx@~Fn%#Zxe*4zKS+_U(V9F zyRguhU=?m;MoJAqo<LvxtGvCMw-w*$H@⩔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�p^#UF8=I}3%;ZAoD-F55^#LdWDQ)e)ZpIft1cuV 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℞yG!z#J|*wL(jdtb5L0~ z?^*HU?Xo2fe(^CvIhqBcoeQE5wDpihW5HofEHuV4a20k14!5H9y%;5B%ay_}dX#TR z*gO`Ovc|U~dfr{O!oLI02KE=pfa$Z_$5mPSz-dT-V66Oh6uK*@_(2{rX7v!ijrYt!zFI?RuKws5XDk~-z?tm7`z0VD#?Uzy zhU#B!Vb%%TGVp_gkyRV@i;(ig#A(49)|DhQ8egrjH$dXS1s`Zxk$b_&2zZ4^po9B? zGt7B`zk)cZg3i}=psO#-r`q0$&IVaD!U771$aHu~x68@;?BhrgH$Gl=L9MMjN{J>r zV5JC+vVI8mmKNHisFRR!!_r`D+(m<5xO+t2LBpH8I!CC~Zh;QdO4Kdmu?zotaMt@F zR7NmPOkjvQno;k;UXN*#6k^|<3y$OHUg^#WPY#p~L0{V$jNPid8+uty;n5*U?(e+R zP6ZKiR-jMoAWW8^l~DaOgA#*MQh-5L?aqV3Cnr_0Wv88sCM@j~*F^PJfJ0_=(6m06 zxPgnp%UXv&sMJK1ZGodt58ua!HYwb&v}vUX@_MM*Lo4cpB8zXX$G7wSPp!28J83?t zHa?ozYU}-VeVrj0)wPK!OZ7IeV!bZlVFBngML9A5%^G_nxDEC3H;>f>+eKxrToqms zmrJfEnwN@lG2qjdu!}KZ_nw5WThX((=Mw0R-ht`~;qAW(Wb~q^%NzqXUb2roj>ybp zao=6KEzc^gJOt>vK+Gyp3JUAO@CW&k0V<6kN90zJIWTyxtN_fLS4RvpQfAnk&ubl7 ztp+AbvnW|QnbYs{L>3t$#q3>IM)3yEMbUldZ_u~M9pt=tAOte+|5C?+KuV`ERf1Q$ z6P1iWuN}UJ8l{9yela+sFav>ZJg1qieTQ`}7Y6{!8{|C*Fd~4cGN=^11QSaAqv9%w zJ;A_?!rsnwvvX^Z3Xji<%3NpLm@DiAy|D0B44)~);dWt+K4rgfeKF`fuiye=0S)^o z3FED$(l|y`5+CvM@Y;hj?WqWaM#3u^wSlTv548RX_h0miYfVt$Bs6NBAA3GVbJs z3Y#0NKrPofY46Re8F8%i{cS^bMm{lN$+Mq?$yMs`UFZnh2j^ziR4IL4!H|KXJ!2q> zkXWNQIbFl#h#FVZ=_m#od#paZFLlau>$f*dG1$K;P!m-O&qLUv*H;e|EW=%Yun$5# zez5gy4fQS0%_yp2a{1E0nBEYGONt|8g(8BK9tQJ2}gN8WM$ZXyIcAqtp?_J`Myp2>roxp z`DdBWeJB8ea}z681A|$j)aym34FsNRSt+2HGITwD-OfuA@@z1JndhL{F8B!;fKFr5 zca64i`>>);bY4dJ^R`e0$GtFvvKu;XD(ftZnrJwHh(%l1v4SX8#Ix!K`$x3@{YPRF z1?l{Rfp1thqrZVr2>SvW`VF*hPfVCWR7+BN7C@&HRZVev=Mt@1UEl668l~}eq?o@;KZKw$65O9&@aU>Fdg6yBJO(vN|Y+aW`*XL%84KQ=K zxmj}yrIzb4_#(PUW_H+L@iu`pafvw?Xx!sN5;dFUnhFKL-UpeTlv`!hn~70|#r}vHU5|2pLJfOx zz@DK2f%Y8G5M3m&1F^Qzw8qrKuT@6xAi1zx+t${SCWkwr`=&YJ2~~wXNj63&6F}O4 zkdoCiJ_hqS|02gmza%~F3_RYaCzf&EC2@4u+pFGDHJ1``uAmBC8tB4$ zN~6giNx>+Srpwjohi+N1ZdkWdo7prPtw@F1%nRvP>f4mw@SJb*#+IW?O5%LSSbL zb*&?kiLN~(mB0y^&qg!=8*O2E5$1(QkHyKaBqDjid^G`2BpB->QrX-yKr4u~&l*6b!2WO4D^4x`DeH614$mqcW6SLj;1@+~U^Akvb8N`Sonx(sm(s~a7E;D1y zX{@tFJ@leR+YL7{J970EFI&D5qVxc(-^L`ruGcI*jGLlR*I{!KM1$Qi$getbaxhXx z&sSV%pL#wt=*OCv&p@u*3!TCrfUl|#eb^m6=k{FO^SqwhdtTFXAF|!Q$}EZ8(~?dC z<{`7&oZm*CA&@hp+s$1fikDQ6p{5z76nHC-**TgdPnF5&@(mGY*WE1Pv=&-zbp0%l z>t227hD_&o^8{?>z1U(2-pg(0OC$+Z0kWJ|{Q-NBqe9uRBj-@rR)qI3@6{iQKnW7A zc=35*{f+N(P}Zrw>$-t^LCCWLFiE`Cc?!lNDKC^}#KM#+EkFFf6Al75QvP@h`(y9t zWA-@M%dfJ_MRg!8mi^*r=K;NFIdK)@LvGY4tk))l&(BEeT<6pY=hQe;5`i>r=ME-( zj8sI_s_>esCh2GgG%q^awlmh}-djQntV6|*aoy`il~QGatC z+L0#~g6Z`w%}QjZ7;8_)wnmy+xnLD=lzPcseX;*VDf2Nv1HEHb(WdShccr;Ek6HPn zhm^{d6;*0rl0d9qkxKkg=MQ~lrRK-cij{C-ilD9748-O5PFoB-XJBB{t$J9jCZ$b8 zv?Xb^`Q;ItUo#9iF)LI@&pzNl_haPGyCjOm)}pTVK+hlY9Fu}(*a#fO(yj-i<&mhtILvT$tJW}b&+k~8ahaecHA6pU!s ztix8)a2e3xJK2M3O+0JBmgi?`UcpYr+eZ5Jn05Go?vEjT8~hta6rjMT)_!-%+O5k0 z&m2gYqhFyyfu<}XjVP?#5hNHQr-B>i5poP0%_qkD&M1`21Dn<)0IMrVW=pTEXy&0g z-KfN;?nM|FgfEPI&m{)ZdtcSC0&_n?Y2;3Npufq^&rX|m2@r=KxF2g5~jlxQW`L5w|i=)Et z;#Qo|Omnlw#7u-Ex%uX$KkUF%Po{mJ=4p`BawIY`Up~Kfyxak!hgCtCk@Qx~-jNyw z1q}JG1@OxbiU^@c08?$6%f*ihXoI71M`6=bJL zM&$}|U)hk+NnUkZp)j%oRR#4wm=qM-B`N6qN&=hHO%{>_J?*?3imaQ>x|pKArJHF- zKre7TDYyy`gZm79#Lixz7*m1l5yOjV=hjq0v#_GHg})wAw0<@1TsdHGaWF{c)rCvZ zrqS#Z3F-zxEjCgg1nG>An(Hj&pCpvwY`bJg&Im&>rq>50%o#B*mZGXCx(U-z3*tV2uTh7R?ravc;Zs{+ifixjH6-?-qKriNRlj*I)>@ud^`VC~E^4cmg3+8~KBZ?$q0;B@I3ed5>vLY%3(by>8ep#Npg( zh*DP0+*mNy!3n`1l)>F?T-SL$Cd=4Ym{bR1q zyT_jBrwt}3w8040dp69i2->Be{2~btonLmP;4~28w9}J&gL<*B{`w?*_#=t1yw@uQ zPQiQVfUh-rS-YfeX6);qWyyo@EXQ?lCSbCb$C$)V@NLZ0wlSA;2YPJ}^t>N+XyPc~ zRp@SfkZ-}qRPQ(kDkTfBhi=K4+6_x(K^ELxwu6&#(#DLfnM^u^3i}8I$a-O$c)Q!{ z$^lK>{0S(*_j8_n5HbqAyL_+^Qq=r0HhZd869j|45nm3uqC-~x7O!woDf#6}00=V;9oYJq&JN-qL-)3UzrkSMDWT3>CA<;bLs861fF9q?(3ZxeTV9DiQ&Y!c%a2L} zWjIEcrd&6x#ga(*uE}wt-{$-HC^}(V(e3zV&yRZk4Oj_uc8}(OIR+`3ceAoi6>o-Q zIVj9P%gi9JUMwWBWC7gL^7s%v+04EcO{2SsaGTiJeL=F@f@C=5ovTVs!$Viu5 z1V{13v2YcB4a$#Tg0N_6BoiSFUm|3ZS&=e7jg}6*gVD#<@m%D`L~TelM>;~=QqJeH zsZ97jZjW6bXPq_(YfHj6Lq)tR@bFJx@e<7Wx(%iU1|}5JjXr2hb?`_PBBxeBN2LVm zhv-+}k@jRWh)a60)He)m!yxcNYUk0D9dq6@4Om2D;jSgn{rT%{D@Xj+%_u+ z=78{`s8B)JSBG}CdLsT*u-l)SLOJg9ElAy33Z}}KRaReLsZ6-iPvurY|j9?Rz%e*2mrbhBZINlfKvp*Pj}+ML3pv6SxB1< znC>W^Moy_|)}AX7U`Q<0wW2?CA&~UI=wY;~fWbHv!T?gOvuI$#G;1ZBb^b=HZeL$9 zq-e*wfJI`t)m~OY>)KT6W7~TjrMY!Yv1&SNb{498mlqVFzH#2`&M|$RuaD=V@A5KC zbi79ZknY)6213T%I4LJu>aSsIJWJvRO4~hbE=%oTY+alk?a}0B;fixy60DiDXDJMz z;DW!8BIH7zh;z}-<6*+W`#c|9=wf4GQSL@@Y_>SEMMaJ2{0mV_Fmv+!3oSmSGXP(r zWz+qJSe%H4kFV%(BL;}pAm)Te*VA9b><^Iaf^ncz0X*6hz_^0|gna`@x=fLbkaRyL zz>eu`lhPZrp!FO;;8kIV(cDd#9>CnrN=2{pDZO?}7Q*hu%d&8uQauQq52$d{3*dO6 z=CKE`hnHlv_s)|Ll|q-XXM-*TZag`i0!lVh)6gDQoBLx$b%+IVU-!WlOrKbSp6FN} zlZO3DW`UCU&piNQpU83;0Dhm3`8Imhndwbs%kbv<&@F#sY8G8Py%#Evg=iK5H`gFL zi6C_w73*<<2e8=hG#Sj;*r_mvZf*y)7{#*i4TK2NT<|Ct3d$wA#Eb1H%Bq_`ou&bj zPooBb7L*{29lL-W=y7#C+$39g{5*wOQr|gfQjPZ#h~NZJtND*c!xTNIG~f1 zBiz;{a*lH*rTU-cy3!*Q8>TTOU~xG1|aFUa!T zFk471{6Xtu0Natc$3yBRfK%0~|0_U~8K44VnV8m)(f$4+WB=N4QLvIR6%L5baf%S1 z(^BDMuy^bTtTR_J%!gUQN0s91~0uTSPAKtv6i+dq& zjT$`+LXp${I61u;ilqu*T=!y$81T+AB5?!;C@#553KDe@&Fm)H+U&9H;inn9`kJy~ zDy7je3(9N}+mT8|;aY)R!%EEvh6pDsxmv*rBXEq!Ra}X{7|0BDVWpt^2)r2thMpZX z_G?k9=xJhBfz4RUDq4xDRxgHLf3#MW`y^P1uj(n-)pfi};!m%({I*n|T?0yi72w#Xc2SPq0{>jg$Vp+7L z4vb-~EbLm;o!26qjEKBsD!B^& zOP^v&=he>~W$y%t=Vh)5evJXcOYJ^YQswCIU!`*C8mT6{hYzve8MA-p4>~f&sAL7H z-?tfiu;D7gHAX7FHkHc&EvAT2S0nrP(c#hRin@FYw*6#&Ig0d;(Gb0%rm)__zk~1J zu3PUKu#EPDsLJgJOa#LMe&t;3`~#1~<(4j$lnAI0G!=nVDVBN8pEgv$SVR;GKry#g zunI)gQAKcaya@b%kTR6Qc$p*V)iIJ=7401YpPa`eUp7GxB>p7i=y3Z?RglJBIHJnKFAfU=;Haqen80=>`y1L& z+`lq*g%mX%a>co}=^4E@2>;0~GFwroWh|S|g6^zk zre*;K{CsZe^rg_`qVu`qM);8>jTEdLmp55>AAv!HVMo$Rz`MPZ+C?DvPyfKAi`=+g zEk=DQv@YDVKM@K5Nos2nS*YxuOSMu3qJI7ivN%sS=1Ve*fD?<$1rzr~vCcf*v^2#S z0N!J@k-iBvV*v!-Dr=4Pqh=HaMdm<|t*kCrT%eMY^2ylTTO~md*BgXx7j@SL>qF-X zW<-%!VjyO02USsvOk&-8DN@Q?AzQ(OS3N5qjReR@r7Bq^D9CCyjVCv(S0+i?X3=0j z6i?Z3tHNHNDv58^U(d|b`_*NZhe;aK)Z)|6PIVjeJ^O$UkRTsfXH5Op- z$EfNmyJgPB5-gQ=ot&5zQFLtRpn=HL@Q1gRFt*C}UK;Cuc=`c`GI8hokfA~KvV#$E z2mj6n4ehRP#HI}qhr!|XJKj`+vW8kq0aADkX}%CSv)ohr^BL0jP{&An&gl7;Fw~8l zp(T+S+A=?b!DZ$GOUo=F$J+8_FN3$`*fy9`*Bmpt2mmJG9P=T-%qF==U}l{BvUzw5 z7n;48d0iY!`Cs-mGPlcZk(@1moi3KOC~|;FhNtI+IlMs!Q$HUTE#N6H_t9ne)%i1C zFeb=KHu}|FR5*cu(84SvIrn8**o{SqFGNcMfpysxTi^rBC5CJ(@yf+`v=^|S3fG(C>eMK8}{;2aCsM4315~H5Qw%eI19CG!YWj827 z1u;5hS5dc0p}+265CFQ2+#A}1C?WRudxbttUwLNR&3OjCi}iGfBUA53Rq*5Bm;A?` z|Lo}q7~jld9_~tcVz@LcrkFa5O(=*ai_HV%h3JCpJf9rN%rW!$-PnbjEj>8~1dTPb zw6dryt~ji2tdT4t%HXO?{C-|#0i^&fiR?S^kL-Q`Efv5kC}}Nq7cYfCw0RK#SLFK`B}KIanOz&$&l;)>7gQlyH0WiIAh2pfi&JY$$G1OgUL z9==t=B7^d_4}wUHjR0H&v7MCZp^mWSS=m#8Dg-pEcr8^M&957#?y<(IP%i}D*cy~B zOS7XTlwjIzOj3LEYeEd*x5pjVf(D(?eeSJtX~;WcSn%865&k!fnV@-wU3EAJNW24mV>&g+ZaWoJBF2xsa{V zYRFwQ-+p*=krGiHl84$bEwUtTjtdyVtZ1@O<)k*s(^%W0ol{#dgK*Qw;aV{21$Zq5 zJJe64FG4@`_3#26)5@P?IpGKI(UPFY*k``pETgDxKusR1rJnCtZppm~aqqe!f}mH> zRF<4x3eKN0rcb^IB3s+V%n;@Ufl)+sbOnZiiXMtBUqZrqi|A6(^6(#e3&sZElx4qi zDpE?&4S{y(gEEL9*hMo6@oSe0vh+=a+5;1!SUqL` z?rk@$1)oLw_RASN^>lzCT9yt5#r4bUXP3f=ow+rN=Xyg(!9jny|F#3bk$(({rlP=E z3*ROBmpbOS3h`$?gXIy*<0?27#8IWJ8V&sQ9a}9_A{0Q1uuWz;1uMe5i1S%**FcBj6n}mz;AT`L*~E3zBJih8LD!1qQ3~?_Yuq=m|nW3d`Vd}N5j_s z$x#QDriRNk>JWsywg=P9s(Q$#i8X`ST~pH0|C?rwQq5Z^xw zl8}04_K3VRLv4r`mY^~BUt>UQIyDVxPo*RFn#hN2MVt0;b32#WKv|D;^^OIjS<~%$ zyfaON_XqX_)U+dHl7;IG-xmQ~jokzspW6Q;?meI+Ijghbshq32szbfip}Kpfr@JTT zncdmhG@J8kwLxijwaPh%6$l}ekPxyEK?0EkmH}adK_<&2%NS!2CW8qkgH15T2(S&) z`#txq?wMH$%bfF_@BbOjs$+F^*Uk62&sD8x)tk52!rqKOTyO;|u*+k))?pdT3-P-( z!@$v$)QV|+Lio)pSSrva7{vupmV!DGw85tqOrT=f=RyQFXRyB)>wrLB%og4Sp0+6j z7={yn2y@(arf;r)H<%|Y`*t?5^O&`MK+1waM6B5=m9^2iBGwv5^&IMRebd+ngdmWvhh#$|V4RWWi750wc3pME4^soeguE<2T*ue$_%BHOXAODom}vswy?;KfZe z^_^_DquTjOb6hevU`d8kSiP!f8=9Hfx-pZ(MhmPi+dPixfwb*Re|lQ8CJsb$Xkb{< zKm}4{mxz@uWECOkFo^4G3jOCcL?tQA0Pbqmd{hDTwB(irv>f~tNW3r$;X!oK=P92! zP5LrqcMB>cH(`F@m0fQFPbtL?Uu;V*mkN?Ih!S0Kn8D-*i84Gi889wwodPiT)LiZo z-8;Drkx6);m^nJm@|F=kie63jG(ou1>{Gk(NKYjRA?Z=lOiJz}q~bJ1Gy}C< z=96fG9-%W6kGc+)t+BcXhFvs6H1rqds~K$HcFZuqMGAtY!P2 zVdeWh40ynU-q6|Aoxmoav8#JQxTIeJ&ELbI`OE3OHVS8eNR&cZ?`_>Fd~aBl$6Jjd zSK9_QM{IMIvCJHf7<~nYlIuqGbg|xFw9R0!Ru#0K-7)OE8K0TXhH~CAQy|$gXAmU33y4P0M$EvnM_+BVUMv85899zL4X_zm@ z&0MCw4(03pJNtXmnv&i-A4NxFQLOJd#Z%VZK;sazvuO*{6v6hlfTKe-OQ^E^4h3?y zZJ=zcmD@Jw!7L{jwuKYQVdGk_C2F!G3TcppU|oS<&O6GmDYe!c-j+c_*T6qBu(BY8 zUTUy5W{c2(k!thzSR6i;$>cx^Qr+MS71bSzBhQfCusLpP27+VT4z9U$;r2!I{av*f ztsg`k9W?TfJc8aI;(!#cx1q_Bmq}%d#ZtzD8pYj)n#pB+PeMAJu@IV6vj#9Lv+x{| zW-t#~q*!2f#_{X9d;x4x9~7wsV*14fGM@O_1_F_PPC-lz^K+hO_z2RSQeCF^^Ah7L=F6) zlGO*WKMPp{ur*AmmDd3e&(olNhvy4NUlo z%HABY4td8WGX09Gh@ zPAq&WFNtOpRgCJkLveiIXnMnpX7+upX)FETS9}E7!|;z3Y!7+JYzrvL%e3=vG?Fua zKcngWt^4Vv!W+RiirXA_C)}8I2m(XIp~o4!kx~uQLRs^A5Q(CosxsU-%0AB+w#T4f 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 !zgnB7EMg>3rH`-jGO-8 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∨uyjUoVE&KdlO!Ld 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

{csA!+YDeMi@B$uaWp`&v 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�`-O5)=M{(Jjt{ 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 z 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 zk14K`M?itukyov42thO

HIj&9vNAxu)1AL)( z?7+dIXO;J#8b*csn)P+eeF)Ztt<4yWXJ2Ge{&68ETmkGQj>01myO%nFu^w_-Pii%xWtwxU^o!L0M_E)#!o~M4SAG}!d?@J zH*ghHYXGPI$n2qIPM8fAot5#6rNx7m3_4zQ_VtphhND2p=hUW$`X#1DpkAQGI@pA+m{M5vBX0q|- zpX4v0<3|H`34bGOQLI_|cGz^(MQc*)L+GSz z`*~+2P%L_+$|!2K?kGE2U(s7V?zo%J0}XE}bWd6&eijpyuUjTbj^1AxJ#vXFy@eV7wrT5dqWtV{jQ4Q7JkwC5>psr&Mljunv#F~xeWZN zQW_j$%0?ps&@DV4)yr#dfbK-LRJ`pTWkRy&CR_jbPv>nI(%n%Fl#S>V8LlDcdIsMh z+6xImG|Dxz-fmmYR_7!$v|2c{v=e=CnT+%D#OOkiG#Rhu| z_L>O~`eT>=jf(^wTxSiGfdY4`pg7%Z5|hej1w!s@)Iq_N>b@!ht=PY|T8CEFHMP%T zS*M^VS~IfAN!}`zEEVY3fE)EGg@ufE4BtKHYf*E1i3qrbiGSEJn9n z>+4c+(-#;U0vE#@uPbM*OzZot7nnRIgQ3whP^ivabZIeKzvH7{XIkJZ(40a1e9Fsr zNRNyE-LW2AARkUnAigGHZ0>2CzzsgN_;#@}_Fp(`II=i>ny$s+gWJwi1;W$O3dEIB zf*A2u0{x&6;t-;|m)s$B8VdBv_yMnUrf*5FkM~&nBXJ>prB`74jQANz@hjb!RdmgM zCWFaQF_#^6*u*4A&r$2MXyy~zu|`2v0hc^@FoSxA;|z9M&g4u~w>`%kEQ%jjT}#Ko z*V`0iptJyQ%MKn}v0RgF;0^>3_BPlzj0|-B)|nZez$}| zmRdbFL=xlra`E5cM>Q2}M8}GqApH7IAnimwSodzY@-en^Z#Jhn#hLrx6C%=z1_#TS zq?d#9&jqWSELH(Dls#V(QOOcSws~u@aOw$;2WB^RB-YP8h&qf4KlvE}bkS5_zA%zy5q5W3(baJMY&fp@k_%+@y?~!wFAy1K$$m__TJ|2AHO%Z5$-i&`#?aX z@%|JphKG(#h|DQAA<$>xlNvNT&7qh0C1PuQ#TJ-1w)sCMc`v*tf3Jm?%+CCWjR~4k z(`UsfGtgCVXxO5jvC5i;(l^^i)dDjQSkF%*tJ0fgwaI!($#pF&hAY-|YMLgXiBI}j zTI3dYZ;RN2A81;d{g)3$nOVe8tKVd9o8je`7xGZZ&44ns z(8xv0m->*XumhGUi@ydvV0B`a1^IlqY#lP|;iFf2;ycNnp#eg??aV)27wWd4?ef^RHK@S4&QuLkh#1;FVc2GyHY{oyzzpHG zOr5y)q@r6C*gKy+5m7EU{B3`1HG`6No~>PJf~h1ZoP80Xd8nIu4ILvS{;rJ~jR2ph zkcze=g5MVD9aZKTo9?r~5iXe-Mx*^aKRr+SvLtu(fuV%Q{V;qgtB~Q5xyD_j)U2qj zMM*kg-Enlzwg*KiV1(i0i^fOjt2xC1}^~`-(_T=AJq}yqq_2Ukz<*szww4wGqIcr*Kb)dwrtUmFL+`F^;is%yZP$G z$js3L+s6tZ4*fY)i%p|gLVX4fuhx3(Lw65%nLu1c=iRz;rEmml3j#*w(7^dAlLmHr zXbg_`bpk8%>?9aebrHH(1xp(~vjjn*>Xz|lPWKd?;ifuT>5uQ%*vsdF)5XC3+LoMB zah^nXYrY4V>_Xfw+$=g}=zhf>h2JFHlxFw*_Kz>eXxNlk!w?V?R#9J7Gmk~E7SkU# zJO_pEx|@;IX<;=DY#2V!GS)JuZ`HoOzWyLrY_(3&wffGPb4JT(Kv%xCwwvgZRM)ID z1UoeAt-s#6=cXgTOn_~D!=7`l6waK{Yjs6?5n39+Gw;3r(%SgerR6YF%>-}yEn}Bn ze$v_oDy^Ylz{KiO4$L*WJdF7mAjWD&mF zP(J?l8m}tRwegGTBM4TPnG!9^zyu6pWPQ7exlE`ASOb{kCu>#fs?x)szdf%4wF1GbT#&l2Gec5Gzn&u*8PalCqm}*zQ6j=kO zgB}1}KbMRf;lK9*XkC_ z=fd0LEMnsND)ei|F&p21D@Hqb#S7#wO3h&gU8gXK`SlzM7qVGl)kfzcb$~KhpA~>zKm6lI%b4!+8l$g$5?kJ2Z|P^Nr$?uZNHg`Vmrcyv zyhhIFt)9g<$g!LfE`FmZb|2oeB1`DR0tPmNk>XgnAQLH;;yCaFBf!yp9krrf=zA`# z6&-(O@Owr+ph5GdbW<1B`*``2Tm-drn2tL?hy{p{5~({y2F0a? zd3}#w7kdq#SB&;!3_}x5t$eIm1M^#E*se%gwMW1N6%G00oQf z+krPLEk64!c;}>21Z6%yUI1AfEC>e);v3RyotzK)4=LN(H{DAk`g zkS6S8$f^akY>GgEffASUU8>WchMD|)$6&|RZTnBWHpgMLJrdsn++`yI#a-kJmil)d z4DgB^cVn>dCb5`c5tCwHX1W(l4z!ozofOZu(F0y;n!y=Lq%(70t; zS;rd1$UDV(bF4`XJ)x4;Ok4jRxvS3Fd1}qd6z_l4SeJp8Sv(6Tip$4OyDUO${QZX^ zNJoA>9>Dx92n>?ZUk{!gVJ-JP*Z?8*UXspP{p!;IUdi77bU(WC@mSprj@Wmy7VF-2M_9c5?vkMg zPu&}Z@4X|;;i$;o`ZQzb9@L#6IRA_&eBBlsTLqN}r{Vy{Tl*QRr@ufelFN4qKDACW znB6EqUKS&+aQ}CI@QsDuf~-bIZ(g@SxSG}=pT7#ln(8R^q0nsDiKXZozGa{5%vDs# zHS}zDtu1xXOlLCH4QA$~vwYXhA6@0U+po+xl+c1$0LbB8sK9dVtSwyMg?e%4K@(K( z=!VVTI=?FXwzi`*vQs*IX+7Yd+Rl8w#!4$gMb^Zw(*@wSe|jo*OKo#+m%5V*D34;2 zCJhBi)1t|Mg%YmP6%4yqk9A``7D-VfKdSPzSOVR;|G*5{1+mr&_}Q;TC<7+YeUXU7 zse5wh3K;*{B!2~ohKL1?K};C zlG~OBh`9f}{m%=SxUmR=7B3L8*n|`%lT-#4kvB9Ltf})mZZ0` z^)sNh$Mdko&go63MhwKOpy%v?oeZ7j`dRm!!Jzwh_=!6*GPY?4XoyWcd*Pmvm&HB) zM#ah2g|nm5;ftGjmn}#6=z%$C`>|F8U>@)uva2KUt~c5-`HiQXeB|^HGoN=pE8IhO zeC`tvDz~zujqy&?3qx7%=^WW~1dz1gjQu1Zio~y5<3{W^Rc^6T?nTUnL*!M<5B=PH|c7DJ|@19u*$u_rX-QPN!`3- zvsfX=8^)1}!few$er&3zfxs2JqFPKQHff)C_ z@kW1VZ5w9yeh={0S!Kja+kUdD0(?UbYR>A&+LyPOYfju$Q`xVX2=HL*qo9P|$caBp zwBFwgc?ixOSF3}^z%hV$Ja^aTeY+5f8YadMH*FRk$!EiQ?TvC|!O6>P{Yg-&qbcpz zoOi-ZzBGCoroD9_j8LDM(Y3C|7|O+!LC9sB%^63~irA{aM+$#GYN&$(iaWjM z0c*349eY%an<;VuSY292ssrZX_xEw00KTUdB%KQ(y6FPKk@I!nn+h`!vA3snPWVu< zPB8-}())N@!CTRJK~sLXn$B*leb}I%QrRQkS^QdBFnlEd2L3)2Iv`j(S^^v?Sw7ou zqD-%@LKc=O3nT0)rwo_Pgb$)H0T_br6h^lkW@d5AibCMZ&_|MjPDpCoh2aL~UEG1< zc)^|!x@I+HuJwyZ1+GfyTb0jN5G;u{$j2p1pR5hF?j7u#gy8m$I_{)cF{Ms`o?LTI zj}TQgT1WP;JG7&kalE^p72bgrV?+8AjXsMOrp5Xu%AelZUUaKHFRh-$GF>v<_TBaG6gqzIb z1(8%g*Z>+7IrHGlmrI{QPiCa!)Q+>;p74K;Qt3t?zkc&6b~~EF>Towmb^e*zxYYt_ zQ&<|-Dqad2?*K3nQ{PEUx&)ia%}&`FTNa(b#T}#-S;4w87HIBHYlo%pz`5$I7v&Mt zZfQ$hW!k$F(8Gs&B&kdI$3DsE1d2qLG_8su%XSEQ+un^wcKL>mVpP}gIoAp|(_Id# zZ$YoHI+X^Y=S1%E){jT>7#UkF6vv>?_j?rmTKDSp-*g*F-+whl*!e^fb6&=EaNa)e zugDk8$C7bxiwrRdV`A7W`KCC$B;!nM8sEkC%Ue_QE&R_cZ`#jCK>P~a%s66-RcG-% zI{WF^9==`3)t0An4vy@Y*F}VE15TISCE&qYPe$x}#Kwd90!})SkL=}tAK6_SH(guC zF=Tj^$wMno8FsD4+^fJ^h9P#VINgo;^nZweI_dLKgK<5$`dNYE zsMd#zK!J`h_Vcps)xHeowY_rvEBHXhaL8lDzgP#j3s~|>jTFHNv1XNfHzXbXZEHYl zwq$uzQ@sqL*?iyF+8sr=!)`p!G7Cbo#-4xld!vabxl5WH}7uj)FM6rHs<@4;h9XI}`q^|N!J zS(2nI(Ge&R(4D<$qxCz@#Tmg)Bb5a;DNw)&ep2llwhKwzhR6wz})CKV^MG4?Cru$D}!h%Uc93uEhd}-Wp zN^#}!j$IJN@kNPkAjLQG_l-wvbNrO)6}?!6PdFKjYa$Bm6{?mhOHC+HsEXZm06e1Q znq$(#CbN`204{x1g7Txz{3ZjuZF$eM@C7sLvgw%eU8+u^*lCtW&R&Q42+Ll+v^Nhx zHSXJc;(-fcoV7k(%xvhcI&#;XD`}}-9$JsUIw5AhA*?7sdAi*;CAR%#31i?H*AsBEl#^e+;=nNsH zmCZ~=_&@@DT3r2Qp?<@yRftYpe<{V*QpYg3E1pAa-3KoJ``fFP1Op2<7C+6~$4R>d zoPe<7VD0z^Nj#Qdoe(H2gf=DqkOFFWR9^g8P}5FOor(X&d{mZ{ePfq+Y!E47C!{C+ zJnBMj4Fx$K$^C;~Ea*t1R*HM zKF{lhxYb`|>?b@cL|n)+ovptNbHf-JD6-Os-qvp*U)X3}bNkWJ={(futZdKV`L_#q z@$l`F=lI)yMk(djd6X)Fq|B`w^TKB^c8YFA9>dk>R2okaxMZ5cPEVwo}+}pyn1O*~){#12YeMLEnL~YJ#kB zgfk>jQ7a;p8vVPQi8(QVaUc`izY!QIY$ssThJoe$0@iB~NY-mn>*9z`8djhMIlhvZ zo+ZbZSFk>bLz}|U(v0gTNzgG(Eqg3dytMHeQdG@PGk#5a#?fg;0o^=wjZjOxc+j?( zWZlsJi7SmWaDs~r)9{O!1gv31Jt;Pd;(DtB82o2Iwyj!yAJy35St_r}!6}EM4`wkp za^5N3F2*G*t9LQ8d2uEz(G(=;fkX%m0H$BQcN~KyV(X#64D)442{XBVTU>3|9IJD+ zJ3I|{t(xjS_=Mq0h+mmKm_yI=Fk}qkp2dVbJ_wNGF8P_yt5Vr8op$o)f7DJk} z8C@kh=G8=LG1d`{l%i^6n<7g3C$S--&x3CyeG>AGOK7VBZ;0tBsI5D4^(-*`^{rUE z0hJj;wN}jbMZSt!T5CKx&EA8Jhfe@R$FQp4ePUk$ky&6tl|+2T^=CRQsLYj`Hlq82 zUMwTD4^@=+FaPj8rs*Qe5enTySN^4N|6;XVx&@&k=p(q=2-}eExV4EM9s7%+?uv?B z&PLAc$ui`)?d$`|X?7y2RW?|hBz6+^E5pA_%wxwqb8HzJkd@(1(3MNjus$7q=p6j# z`ZOAe_hKA5#*MA{_#$0E#39_vwj+`0cI7@^>xF?xvc~g^(0&yTz4_Pi)#M&?{>Vc$ zN#uo!Q^72y1B6*Q)`6=o19h!*N_2kVf12euk+19a*}^rB ztwU`Av-@&Js=hO_)<5AiZ0C-XD6<6-E?q7veS5|RD#pWW4fbY!++i^0F@`9=1H6M! zD$nTXTMf7V<=Kaq_7_n8)||cTZ+Spixmac4)2L$l#l{}JeC$8tBTTpsdz{3dT|htl z8@{L*Hs&-DErREtz5S7rE_gTJj?9*|!0nV(6ay>;2T&k2_g=Kd*Gq4DA02$4!hy}1 zNN(khA;gWJK^#H~Fc*SbE{z*$+bq~a!1p4u?c&)IR*e@9uv6$5O0*_y1oGV31@%H&Ncv3LPYXIAV9aK6G8vD!=zlQTXWlbsa5x?d^Al#m#31NW%^vf{H-rrY;bD zfbNWdHfS#-1LiW)1j^w!J22Zpy)(hdcI`!1AWNs*1at+rY~QwNB{(l#FFbkY>Se-* zDEH1?%4e3~Tu-X1LPLKK=wh?^^EdeBOcv6XSzlx89cx{cCO}NFI;;DmyPVK=_APQj zYrk~HM;it6GIT!59lbAKg>-@h}F{p+??Fa5vX&fZkn%oT1-OQJQ zd(e3Y$sbbd6J@BdfEA6&5$0Dm_1mF26d16H!PLLSI?h&2bl|JUcF-6JF;okHR(v;=!}}f+zM<4Gbu4RIFxRgH zIj=IBF~erDThkr05zPso*GlLf;rC)YW~^M0otn)X^%Z#x$8|w_^yMOo@M+C!C3NUcEL7~Q?{c8{{)mE=SJ9jP2)j=NREox*$* z)w@mvq%;e%Z}z^pH1j5oO5eZF&xD!5{UISfVpI4MGrPJ0EiS${Z#zAiaBf7l4b@}s zjv*n>03PTTMh;$4gdme{5B6*v2>=*u{W9?v|H*>cC0j9=C6*p#=B3v&7rF-4C!Z@u ztb9j#f*>!y;p37Jj=^GAZ z4L3KlxeynLwGzu z6F@`9aTGlGal;(#B$MZyunfe+{O!qn;NWd+R2oiyzYg6J~+l_|=;lbk`{(vr|lctz-7S~Wt=73)HC7dDy7{>vP2ho{5KL&ai2n}_A4nOZp zfqSiQVFri7JTwjyhj1cepIGXeD?W)x0+n$SXisRD;=u=SogWMbfbYuM1kmyXBVEPb zQ$=(5(@39+AHozk_!P|6cf(Idl51w3VZu=O1x!oUz<@g6cf>re!s?M0YJk4iBN;`D zcaw-OxGII1!e(U}`JIqJ|3;WP_cREb8#EM3G>HvHm9K3(&f44vq?%p3_3D)aNz`puU=u!S@euWnrkKg!o zyu|zY4r#mGpbb?xVadiz7MU11kYzt_0<>jMEIxSN zkrP5U6tSEC$t2SK@=2%7om3XJ;rg}zr}KC#p;4#NIG}pi%C9{;Udwxa_V504D-JzA zLp_aOxzKR(ImN6PIZF*Zs3V*;nYR@Y8IF`G4DZCL>AqoA&MOjjpaMRKm;Y5KxrJkKwq8c}@2P4|j}gu@j!7InoyQF{to-El{C zw{GkCzPP51s#Wy(+h`(OEKjXt>>WDzu;l7(5$G3rtlIh;B%%-)y_T_CQVyV70N(Fe z?0Kf>sjcU=$_*p7;x@Y_-C$K~M0cj$ure}t;L?k>mh>QUy4IdPckShUbrwtxDN3g* z+vD|2ZVc0DZVn^9T^V~)z;FPYENYTQKST`D{&>+^O5c;LcvX!L?mSm6t6lvWqt08@Z6r zUKM5_ma2Fb^qA-U&Pm8uuSb>dfj`mf@FbJ3YH}d(Vqe^PjZX?H3dRRSe0V6tikp^U z$tbvQih~pGtzZlIQPNH1M@o{`sv-4n{}gx9`k`JG&yR!H2O@UKs4XpODNu771}JP;13x_zyr(x8(y*^ARY&^L!=f0(@a*Xp_Pp#NS}ow@C=_lLk^6o@3$-nF?|RyZ+QbVH|Ve* zPEc~Ao(|AhV#K<1g@ z9=IAs1{CN7=3SA*0y`FG-Pv`Tlhu@L?_l}s5j!8}JjHf0dLCy=FM$)Q7c2KE@L{Dj zg85WG!N<)zX(|u!s%u;wh`s2-=#Tar`A#~I(@7IrIl#c$n~KAa;IVND;ir#}0BLz? zt#C+79Mi&W1Mire-{iCT8*)>Kk9}I|_-FL$S>&CG_omcT%$pewt4N1f&^VEoD7m`P z)VvsYx|#Lo5x2jP26~9Xgynfz#MJ&1kqnB_)zmvyEf87)?P4yyD*|s1drP!_)xNr> znah`+Ak(}BN(ebXo!F1jqDCR^v%p|{INL4k4ZWZ-wTrQ9?gIc^#c)C8U9T+`&bx77 z+B7q=lJDy~<9rMpFUm&SXD!1Idj`jDV}2&T9GU+aQ-ltLP%j9zw5XW$TW)yi&x*2K zK6UM(i{j!#F}eug%oRyQNW~|JO0yBHI{m_hisC`B+RWy1OE9%r2chEX$q`?yxpuvC zDJ;bT-fDtrB|r!uStz&M9+`^A>t}p@0PzY=e??hpn}ZqP@nk&|NE zuC)NqRA4Zt=DTBQAAs5ZleKdpm2u8*xvL_n~LW7UI{yboM~t^+VP6FL*}o>ruv^}30Pf^9i=dEbdMOA4TS zQ46=cwUH@wfBJO>d$}X^5kd!(zEZ(Fl$PIt@m0&68~{~j1)?YN>Iy1Vt@E^!3t5`% zhN6N*tuh!`g++k}8B%>wXE7o4i~FOueDb!5imMx@dGw}LBf@>;Gl;f6gg#McyuLmO!x7qlo` zL$*K<=pD$8;v;_{5-2$q_&L5XHRL=I{DbMZsG{sL-w%i1PzEr0uGm^5Goqu^2s=Qa zXSgn!b6|fHii5W3Wy8sZR1%yw5+d&Civy`5SJxoOLn(3ph^tOP?qmE;%|eXzL8OFZ zV)?xhzH9wB{9vRP-;L2gd;?iL^>%g_%dl=};W6>QA*KVEdof=9+duKzTn?lxlF_*2 z)z>GJ1jRSmy6a)IS{-lYv!IjPkZ?z=#xH>>&NGM_hfp*<(Egi#8A3MYt%9oL7e&ww zCOt*4=9~^z%PROONl#I(oy%Bf6L@O1qwnSOv97s}E^t6xfy(j&(D+)A3GxFW&DCj1 z+q;@4f_y3PW2z3&x-3{tED~N!O@{^R88;bV8}u4l#p7c(em)T95&l1AjgDhD@)D_- z2I1?PVwIt$3Phf zeOJg9p2vu}6Qx4Sz=Ddxitu{`=W6W-9`x%ZYup+^IZxh5dIrK1C`m#VV>E2-jzDku z7u{MCtMTDn%FJJSuq0Xa`@bx_ju(={J241Yu7HeD7hSoC=Sb4^AP5b7QrR}LAYW$C zLPBDPK%mnCE#kq5{bR3b_x)^06EvUw3Kc6>ju_a`bVGa!LfToG#IrT@e@>VF0hrWY zMAJ`z)8&&~KYQLYCv#{Ep{e8$v5e%JX%SH+r(GGhhvvN}HO!H6^P!yC`22@cC!bC` zo$qkID6~7l+8Y0WXW|sj@%@h##^uPjc;T2pdi*q?x4;3gROH!MBA60y=|58Mp*H>T zB7;0`qPllAV-LpIiD#K- z-IPU?9ZaqYG4p&Yi~%56fxTIU-GrN4PeF~1w7Z$$zX!!1&~dA+UxiOaO65^<04Ni^ zs|Ff{Ocq=}Xf2`e8?`pvbXkAX0t_p_q@F z!c{{cI$#)K*3_H=0I3Kh*X(sd#znnof)UAHZ_a%johu|Ni%D8Vu6K0k&;dLj{onvf zX`6w5K8sh4?oNFL-~2oZNZopDM_BoIpaL73NBs-OE69`3=APm}Pm-M??*K>shkeG$ znQ00k$nwbMPaDGGVbzzBVuaj z^31WHYerFyP5@!5v$7-$XG?WWuUn#GWNpFux*51=L14^V21ku1smRztO^BKAYMrA) z(f$?D&y?BSfICapl6x8ZjAv&hs@jRq1($ zo;!SJ0Y!@|&cZCaAeXK_lQgnVy#V+w!M*(S0@$f#=aQ?kpz?C_2j;+)ia|xUxN}Dp zzN7o)Bhq)UrdOiF|1iAA`{6xaTzIDAz9M&v*Mk>;=S2zN8Rq>1mW2oX8n$(O<7toM z*2B@n2>}&wk`<=o;E&q@rR=lqoSj~t8bvSCjktP5&FAEMJWp1Ue&F$WV){%Ri3q<- zEC9zg@Exs3BZ$ss3ef&y3BYYEGFE;ia<2b+kB=H_`CYHcN`akUcA${a?Nz|5;dK20 z^_4PO=?)gAffwhn9g3K__c_ApM~F# z*o(|jnowwTR;&m;y)=95Ni&#<%8>VJHlRT9TrN;E*KR5V&?(K`+_n;q1A$h#qi4YDlN)X!Fv+LRozTuVb z`;74F*raMtF{BjC$V0b_^|HrnT+bGP!cZiJ&V{b&mb_mDLl$C4?;AtMz8t_3 z2&#V2?s_p|KZSF{$KWUMb3dWS5=1Rz2JsCI49lz*iDP*TxMHdduUnB~6b&_s~43_psjhs8j_fKZhc>nf>sZD*_+u^Rs`)j9@I zr}{E-(SsdFJN^uvtaikcniYc9G*ciuBEzF)C#S(5ECfT458*LqYHF!ZAqPgUz$<&R zZPW`{l@cd1$;bmfG(MW*kcdlA#GVJ7J7C7551-*6F+!u)+c01)QhNEw96K*83!tfbPhn@Qhct>+Qa3kU-&wRKSV&5$E6 z{wWJq?%%W{?`1+gv-Z@vnWeoMc7LQ4GOMyyKEF|OR`sHs^%9e17ZCJ#ls0CU5o(ZT zzA6`u+TN_|W{BxKt+O~Vih9cO>A`8!^4X%@&rJ4NgV{)CeR=d#2@BDMJo9r> zh*_Pdk~QTE#}6VnkXH+#YY+7arGkGcvVu|=#!UbU8^J9e05LzBAC(bgC6-@_L z;^n3%>APg%V&4(>6vznZD?V+wVexZ^A4L?P&JqbmjfRY4vE3QOFDZdpT)dew^N#!aBR1;Ha=#sYhvv0DTq3s#(b_v zY|B_d2tz`lrPjK6_m=&8qm1SRg=RmvT3*9>YkWjS9|v)>+j<ZK`~EdFU}kf)gq4J{1``nF;ER|B~158?})L?}icA8OKx z1-KKvS+6K@^!B9%kbz>*j-XA8EO3u>aeX$7LChc@xY49$U_K~>-F6X zcBAjViKOz^rWq>2=e-;<0@pX>*3FTGHnQG3LY?C;F#Hz+S)VFsFLy+);5R2b1Gzr> zTPHu!6h#z5tNA`%^3|+b28bL`|3+)#T}MIYP}s6<*|_i(YW{RtpU#7isB-LsQ{^mD z0>R6JARC8~UN&@bU3FkU0g?T-aY@kN??3E2Xkj0YIVpvQAr+Qe9YOkFZlJYywwk?|GbE#yoO214%8Kf5EDEvRe)(azvC)CE&0g&ipK8p z4_B1?S;|Qh7ma@rAYf^ZLvCZ2CSxwM0EsTxvB*2IFlp2nE?E3{LXu8;T(CeVfnyo@ z(!*x3+@cnFIKERJ8=9C{;rJP)6QkF>JcQYnw;6ee6S6HHB5Acc5@~CDE$j}I%Q{tv zL2)WjQJk4j9B|=e&VyFYnK2{pdiG;w==V(x%ii!d!k>QuYG-yh!ah$+jsGfM<=vR7 z1&B~VZb+;)jn+lazX7-o5SSm>F1&@R3H93FLMH(lvx`v4Mr*MUn&+=~EvP}6imysU~bgaP|-VTM<&vpEcR*|2fbe{eXZkfAFcxBWVa4B{iRfedV zz$+`V0LW=$W->tx@iEt;{g_?=&cViALl504{8V=qWHf-!3gbN&pLaj;OBD@cWJWn1@=7}V*9bEX^Z0cmtL zC{2!ZqSFfpzx-mTM)&G z4^{**ujX=g_s9A%H~M)9f=EoM+CA^Y6s{aJfVfi3;@U8i5wxKR{1`XpWwHYSABaP|c)%c> z-tJpkd1ks8Zr%jN?5wldV`>!&8sU^-Gkc^BXFr zHMTV#8Nv)9s1qMgF&Si1B1@eWoE#Y^e>f#kY}u}+^73gK#Lz}*A6#^5ElflJZfGB4 zKs7XS5KR$w7wH$`#AfP%YdV>%KWJby0JLVinB;57C)lqe6B3eDab*Q4?e#Y_BiesZqSoYG6&Cz4wA zM`1ND#pfDaVeAnRUo7a6)0*NdjaQQSKVB(c&P-6Fq7yK#h6QHURgno+W9YIiQ2jfn`Lgvtg z$dx1TPhtfKlGH->i%~En%HxLdo(QyGrBLu44ehi}GivrhHAgX(qSKE;JYXcCrNtTO z7RN3Q!(O~dut2Kl<)?CmC;H1xg-xM;(Wq}4-GHf-QuomQdKO9I>S45TMJH1*j2juN zeH@`Aj!t39Xgm?I=NOWY&qqSf-!Y-go{iWO_?R}1pCfx4t=qQmy7F*fJGN8Wwq@5| z;Z_dSKgV>vuA($ySpRPf5gmIybPJ;C^|}s_xjniXL*F2X@cb&K^Y(XFG_TGi*B3H% z4bT`ta%yF$@f!K11A{8?ynbOAr|H&{*Nl`3dMT3CpzpM?Ii?KR_74#X0v8fS2aMVj zDd6=tc~b`G?qsLI06$zCK^lo-D7|9N>4%VnaH%b>p^Hl&n~dc#E_EXvKJ*jc$fG=VcyVWPw)t0-uz6EByKh#^wtrh`b^oc2v~kh*uF9PEZ(iqCdC7L7}YX z`G~&gVBN(m&$8<~PtIpy25iS@XdAw4BCF{u=t17p+09oun$w3i*x~2(>bFqn5~Q43 z9NSz1OQ&7S);u#WV=`ZZShG{Rgu%6F?9@^8O{)NRNm}c#)Io7kuda?9d!g6a=mI(U zHQ3h@g*_LsuQI9irSNOS>;58aF8nIhPh|0XgHRPU^La|I5bf7mH~q_7OP=eWxbKov zg*Wi?@+gvD+sNRTfK;_8y^Tp3UoQrA)kWC7Ww~V;B~R}&jZRqE{f7$l(^2--g_q^^RV;&Qz3aVD}vwT|xt}nbt4Uh@x&25$n(kz z_{C?mUizFi8box7AyQa}bj6fZB7;W2zSt<{wL$1=Ll1ZuZsCiK9yx5i1$2yT z9Y~taSr>4L%K|vMGthvowsw5vj!xCgpMK>3BkVl@Bq_`E@u{4vyQ`|JzUoljJ=2qO z-kf*YoY=&|?y}1w8Hq{|0TV$$P*g-rnD10njOd90QA~F#p5Z_}&O6hc=jrKrr_=nO z_p9oeS=8VE)?21~I&Ihcz43XUXXkR^A=B)X$6hN)1mIj^jC>2ic+82lzD7^I)7Cmw zv23dPQdt}WSCr_)$R;$myFXuC>S~7P8TR=3u`>RTgI1*i5OV&-7-{Dk#`Wb=Wm(`f z4eee)J__SQzUtvR5^#q z($nY$m8>F6Ha`U>DJ9Ob3Q`aGMyP%NF9Ng3+OUJU6^LlSpY1u!Er+yL)Nlu7t?gpD*0L` zbR!^#V9DSe`;A{e*l<4w`Gq7qc`gR~fSd&!D+?t@z)EdoP z0+y75pj6OSdN=}=%)8NUuo!@2%l=LtslR>su1n-u?uEqg^&3~ zNZW?aTNF<%mF4NyKaZR2olGuZ?jFb3qxDX1tfJW=B^FbrA*E=_=omJJY*w?^cbZ1G zA09f$*h^nL6~vB+DM3Lt-F)@%!ODmm9X^~G=rzq<7^{#2y-D?fq&wiK%102-A?>y^ z)pqKC_9XVlgN_C?arxCoAfPMK?f~;}GT)r%X*E)zg|9tJX87U=E>!Aq=98PY8%rGy zEMbOUX7~{LL-%GbiVJI|g&bXavK>Sq`XwbWbbaX=X@;FzO4=NzpULA;sKNu$93H?I z4UD-1xc=OqBNk7vz(v{aPX+U3xywF|(aLO&1H*$trwLA?!6$Lxy(g3z}M z@-^4KwuBC>T$|W3UfZ{%X1F=Q0JknO^W7APe_Tm4*cB8y%JNe>n41hHPN zXItgXA{ex-q6~@5Tp{_wN)y?KK9H1FcA6^k9+))j#Z(|rsK}#vsbXmX*!D!bvtif` zZ>%5N7em!Z!QzEO`=BFCo;1u4kLQ3@XN6o~TYequPsG+;5Auk(9n?PtzX#&jH{l!3 z#}u3T#%}~Fjk4q?JAVA-^qvC*m7=tI&?6>#QCSH>K!qDX#FYuFS`Hy_V2am9^4PPWKsH5 zSm`S}xyY;bJ9pR+o&^4p8KPBITK^=MJ*7NkyWq&smc34n3nGR~78GI@M<#OmL;J>b z{5KUyjIF#VIeuf)+GT#x*K;75P-9PyOu4-NWMbHB5l1fvYO-V$!mS4`+9$jkX+K3D zSSJ#-<|MYs?P0Dk!0x3x+ZK(r5QW0s#~# z=d3J3U)prGZ!hD0UpNXr)6RY0-ovsoF%6tizeH9cgMr&4llV3m;eH{{Am0dq#iA!5Q#1h2F7BD`k5iru=Gx-&?N#ix!QFlAr&Sq-E?`r^@ z4~1zBoPEk$$)}k&eAKpm>)e$&_USr4j*zSyHiev=j1Nt!KnF%8FbXKz zOT}7W%({!N_}=!4|2W8@YL^FQxe002TyM!_e#y-ZmsOWJ0dkn`XV1r8MGo_j&vpDg zG~WN?6z_zK_h*3(*A893^b)0)j>j}^S83)=0fw$wJDS0HA=Ggv$0scFDQ`O(wJj3% zND&P0&`zS;{YA=vVGE0H!Zc`Vz7XvQ;*V#;w@tyf0c=4r4%6)vU4cnW_Sl8WA8b5u zRYRml-6mMEfZE%t6>8SF1=*Kr0YpdgViQSPE*;CG(Q|f;UEqyOxHTf-1xc+4`PfieM;+j|ocagh^Tt*7k(hlYK@*V+Py1Bp zb7GcDzxf~}#+pYj+`UhD!%{Wy75f3mA?ZpKGZLef3n~o8_Mu)`Y>KGLwZ4_h4MI{_ zxG%AHoPC zjEsWJ`cX%)zF2FZ$p+sfcT_M}eVXUY$2xw}@taeu4F`VSA7yz?JCvn~6zl|hQHYs4V4dBVT zO!TG{P&1Ro&4nBISI~_NO^o-X2hR$>=NMt^?r4{FkPJd!vX2rHA6vH-TpH=|LHsU@t7!XlN1U!B}E(d`vcIDp|-LR-@_s)v`? z1-4_?K}T}KL$6-~wUU%8y$2A07|p6uwvEy>(TDodUEr$Ty=n#ePyNsC=G@c+9h>+* z!RtHzDYa214{_vjW^UZVcv9YWOIhvKUKMGFwfRmacciJ65gq{N zff&E2Ta^>LpHfsT~x zCS||2?CM;~e%+IU$ifJ=0LUJ_e|!(-iI}{6X+SP`R*-;z-f3Vk1mM3aH|0 z<2S|8zHL)|qY-qiat4FSxS&q#+h2u1)yb2whL-6ZN9r17@!`(DMSFB`&6uPPo~8#h zqLzx_nAF85JSb5aan9Zfr6J3fa$?0%WD!UQwhDP%ydn&w9H?W80ZbA+^&a@brKlcM zE8vd=E*BV-Ac`NP(G$XZ*!~L6(IoVNtTjt%n?BS2r&oC=Wvu9_7HO2vpI3NiUCs$$l9DtaOYLf8H*6PnQ% zWA>@~+%IyX9DbLv&oD8B6~}1jt00I6;L&V!!ppHkhg5e*djpHOs-YQo;nyDUGz;oz zFMdRL8?min{mMYB4T@qh1T<1`i8OS1p;VFT%Q`hswHeUxjt2%k*$*YXYpGZ_9c)M| z1qif4Z9oTH(+Db_0O7fESt@Hut*Xtqn0_ib>WdAORdHaC(dn=1sbVc)V=c$fcriu4d(7(-~{nr(YjYJh0mgL1nk z)70jDCij!{0Dj67EmC{#p>kx zBPaLhAl1{WufA|}5cILE^%$nzLs}vn$FLKPmDbz*HMy$r)pozQ^)v9RGl$)J8;}!j z$lOtfRzY=(J@&tkHJD!(i!Ujb zx7Ur>Q@b}~@pT+%a>KI~tvL-+Y=7|T;jS}}?7)7A#U8}U6X*!4;=TQyz%Q}ZgA7@- z8IB$t8a=+cSKkPlQQyLjjIjgCF2HaAxDr4U5K6klS`L6aM8QSvy(D{pg%sbu0P^EH z&wX6Jz!3q32JN#MSe3uR>VtaBMt9NJkL0C(;`K;LNy{oK1T)qDg~ z^ryJR;!?vEksWY5dal)`c1v{&4WTGpr_q~W;ba@B;lfV1A*Z*p0-DsQ+s`0dOrOz{ za)DUXZYq2Aq(as+U}Lc-wi$J43k|_}lmG*eE=Z?!MhEXtMyMX^NIJ zk{T->>b5|AH+3RHuaIr3$$(;5Qq=3?b)ceb&OFM6Iur~0F2!9Q3{30a5*fZyJPjYj zD40^v2w;HTcgy{I2CUc?6>nm#Wh%w3J$QbYC}RO5=@_LkxZD;x9ih~;A#UheD`!tD zAiK@Q=Y^(MJY(J2IknIus-;O@FAakehwAgbj(2r@Sje5?KXGLj<)Qp~QoY3OkXPt* z^(ok9NVe<-ImN&53vM`wv)HSL8$+c{kK!_x?jot+xEG@LCVMy;aOCn~lXZ}k#RNT#rDiz||WbBK|ecVpHzS=7e@>C!r zNR_A`kFI3GbHfU*G3IU{$XstcaE?!Zv>DbisM7kWshqO6O^Z z25h<52p~fWyQ?O>fX!RISh?Lr+>wNx$EL*ex=9r~_r}z2B6h$`EUCUEX6qZO+WGBO zhSS@>7ILGZ;bON~Kw&R0xwR{X!5WbVU0ORlz|2Txk06|&QGmvk5`w5+05$0YV-}hL zP?U?t$Ulf7^4os++kb?=?dv$k(YP<;Xp$#7{(Hg7L-J?sYKy!bx3xu99>H+9F=yzw zdCTIqMO~nUzIc{ika>~|OpgZ2_BLLV4EHb3U8yaOx{MnwZ%?KT&sqNQ_-mz>&Oct} za&b!N+!0bcGj<#ne!hb2Y>}Hr;*y?DBrjqTz$E8MLr5xXt?oeqPw8^=sT$icgw)Hf1D&NI- zS6?2pgBwx!mD!S$Cv&-?5deIIm=R!UJR=&p;RmnBihygW+xDM)o^S`5Y$-P7n?Ofm zDhR+4k)-sa(NyVKx?X0Vxuvh@<~<+X@|A0ZW$2cd;^QIaCy8W6{i5%ZNs1 zrexqhV)F%N`3N(rO|)~1pg+nrt46eLP!xxU0CI=Ksk3&tspwmO2?QZ1l66oLrMs(_ zVQ?52ei`(15x}J&8_=;w0@{ppesdH%h;B!J$Mew#cm>$n--gYPPj-B%A*9u^ ztD=cD-=)~&hgKi}cTgoc9#R*0IURT zCFt(H$@JEj0ae1BP;*Nk2Q5MLO>|-^>K*CcSNeDBiO3a;tB*IJh9Mf~3lCcHvHhWL z1&0q;zVS_9MnCp27c*%;IRAUg3a(RoZ8bo0Fnoo zzdGr~!0#5D19vHHV`$TvWmNO+?kE8R=DiF#%mpd5G_b-dvxQf(&-B%Z_h#Yp(==~! zqlw%jev9Z$F}W8hCqC&SzlAr+ym9K4>6I`PO8%lwJuVI{?Lp4^Z#nP+XJkbXx`^5*mSmYW$+uL zM6TLkbyeNX@7dkW>T<5!zXCL{rm975&QXvb=r%xZ_;}b#uT)dc<>^>KFP;noP!?o| zDOq_p5nQ2Yo&oRjL#H3S{y6q5x9_|1xNwZxO-=KIdQq#ajZ?|N*8bs|FN5T~R6rR9 za(YL2Kh~N8;#2~EklOlrse0(Fyn!C4dw5fv07f@(a70xHkBPuK*eEeEHvXJRu;_ z6neNRWRpQM%B;p&6me(KR!UR3)Sppi$^9414Nv4vrqq~W3n?I&=aFf>-b?x1DS%*Z z*<>&{0Lbph=K;mXZ@`ksNV)r?ypN;r_#Mhj))q=TNa!` z#NJIERSVNf%z}S_SF<%S`6tGn!Zb);S5-KN=Wc2Av6y`yd)%P#1ewJ9n6OlgzK8u; z7;5XQ3its<8YQ8t13@67sg?}U0QG#6hDgFNf!{??w@ARgFQ7v0P{jDX*7}=Yeyme9 zYWt5}aHViQM}=M_3r6pY2S5#imlTt_qN4C-H9*q=hgLO-+7gnNM7^j5i);{nk(D6t zVV6}w%{h}Ea%?P{tpa<10=hq%6kQm)M&ebf{o{J2x~|rzgbH<$K!e))YEcnPwFF{WIA5X(Mp>m8NDA-@~MU z#vKvwgdz%SZ3sns1$*HE8Lksm3AKNyvgUR~HbgH$_D#cYyg_E_bUVsQ7fv66vy#1B z)=^)?DL{se7okv&)_dycCuVs&6wQJ*mK0sk*~X06%+nxp9n8-islRUdGo)!x4A z9uV%E6=oFUeL`p#mX50I!S}r-?y7>CbocJFuMz5_4IOL!xeyZPFG2sO44Md0LL1&S zJue&`0dcA78=}g>yyy(Ram)0Z|jF@K@ZVRxgtv#ss z2dqa!3R1zIxWW68=V0z=qSkm`$D3h49|L~t8<=-<3&N#sd%nLufrM?44{6uaWDo(j zyENYNa+YFm7QP8wl^OimO+~TBeaX*M} zwsE7?dgw)j-x)a&zaX<~j~m0#RQpvOoydFz0VGpf`YAYnP*mIuEFS3OqzS^0ni>O2 zC1V|XjPr=HI0EX%(<3JQ%f18X-Wa{7ZRvJJ_N7EBBGHN11d(=*QIRdto3PN#ZaZB1fs&mOy0-A$QqIhb`jfe zT45jRd0@I^);cGVz^el+tMCA0SHAU)iE5PZd6TfBJ1<|3O(R}$Ab$b-#2EGw^-`l8 z7vt(cPgtm7NMn`zM`J-S@=hbm`)FR%)3F*A!?*t*^X&!yw5VGXa+32j8&BJM^f1cN zGY^DHR^yH>Ym&eMQ@2DZ82KgolfCo|fjk%5jXb++TPsYiZGnHWByA74c|#_R$9UT` zYvecERRn)Ga+7oieN6fw^N@=6Y7P|7ujNQv*dgLC}jl{W(oHAKwa(9E<5-~>qE>66t&nrc*CKJbDOWE6|p-zUSvEcvrx1L?hDMkc-qlZ}`Fey}HXboORwg!o5^^ z5a!|`w46%2eG5Gxqpz=uU9WYkyP1>Qxkq79G49@RW*=;@GCexm0PWV92e$9ty=z4c zMb~xL(*S1g&cPUFeFswVYF&8g()MRgH;>0@6SY`xl3x z+Y*9z?d8Z0iM8wLj-M}7FKrWA$PN)+(}^REzT0L6J4}OJ7AO}ij;tj8Rcb99i_D|s zf`w7ZO9d_EfA|$yG#MYv3^^tzNZ^KsdwGmbU!raOnf+&@pwwOS5(Y5*%=6N=HLsmP zh)OS<&L7hbPPV!Mq7)ZxGQf7g-v-2I=!^20tjr+vy(+Ycb~TlPI5%dShFodM1~gH4 zFA)8O3u0L>=rY=kHzA>ufnH8-gjy!*-)RtHq9)c+Zy3o*;3tIB9-3Aq!-`j(0Z6M0 zIh}q_2d44WgkJZWE@&{MT-9ty+G-o&?H=I$u}d`flPay3NfqIhz&FyPTlZqWOfP)` z^t>|0+C}&})VBnne$hWYP{kzOG;jZraMu!jZ#`>8h zAYfLMWI8;2t#I2&pWvtwO1=wFj;Ycolrr3Dv#P8F*h2-C2f&YsC=*;3@p<^!eObTd zM7B}(1>n&Ld%-IcT*rkBex7V2wHsaqqc-8KK#o)d-i#W5G+oY|QrkMnS*1=2o7}0h z>?Q97yG{#oJY}(k;U>XgQ9YB-rHv2%B)lcJPyUwKTkwuMeokK%#>#^^K0#`?R5S5j z4p>+CouFM2ey8?eA$if-HlP<`zvU>d1^&-jAn8Gz1R(xb@_<-_{_P8%)bO=+hBLMX zi$2~qWPZc_XxO6xya|N;6F$~TaRG~_Uv$?&q3x4~XF#T5pI`7X4Kwot+Z@$&H7Duv z(V0O98j=9A!wgB8*ukzTM*XS;5jL-meX;Lj@&X1?It?q8M?;aavhmwDLqoV_Rjp$21BN^ClY-6`m{Onh;Q~T47|7qup znN8w~KX)F;EfNVnC1wPzXnV~CH%MmE_K^Iym^HWk9NZpE6n-_0xC=piW^tpM;EwIC z-r}EAvrGNn;`oS7}&5r6O*+oxnf3Zb1v;CHZiZqj(H=%B>`gn_UJWr40ba~kyM zR$xoe%jCqxZM2ub zcX+|)Z;gS}wSyg}Z@yl*pEhtW^9yphib51%aCSMQFu)8TvrDk0S-{-I#+Pv^TE-@! zBSEg-iF(y86#PMauFFsTABdu`{RF=A`M>YV2U`wy3Zk=XWo(rafQFIFDEhw5eyD+2 zYwxmt->(mbrLT1tB;65{kp)WdnqsDCZ=q!yW#FqG24AfK~TOOB84 z_NP{sdZ3wE?yrz{(yz%1xXq>!qU@IBoD((HM|=jp+;EGo|oLdK&sg^f_SZ`~~n4_}fuQPaqAtlb%=% z=uzqC$vy?oljmQQhBtU-k0^jsniS13g3>{SR0~bE7RY;KXNFf@7Dp3PCHCqBRx5%~ z@8``%De}Q_+c5QViFt8UE?Qoxq!%MLF=^Q-*-HTT4RxA4Vi{aMpw_`+09SGXPl^^r6!+C5t<|KtbR(w4x7< zuqnWF!4v>J=xgsA24`jgqjoYG>m?|Dip>Y zwwbY+v)uY#tZ*M$vWkrg^o0JCNlwx5 zD!D>YF@}7nG8AH91C?b_>xv>DLWW}1uaygSJ}fqJx&zp11bC&8FIbAvysYG~T`Q5o zi_(NMu*3xM9~;uOiOz{8bF`W+mviW(fn^QNf?QOc^<{H>PgFoD3a!#yQOE77)3$>}dd*V-Tb<0!snf)}Scq3GM+gX06X zKrT7bdIY$(4GM`FwPu3=N#_Qj)LV~Xx|f@@a=^4}%{&w^r-kk8BhmlH?0=aM{UKKR zpYCtn4NXwulfm-3I`%giVFGAn`rgh2bVjjz_%~gO)Y|W%CR4&SXHP~IBr#_TpDC8l zKN~A!L^F!UX?wY&v2oUq~@%AJt-VXcGPwMw2yiD zp@T2EG*lwh-E#2ktAt~aR12=HCH2!VdIa`Fz7bg>_Toi-7Nf*r)otiAo)H_A<64+^pU=5!`#QFFoC!v;Yq_HOo1k*^@s2Mn zwyPO(#juf#9eL5Thhsa^eos4SXOHbg2YtZ<&eFJsJMJ{!o$uRI%W`HGzvA)F~-3x>6Udj#HuQ~q;++GQZjJ$^Aud*#3IAUsIj$}48)NsK2m&^f8Bri8?4OPq( z?JlI8_IfR`sxNyp8rQ+9%~-L>X_Xeb-`K_3H)z3a%KH5;UfSE|0JEw7XGs#)EcaWV z0?M;IrkLY%zZrAH9r%*voW=eY49LZJToXLQ@+(aEg^)ZEv&RSZt4u!$C#$;cH{;eG zb4d8=lqi8?thHv;*@eXg;k^vvop~(BA3{$ZZOogx=M6}40~@H}t3Gx&k)GGix_HM{ zB1}LBKe#4uDgN$3t>h`WngLBOI3hzcfKDpdmLd)8c1u_(1bu=aReB3QL_2BZGQe6V zu7G_&)NM9EC;bQ(=#ym?8`*P`1VV|FSFDk>f#R{%IjAVa@gGJEbUQ(~DghB<^kT6B zx;J-VM8Lb5R4VOedvdu*>PUSm3%h+z0`_u+*3dE*Snc;O1QXbKQnb*JOPEr zz=fuWj9`!Sl3USyKgj2dkqGQCwe;z!%|xig$xaq|LGFiA>q+xedSttzrx=}?9!2>q zRmgyF^K}wZ7}ylg3Q)0Y*`iLntJH%^X#~vVQQqjZL1ad$=U$l74-~+!1$KS9W7zr{ zW{|;ktfgC{?-{Y=rLT)g;XO1#+M+cvo7oAv$=gCz8~mZKF-T)3mL8eERdW>`%Z6-S z`YMNGFkhm-iHalHnF`Kh2?8WoDDAQCdOf|z`uCiAGL74Z!+bwPZN} zDWXR%IU06!(uUDBkKPF#?VMczf!cY(TQDJ{j?v$Np4XPk6~14nBC4_ONmU)cY1U>h zI<#|iup~fFa_8RBF=3B2uq&>f-K(80=BLpcC^n}@QQs&ftYN3yiSsSad6D|8q~Fi@ zEBAKCpOcM&Uk_>W(C@2dA^a$T*MWz$H1?r7mUYO+2!C#1H|$Wy6&<%D3KG*xw)g!1 z+c75tq1eRz6WLPRD7zXI6JY`HAJpQ33(1Ndj%-X*Iy{TFez^O=gS)vaB8yGKRog9{ z!tlb~8c!ubYYIPy%#rv|$u`Nl`5ckxI*>k!u~7Hn1^(aW1l|sj{Z9f`bh-LFOxCRQ z$GLmzfs1OUBIu0$wr&ZQnEW@B-(~_o>Nkh*K%5Y(>ITB|#||taXF11S~GPTWNi*7j48f zRZ%Dj5bbkk#a||xg^lCCW>053dePba2T-I2F7Jk5+QZ zCbPFQC@E?)E;UMOndySNl-p4Mv-_dX<^xA_Ij|5P==ijdLrCvm9PPM;(D1I^cp-oy z{!kT7@eU&mI3#i}uz~2g?U@jd$;nE&TtNFKXL`>%M$f73xwS2Ly!4~-w{JT<{$A+`z`rl^oAdkFDyNB^ zURMm0ax9FA`Fy|bgGC|9`zZtDD)y&b<27TV*2u>dgbTT}F&SrKicQuRCaTjw1>in91M=L2!^1LJV?CqGG)a75^qs ze_$R1Ez<)a2?vgcsAX}rl`42aPGevW_Jf=?1Ej5)D}Y2=$E&nXM&lT)ut|0|e!v~# zvtWqVEvz(eaY@h+g_AusoCENBko>tWJ8mL+d#I4090UBV3`2UbArurG*;(d6Ucb`Nj>bCYK z8adJ|WG|eV_K5+4f*kL>cjkHIg1?>8CKed6;17Ec=*g)P4Ri{>C7(&I8TTUkbGM1Z z5W#9ODi2}A^iFsXe;58S=;M$b!|LaKw@Rrbj!T*!-~eUEi>3wiY~I%=uTNy0cre`! zmR4d-Ix7TB58WZO3Lz`oZ-%zgv~z+wBkW^_3N2(N#6X<^HGl`*kVx>vvXlrm`<*0< zHGG7=xqt65wL?pEQG*y76TS{kKwwZY?7JQ~3o!w)fLv=m9s%bjt6L+@K_k>CewRQr zGO5^FHt_3(6ZfJV*+Bb2a`Gqeti`vyD!?w8UisiH*u>xy&huY3-U(Uw2k%8D$L10V zQk`l7E&}#}Eph3Wzg*Jp#Ydo|SD?zWcmE}Opt0ue+Nj}R4 zPp!br7YRo53%#1s{Y1^vXJ5fUbPNhQ3y@7k*M%um@8LwENo6^S%t8qjv<-Gl8H57j zSFz{rJq==wWPwgothz^{!nmu=d%ca|g?+{GbUW5T(8GRmA&xdxb9&!)t40k7dpRwEhN+-kI<|W%3mT3Fr!G^H=q$G=2Prs%+6)^V^{YCc;ZYc2jp59fxZrXsHpYG z(XDsBFwWbR#^|jN3Hv~_ALzH*Y3>*E>3^W+hxT zIH@P~wSX0YrF8&>yl7rm7Ohbhi>eFiVVl$a`xeGesHE_J6j1P2SfHKs9A-~vLaWH= z={gBNd#NWx;FH43hW8{EyoHn5D{fK~Cv~f*PMp#VxqTeSsi&E8 zyXnJydi#*!)6gUE=!G3m?wZMO(+_Pf1snjvEs^`i*orbH(MLK8C%ma@V@DyGt5ua% zIgq&yVGRp*z7H%ccKy*lP4D?MKy1QgcH>L^s?z^hkJb7X8i(vICXJnd020t%uf>lS zVpa0a821X-KnMVLwQd!nJ7bU>TnWsmaIFx%Hnr6kfm*S3ajpm2f6S?XjrfDUUkr!4 zJlicdg}0RpR#=%TYC^vJ6{{Wu4d~5uCam=hTHk?MS}g2O4_0*ti*~M!;~Q`40iAT~ zK1JES@3I|vRW9CmA}%j0=!LL>Q*~y+>K}F?9B;vB)m8{O#hLt=2tgp4cL+ z{^Y;hUyU^X$ZIyP67C-bqxDC7WUcp^L5)yv-{@AfzJKjAmA>C=mfYh_fo`Vi<3Bf| zsZ_)NFOU5IED2Z*HR2&MUb$c#lCYSHwnH8bRU>qY-k_u9La>{Jp;svSA_L*QgV134 zL1KV}a-C~JxEC9svI)(&U_~P*;YQULR*K~uIJ9!1u3@ZTp;W?`WY|^&yoj zf&YrnUu~{i@g2@PJP8dwVjX^}b^6F znihelRD_Fwb@SQ6UxEart~hnUyk$WBgIRvS$TZt913GmaJ3ya_M~rq_PxV7PeSc0i zPorJlTurACbVwJ{Z(#Ir-WH#w^cCAHRqfZONJZ~~J&_p^`iCejk*;&mch3GeYUXlP z!=0pXK19P<2Dbv}gq=Mb9C&w=>ee`zLO>%g*R{X`Az0w|E} zhVJP``9=-vDA|AQjje;atfJvJM}AWu@Lz%Ec${TD3xW`7Bt#?_*$X zU>0bQz23osS~hfR<}{!iFjZrFVgcCqO9l@P! zsJTO!G4twFOswRenyLyZu>K%-Y;Xi29a(Y{} z_%cTj?GtN)>eL2&+lpLUy{!mlFfiAxE@6df_Zq|2bGz2%;w_VP(X4M<4O+^M4yR)h zc>iyp#vOoG#6j$fq`Z~?(eb}RT^JEo3ZP{|?0|t}Eszw4ypX$dkITzloUd$X4F61L zhin~x$eL%!yfUY)w%v4UoMeRj;kY~fO*NeuL@qidIK6l%{5d}gh-QD~24(*| zqo+5Am_ZkvXI_?1;Zvm94~-nMMqv-_s34~CfYpnQ>+CquQCbLzcvCt^2x<68ctW~d zNJB-u$!yQ5=aY9I)3j{SGGRCiDWj^I!<+}R0-EAwT=$}r>oy8`QPi;{z)G209@s!@S$&Hu0*n?@jhl9O*wcnWxz8=h^6 z=BCPMtYKQsTK126OnLC>rX_Cze`>z=YOsAx3Ww7X_uQwg`X75#sqaUzRCb)3F?iH~ z)d?`xGIc+=Y0H|1yce}5n}*uE6JsZ8oq-&_j#0Q!$@ig929tzUuFUVh9^SY2++Cq6 zVa@l%U3-OxXdB^DPtzfxl>}o|*#r}Q4b{KdJr?wK4V&18^&zbb3`SoiY_ft}6an{6 zLa$ovi#=DCoxTcI4SJ^?3>C4JC9q1RsFXmAr(v(1ctrzDIOqR+8F>>VeBv0`KfYX+ z1~A|UYx{}ksV`Scn1#Q9oi7cq?Y8BC)6hBUE&>{^^iJq!0&N*Hy~VE8MaeKp2TE2h8q4O2*GY zZ)Y#s)O56X5{B~uo94%e4$pKdErGY7lSHrcXAh<4r4LOfJQ~V!DvNMjaT4Zx@&O%a zdR?3tatL6^pgSh$BjOLAw`c3R^fdmj;wOILdHe(7NxbII(mM?w3HLx4ipKIdbZL^> zUXP@+*bb9)t`|Zie&$6KcMJSA5m7}C)GKK95D9V)Vh$*Y>Of7daI6S&sQR?9jkO-N z5@C>^p4M+@Q%n}#jdg{5Vq*j(Db?05fa8&c*57>&i@d(0sxz@@Mkum6(b9p$tqD<0 zTlfloE1KXb6=m78E7?O5s|MtWgGU&<^gO2Wf)ENzd@=Y$%1R(xZ;WyCsr1&9D#NcE*{k0nuvF!?27uP$4NNdfeo}99H*OTvA+H zt9R=CvjaNoWpYq5-HO?X?sy2f0&TTvT0+A^by>q~y-*ywpVd24jd-woIlzY5ArjBL zDku!{_Tc+^3u7-lh$SmK--%7mhsKGI_+q^guWK~woq*sX(@6g}CE^De9|Dw{JeKA< z>cF);iCEf=Ncv(vb0F*$ao_w%h=guot*}ctGtEZl&n?aZ($PP!$9N|!Jvuy?%^xGs zX3`WC-H7oUO)67ruGlPu!I^Rvqx((DZVGx)!P7kk|Q za77`w2@1NIhd}g&GvFyjx-m$%$rCM5d6EkdP20x`029_z9Mj`D5wliM&HELzVmmM{ zVHf*W0fUkEfk7iws&~Q8hedZy>ud1hMcuw0y$0B2!ANcf!ROplz@tFD!^Nw5GUBU( zgNIF_vK~Wn0O$LEqvO~kMfOU6f0$%ikbNd~c5l>49GO?B^#<$5tW9i%^vLlsb_sga zP$VNz47k(Z&X-JEUssYlunz$exAe+`g=5!IXNdn#$Bsp zLsFN9Onn4Nyzj_t?i#c-eSEQ^V}Yg*1W*yE0&&{4WoTN&476)#SPatgA4sO45d!oZ z?gk3(poqWmJz8sXw{!xpixIorhn9*?;vv{>T_NhloKkP#--`F~(a8h|%GNQ_LQbKp zaADZAaC9g^LKe|Lxwv*Gh^Y+4*s|WncayxcUr<(6!G_@#%8edL9?s>yY@pY_?`(@$ zEuHQAa?ttG*x5$|*{K~Tt-LFY*7MA-02~;?-uD@@`(>b z(ZKE0dKzh>dft^p>|B zpX=1BZ$h`tnwiqUH?phWaH36a*fp^CD&gf6^GLa-^^)_}ZCe##7pdE`?Yz5b*vlmY z057@B?5{g+Z;ZT7wd0dRw(1-Joh-W=t{Ox(zctZTz=dXyAfP$K>eTvE49R2-5e5#E z2@ffX7l7#)iZCK00x_uq@K_1n*cb`|EaYpVGT1$R=?zib%vFH%0=+TVE4>v!UHA1M zc)G<^%NQHEbP&X)U|iXNQOus{Nf6D-+E^iaYnhk;%mBz03H8mD(l>EEmv!8k>EH1$ zIlHEds)(*mKG4ma5?w^}fYbaQ-#Q>j-MDlrDv|Ue;#Ja1NRDaY@*zL^v&)xWK)Rru zZ!EpKbS)wAF+UCA9#FbDhNwj$+Jz(YZ-H#9$roePvhOD^0VY8#PqOo7LxzErrv%IY zYwoI#)K$T|$^hrko>58J?0B7hhprLcl#{h`>+*dEc5Dg?eWOLN`vy}ZXtVc3qF6C- z1jCwTcjmF>nbX+0F%p86t31;#U4tts?10bveTtoG4WfJnr1=j@*-;G%?P2!!m|>{M z>Azn~en1=OVA&weH5rmESWB0&O;>AFJ_8AMtN#smm%?7ZDM>C;e#Zr-Z_TKOlGO1g zp#5FhHwz(d!8NQ6_|2{@16={O=U7lUc`_(iNV^MjcS#%uh4V`RRtBfsIhg5(9k1j} za(_(EXBH!I6|!i9Q;AT8Siu9MCct}%r~HntUuquw zq1nxhJc)u7VNA(6r1o*@5l;{K!Vymo_$d~`gF74meGX)@^N^;+f(!Tv;!&D70pwGG zudmm#d1cL7`Kp+G0!y@7 z=Iyj^oAqb@fw4O{9>i)MwoM3J(t7h1 ztHwXL`3k4*y;CYfo$1Y$eD?Ysj2VET75XBdtVPX}* zh_|eX!<+X-7UGOj3xeId`xsbFT<6RNX2*QHZah{Jze7OmI0;S|r(;JJIS>m_jVulf z+}%?EfqB3Pkdgr?ho2YxKA96QPsm@ShE|vos!o9Di3J|c5XSDsKi!m^hiF@n3YFHw zIEq0uJ-xQB;vZBPA6!`uMTYDmUDtUB6aQ2&^R?DzVGqX~e0oqAd@fVHZfydJ)Us-{ zM7VS3o?Y8|T~YT`w>i4`(1!i(?-cUOID;Z~@NWPPFxRmJ5wgQac%s-yH5ZRmJW!HH z^RV@VMVE%|V|JIUtef}jr4O8}x+%5Ly*V#=-0 zqj{m$fbzgU1OJXuU}WjvaU4A_J`to#Fx%|rfj2#sJikm2Z2Iq_hos@3enkm&`|70! zI-5N3t2WES2c-bKhlTYm@WatM1@0FvwQ`Z!xDrF!g5a@uVyJFg;q8|K!kl*k5PZA^>%>%Ade}mVeBOrZY`-nj7{EI4Wc zRx33pS=jT6aYOD}QG*KXN3E zA=kaHjD0mtjn#NJP$T$A*xg;4p1pCzzwd}Y>9_?`4*p$JY@shKWn@9W<+(QyL{2@D zX@4h;dTrxvr<~+^_&IGmp2fkC8!iTisimiOjQ8#BNsn^s1a5FE;$zvmD)%+Z={s%x z8@$e|3c6YQ0FqPipdgcZxV>rJ`UBX^y1Isz?S+JbqbR%j4`9&zIcQyK#PRqAhF}IS zrlBK=FPydhyDf{zN$j73N|iVTUJJYf)Kb2O{%N{Xig5#HYTkqY8lbXg7sERc56jbS zB*9bA%$}W!o3@}A(CIA1OOAo7#RhR6yM&xxfW!urK}36}3T!7XXzMzLm*I9#TIt86 zC&gcO_~_1^4SYR(2wG1R^10ifs14Tv^Q24wmxyPD5#@V)?w>x0zHvMSf1~?`BXP`JKJ`8k)4@Suk3U}?)YDdCnf2&!qX@DHqi8|W7c+dc zRHNPvz6u_wfzG2nK!qrZqg#gI`IBc-@5pX_A2b0;EoRFiI0yr))zF8hg{apgN+mQC zU}g?1>jTqiXq(aKrWhM~w1wP2u@0?)9>jLaJ!7B&ujJTw9yJzS@E*F(8jsriI`hk( z;xIJW2EXpvam?&w!PQZ)r$jV0fYeyB!$`7}?R2w;3jt9o_2|u=%{RVtb(f`R)u&Cc1iU!y2cqj>y1I0yG9+F!pjiD7q{ml4VyZIq z-tKAViLK8vwR}TdfVXqc>DAd=X=Fikc*qvlG;$|GhdQ0Ps#wQ{#q8FIgF;p@aW3xK zy-ZfHO)Kj5%8gNQa13RI8|mXa!2_(|IZi?OaF1#CUNt6RGZS+UD4$}ueq%eKyNR)j zu$dPDNOTPAx3-Ign*B^3dJ!>npsm7*s%NH^FUEL!b{_kIgZQo#p-+A~V)}>XYl9TC z!$S%`i1?;)pz`V^MFnq; zhy>BO<(WPtU-}W?zXQ9#YtNF^D}ZD08!Ai4x}&6R<@}NHx^=XLC)f z9Xu+&nWJ<$-X*&>Jo`$$a5{y672smv^6>?H+R>v*u}x#bsm5qifIljOWla%mCc+33 z|ABr39c+4a%4X=`(rx-LUE%g^{&d_Xi@_uDTk2E74C!WiH-8$QNKcDEQH~Eu55+yH z(Vd!e^3aYUP1{Gb-+9@xjeo>OZ%}4GN*p7nEs=9;a?!d?h>=b{T(%>M*G<+X2U2<) zSF&)r0HS6KNLVN`%s6sO4hwbPY~<7;rd>~q45SeDib7#z?(IcvKNmdNGAw+FhV%|G zvY_XHAz&305L3Db^+)yu$RQzJ^*sO8%F4O2_Uw~mB{8gH7|=xOmY?GjcrvDkn! zW01NQWQODf2(O8el8$Kz*i)ALE_SN23rcDg^{^nJU@|TE6=tbD0@Cg zIVzgu4wl`MjGZ{b;%$JvfzWR_hYDN^mu+^6s54D>YB~{v+SxgPfSFTGW#&K zP`}04;f>?EUMw1{IlTg9ZGo5$&{b1qL#(uRplu(DGid;9JJZOG=JY+PiZsFYH*cfBlg|&jU(Tz!+2njBeKk zkeca!r`3PB1}c)xW1zT1UvCOrAK$^OWo^fY#oqzC zacOWy+Lj%{?D)|)M4h?JsZ;DI1pJipSLeP1-yYR}X&Y8N9l8f#!X;T6Vha2>Cib0P z2udX!2i2A^TXtkz!4UoWa#AhFn+Fr{G^4r3RY`<@2VsREeAu?uM^Tq)b`9r6eeOki zB0#GW%;Cs<0en2;ASRIYCx6lF1}v@Edap#}!tk%H4?y$1X(oZO zr>rzAd~6SJg(JL^(t$jv1}-zgc5m;vrsLBcKjVD2Q|WgN4+I1U%xZ>ir{DE+F9rPW z{4aSGM@`X%Gd7>qr&{K%62wo@qp|-*~dvsiE?~ zMnS_ZWVp2Gao>=(9x`6~kCJi*{{lDByul zmTqNi>2yIi3M0EBuX|k{Q{)$<;_?T}Y|UD~JMWgKBDAp}v;e5WtQ~n?!1k@QqeE0i zX?X(zr}8)SKiPU5>lpYfAjCBW`V>rXEvalm z9ulQnL4h*BNEs#`G(GG{3mr$FeZF*?_|uL(R7q!584Y6bhv2Gd+Q@IVVNAF;K$%HFL6Y>SG|0$Xv>F&#gux-ZrC3tL9!B$TC}DJVcXfx)RV83`?KZ-x;erMlWcU31;onFPE8uveVxbNg?xB%X)*rx8R`?@$ z20~AnM(YcqzWw`yQY8Lt$dD&m-$u=TU`iGo!3akuC;EG#J}1SFnP=zshcwNya&Zg7 z;0{s<*7{5@z;muJBrHV}fO-u0eZBQRcnu(T3|XFAXJI}O2^0ABubKE5))&V=1i{1G zVr}Z2qd_o&EI`IN)f}+NNScuIz2dsdp|AtP`DWteL4PicGNr3nyaU(-a2P3N?6#s9 z0>cqITXo<%+3i`+Yd><%mtnsk2dp)(0=c(=8{;B@ZEM0@A1yp?OWcm;BQU;B9$NSp zN)ecUhxn@KYoxDvkuCN1NXL9IBvK+IN^>rz$8TK@ZUVdY#;O1dQDWiV8EogEbsEjC zz2)YmQ31Tax%lv=i+2ZJh*dbvZ@pjw^AyBnIo~Cm#at+8fxI$m-Hf6S&oix}mi*}x zlz>R!fl_)!bLRdjut0>ThnPZp6Ytm&0Kq$=$Z#|U z_A2PdnpflfFrXI9BE^as^hh2-thf$n^w)K~6Ih7!+k$N@LIlyzH0h@=iO$e$W^29a z_dsr$|0ZPtZhw{J!qY$L^oIY;yUU9wHe|T;Zq#)xQn=>ff|vz(+~K#-djVdEY!q-q zUjKDw_=aqsO*}#E!OxB=@-%n?e%NiPVlAE?*?`^dqEnt6F1k5vCmQb8!4G6=FsQ#p zcVoDF(~>p5>5i|P84bGtd3#$|K_){rY7a83HA2!(PTs_{JfP(7WYIfG0#pE`Mq#gy z*$1lX+l1$*L zP!K&(*EC6M4I*sU>Zm#|i;dn5?C(_P8YC@+b7^$HJt(Gix7e{1n)gp)<}r*N$*d!y z0gMEAGryK}0g#GO6O3-ddnhWuRGvT6-R_CttH z6m4Vz;;kZB=VZC-6&kj$Fo#)z8B?HXr=6KSeGZi zz+_hfM``(olM-@xe{f{g%H{p8;oiIz<5B?hwE8o}0(PSmrROnbS}1I7_BEb~i@)ds zL7HA@J=vOM;;0n8`d>Y*ki$It@ppLuV&b2V5XqzsQV+_MlCVtJuxXbv`r$DhP_NUr zfKy`n=!x;#I5f1dSJ*VgazVpk8oRjL6eBM_~M}o(f9oa^nHt* z)#()-ucvRCk23M?a!-se3{Hd#xV68*^t;QHP^ssb8h<;m@vpdj(h$4SCQ^Epcqab6l2#k&844Q4~TH zBG51?Og_b=W^qLjlt6EXeMn4Jt!@$fl16W%Zv8D9n0|lmxMq|mzZ$J^as5_zG}w5^eivQpe7WAaRKPn zGx{Wci(|3y0(1Zg%|N|F%46`TfJ>9mOVO34x1skSenGr4hBNa=4Og5lz4&$nqWH@G zZlLmtxp31;7sFK3%*EB9gfG0lWC>gjZR%cMl0cC=b9D95iJS}pYpGJiDy>-@S-th} zWlL%x%K_>Zdc~D>phhb>O1yFv!tC6;fY$+yJ@~Kkk@a%GnuYQmV@Q1fGEvO()W%~~ z$&C8?hK6gv6;|#Z*Uga^q7?{fY%Cap(-7$rMY0=XbJQDhmvN~y?!YUYj<%aMk(DT@; z8@k9SUyFGpl-F;L&8TFBuS3Y}5``pJd~?wck${6S=o$c|rY#nP7Y_EZe7B+2)QT?~ znrS+HwXxfoX&^TN1k8VB!N9~K?^0eScWi<${Tg!8&78aK|KsaD;M};btMQ!~Os@b2 zGjC7^i!H$RU2Nqpmz`YpDpI0IN)$=;-n(Qqt6R1e$+BcymShzd$vsZu61m%PTok#N z*h&7M6rhv(c);(X%;Xl{2&_{Kpjcq4%gU<>Hfks-i7xK)8G zqlIH?4v*7Q49ZmZ%JGkfQmL_Lz_KI)7%ip$eiV&CMb7)V!KvBVOiIk3xi)e;1)xMV z&HDNnIFWnbM;;W^ckIKoXCJcqg}pWOT%<7vMPqTQI5M|mHzHt3b@PZ)kS3SwBO_Ps z?CnxFl@**$>}xXH9-*}WT-(n@tLNzv@Cl@^#_bf0iLuLTgMHPa4%M4Xt|&$}NXmC? z%3275#~ZX1qNeTl zx}8S54IQ6Wbh9vKjF%~@#*bSuGhGcl%T(0C^paz z@qjP_+g9y(r2UzQ>>0j9{Mr+p??Y zzVvZ*W1I7PoOdh20pRNg)tLAdMn_)HmRm zP%)8*YoQVtMy7j3ULJWPhAYpA^x0GUCi7$9I!aZt5@J(R2r@zKNH4bLx08_N=PdWg z)@;$WH$KL!-g|2%I}^1>!?6)y)vpn85v=Ul`ab|@=!}l~QZqIm1ZTsy!Iga>IAxmg zNOD|pV-F|!=4qW_-01nXYM!FBMjU@bYm?mdreEYIWO5`fc4J!YXKYJ4{gyb}<2-E> z+^!^7T=4kx9f_;OhQ$-=g(uYzK+x|tpx`O63s4P20S>{x7Ij}6vF8R-qBC{_8YE|f z1uVMw;xM}I#sYXS!*fqWTV@|R`MDD?L~zrD;;BL7HtaV{9#C72-7~GJ1=J%_@%3!} zQ*!AYpa@JEQx|~nO(@)4htemZw$$Rt%+O>OB9xjn(ACkI2S89P-aV>GIV*Q1&JEY?GK;+qq-i7dFBy^@rI!22tYaMq(hg?SbrF0HB z{>bT;<)@EMWU|Mu1J)3YHj;cehv~~d3fWeS#@|v=*wZmmSHr8_JDVbxdOdN8hWVKKbf~ZJQt*gna@*E`9R!3jxXW-uNL|^FbP>tX= zLCd_PLWCrKaeHDN_?YSvK43~g&=6=Hlv4rTL&ZNHAdxk2h-Y%jES#%~{%he86^4KFMXc79^exjH> z66Mn2`dbQ$QP{sW2FV2b1K{|YT>2sV^KXs#nH~=dH-=*sExf{=Q;1PrEms?vSeKK; ze0Tp$5CEr1Qz~l5{dLXme={oP{Ww*jIwDSm2INXC0}kAjGkx&ude$i)JE*hy$I*Z1 zagp$I%PJIlssUnd+q?17eV17-M2YN2njoY39}ZXil+&R`&{`724q&l+nGTee$nFLF z(+b}eO;4$D~F`s6}5rKeeqm%b`_KH?|mTo7KO(DCoIpP5U0jK4`ji^@LR-SxG-i` z*s(LvzJP78m!9qeE?&+I-eG~F0`SjrPfvZUpvhiub?d&{QQCg34Z(z~K%chYh;k8u zpAd?J2rD8?O2IT9n>5HW_9Cbnwb*&*4|Psp_*9Qw)FRTbNjuo}LLSyxzc0ubP-OD% z>r&OK3S>>^yMfC;!sZod-yoZEvM>+C<;&p{UO=z-Slfpa+eoSc$@=5g)AF?zj`rj6 z=`7!%7z${ZzNJ z-1dBC&$JgFyRd*@$n}`Fx^A-fQ8&V&1ZV#1h{VSb-A})Psel5$DNFn!N>6yh)9EVQ|%`I?qgHVc{^@cF0g3{o|n*mG+|D*9c zgi~U4;rRiAg|~jF;`kJ|1d%kP2x`$15mp8lfuix)9^}ZD4yLCwk5T6WX0_4k6~(%$ z!zNO}F-Y{G{~VMirdJI0cjQ&G9AU;N=YbQ?kiAUQd(nm-MXx^^W>6(I+ag~(EUCDxyO6@L5!y=eoXdQ3wu?M|7ltQi z!&DZ7TY~3UpqnY{tb_(r)c9pZu#Rrn*#HRPa?Rr~`s{U^bNiLcu1|=SP>i_;K zw$$)Dg7uZVfYd?LYyJ$>*X8`NW9f_ohi_D#dMdP0CJ5yjs|(?T%*4k5LWZCarcCbn z+*gXAllki}3vXE_kitQ(`itgr@0$$*?6m{Zr;#hI;kgpW!!={><8C)@J^gDra(4Fn=Xz;DWhf1UWqwbU@d^gD86r0)kdBTWhwege((xc8L{vHG!HPC7N896 zZ8-xqUv@?<3npm%UpK0O+Q`gFS=WuL7l%l^LD`RPxI7@dxj$w0Hm>e5x8XR2M)JBS zCAbO-A}MwGBhxzF@RK9SUbSo2jy~V-mz}Dk+ZHAjk$v0gLl49`G!g4>88n6b9iXJf zL5twPN(cTMuS$o$RH*4eN$xUIZuO!qhFL)$X4}b|y|f>7U3eq9nK`AAs+xAK@tqM# z?ia?{eU0?Fpt>_8Mhx<>f)LQvuA<3=6iK^sFX^HVIcoVw4O?(zg_B59YGe`^vJ~+8f zs{}(&dC!Ai9qT+565_N@q&;uZa9z_k}+&z|bdvmGT# zwb>5=S-3I9E@J3anOVr7uJ+`{f62CZ!?c91({rGTk}Kjp{a}$dMwXqr_Hz$TMMYh< zzVoe>hcNAqb~AwZ^Y{C{58$dkB%W%bs3TzDB%J>|&H>4mEhV4Vd!79FNFGALfeB`D zq}VfMWB^8}wxi0GP1~J?9;9DzKY6E5lk9;b8#3-tCp<4KtaBo3Rnt-?P}05;^mUgq ziZ@dUGRrq$10Zl8rrB%H>ehqRQ%2)!IM63&W`M3SjEbxc_Vhq9YNR)KM}a4QP4+$B*Ai8b!|EiU}3EZNy-kEHXd4!>EJk|mOeuT zFM0aisCLQ0QzNKhApmm2!M^ELSwS_j=ZwWJRIgG-=IK#Y0ES+t1eGjC?LcqW&9}{4ay{+i#foFT7^;7Q|M_u1$k=7f6C6N(mW4*?d)huk zihhgH`cec2ZEfzI7vlEBsW;;%!c8XoHaTCFq>cp-fDiKA8atJo0eNZi3$$}N$7Y2F z-RWBN^QKGZV5)`Z_z{)Ukip?%t@l!$XTjODya^T?PV`OWF(@8x^2f=W<%gzV#9oy@+!JG%Z^EJ5cp` zyi7_E_P=39^ghh=;R@GX0Zzlr4Z_c?=&U1P7%yCUZuY1X)=}VeEVP@v%z+^MCChfQ zNVo&@IDcZMnHgAy1D(&}6fu@Mcv1xf5HPu3i8Lxe1&3jQ3tuWfF+5*c3(^L{Mfo&e$5>RL{a+)Vbu zPCcJh`%Z&S-;S(b&Ym`${uIWsOBe%3X{0C0L&s_ivHeda@V}x0bZy(6$N-;AEGkTp znoDZ$SV9aJqiMk_YTO1Az+W?+Z^dp&W=AWZtUlRFGcF+CpLmR<;>yDcj^8`pP+F!U z@Klf2_2?u~F=E{+=S_%DsW}Vmzi%8hMAWT^HWYv^nd|_Ec;jOLaWV{Lj@-`X-y@ek zhEV}|=FPlB{_b@sZi{ZFzVT?m23#Y$WO=(rwH*7IQOz8@Imz8VV!-GBAI0m;#;c1t zt1u~S)jhc|6c7B2q}&F zlf!`Xd)IaWf#d@!ZnRIX>&T~b%jS?k7Dh+gJ*~8A)@!_~56qHWhHRn{_74%5b>J@) zaN8dScHv*!Rx~Hc=^FxQS$L9-DdLg(_yi@gyZOdx5;Tb8bO>+yoaKwG9&7;gRS61nuJF^niJ`!3JK|8Wco1XgeR z`cbeI*wKM<351D)p80tl$-I;P8I@!H7$PM8q*)RQl*6ZH{*Xaj4$p#P!?3qc?dsOt z{^f&p6t$5-qxknKwMbru0Z4lPfAZ38uuu z{rexu%f$y8_kyrXRrEvm=CZbFb>4}RyD;YLM;*?Gv1-C>Az6xP)=Fj9k%8R`2TvI-TfMY1scTH9IcHlcc>#0+DBlcm`=UIz}* zlwLoB+9B!HDC$70zHu~ScKW)>uuIQPp9cs+boH>}Gp#;ck=*FL>s0h|H(eKE#M{)b zJ{iXD<;{(-jVZzcVPtH$==1#^z(5lK&O28MF z4|=!ObJ6uTqr>L<)9bCBo^V7acF}wt8=hQ;KyVxSZi*#%;U{?)JOTGCyp+sOqP0Ty z)3nsWsvA(Gm4mzMXnz`@{IBjjD@37f%g_!Lqe!LuM>T!qcB;+l{WnmD`o!RpR_P^Sat78*TQ1TH$jJ2k8Kq&St) zRCRbWpk?mN7KF-~(K#(hhs!!bL(HvMjzdbDo9)WUm7z%&W#Mr|FM>Hb*BPyByxCV0 zrQ^SBN`{FJkgMzy&{Cip(A;a6phoyhSP54zXe|jJz`&v`fInOAIa%43w{EQ;y-KD- zPJ)&+d6&vpnip(Z#lz$SJjg)c!HdVV*yz~&FG1>(<}A00kJO9kH(W82SDXxQ_rJjz^qDI}DSO#XAW5L25 zJkq^0=_6cBty#Nk_2h=JY|b}OMlIlI1&m6nb&NffgCMI>e_x1^RHgH>g>n&m3uzX- zC_#f7%IG)2vk)Kn(*6?P_{}ZMqCB*qA<6OH|Ppe9%HWlD-RInR^u9!Z6z_$%IKmMb(y9?_WSeNQrN! zQpFLTid@>4#=M2@f>UQ1fO(eVRr|_*PDL@=H>0DY=qa8D*j@jv0owDI%DuwfRn6$T z6%tGHV|%x4)^C@hCOZw?tz;}EL^#*O9TlBh1fZyM!Zg$DVA0k`tluAZ!yLsn`;u4=&Q-SE%@ zc~`+1^kiKT^ViihCD32(wv4_9FlN;F$DS_CGy^(i2{y8GR93oJYVaL`qp|&{p^4Es zzS8(%DtB_Ml)N#B2}qh!L`;v}p;{Q&d&FJ;`8*fTC4G<{{1^h9j{h zx-Ldyk2fS7DsT=IcfvU(XUkX%!UK~LYw1EtD-63#SjnJ^WZC)PSQYR{PX%4vql`T| zWJ$|Fv-<$EI%Lf0xXy}B=<(%1!=V}Bzx{g=>+JUQV3_`$gRVIQ{-j^!z%P@@u=GS@ z|3@Y))R8ZPTVikMB3bd28;-3zSoO`~(cw6yTB|RnDCN3P(FQIDqFoRkt3ePqxRbG8 zpptoe8O@DXtD#z&*~m}?Luu2qvbC$W0lEV|p8&Z88;26)cc27$0~6u%<_w@b)%5v? zY!!^#8kot&d{Keoj-e>2jKpqXsfizs$>0VMGExMNQOtI(l7`byQbGA5#3&u@SvPae zS<`*0QZdVxl{f6(E!(#&N09Q?5lAoGkHA%NGmVdF!#6MkgAbo!n533V?=8VT)V5jJ z$A`sN5QCiF_GTzAeFQn}*C+~UAvdTz+4KdA#eX_K`09<*E^aM99@AQm)57y`bZNYT zIx|@cFJp0&N^^!1ypPIe`~;$_a??5fjZ~l}lS_gR*ci9fF`k-m1EJ@gnCorDCyB^t zN#sDv?RM$1AxOo|97fh1U*$Bv>_n5LuJ4k)3Y7^EG8h%xn~&$N5ZI9>jhW<^0UL;MH!9E3y~N1 zq$9@;Fg&9C2^BJYqqc=2D*@2TYEqrQ7Rwm}tzMsngLI_zg2TGF;+T+%b7<=r_eAW(@pKYQydJhi zX0s$LSel0>dF;}>h9Y6KIq)xuHG_~`27SEcbLeW#mh{9puZYvzn|4O^G#D6c5)!r4 zs%TYAP%h<>Y|^L7HcbaM4fER}mruvZGBd^PWqJ^00CbZiC)3rp5#^5DaAyxl!zENB zR*$N7e=lXMdjAn!HpFM;_%LiuTDgXU6js-XE?&rZqf^TZK-twhLI;pnri3FD0dGkn z;1!5~8*hMv*J<2Ai`V0hn+iJtCshAm^_cbuP+{m>Ks6b>C5Homyul8lupuyzpj3WY zo*+i*^0y_Hb8#f8wM?hwtexx}jZt{XD6y+#6k}xD9VFYOkG*$9fkwj{k-2DK^M}p7 zH3@uqprM;z@9!Bj=Tc zp>e=mMv(nxl$XWe?;`ehF#N{z5d#_(I<;BKg?oYH|1t2@V{PYhg!NYi8g0O)=Z6lw zKx+f@qb5l&THqDF{)>SMTB$WdpQq<|J3i1t zPByIwZXc^EETNYb3h@p2GLWNtnP@%G-kh9_#u;A4E_nc{AcNZiP%#@o)b)~cM zLKhAzs3YsC)1>%k6kaPuOe#cbcuZ%(7gzZ#QG-9A>Dm9^07rcMNNh z?)Gl4qH zbjfN*M;Fw@F!To%-z*_;(a_II?!J#;W) zr(aBP14$1zib6-BcZI0-7SI;XReZk>dqwU5Po1oQsjeMDQJ5)roP4epdMKECSx|~o z6}hd=Xj=`vr|*luZd->F_jxcb{upYvueQA=m_oQv1312*w_r}(439U!rZ?oql(gPq zj?HMi$*4h=*gPR&xl5iM&p4Hw#mP~f82gePNG~jT%8i%eziKk)-*lB*_3T?bAg)I8!_pP=tr`ue(*ds8OJ8&ey25o$w^r=w;AvJia*QPcWBsK1Y>v&4eewW5>2lm2h0K(aeEx>IJ&|h~?jXp|$RW&Iw4n~IgWLo{>>K$1Lcgr%wF`KCVkIhB7h=NoPT&;YjmV%`&wBl#&Mgpu-@>^LUp@sV z`TAoW86jY$csKQ}Xx=U42=m34_|cxEoxIdZjZo|xI>=#p@c494a2K55pOVKlod3#H zKyMjad^oPy@4@k{&YaAX%Kgj>U|zDyO7;Ft`LxNp`|FmiV4{_6#Q{EiEIGh$%?nrC zIpMpw$s}OY*pP)_j*Pyv@LcPqRckfj<3hPtR)!icky@RL^K|OPd`hb}zO45gqaPfE zcWPUF{FkVnP7P>U_2;bz;!ja_zm;2i=cTsctv-ofc&{IrKQ3R?MmbO zpxWs9%AhI_d~@N^x1`)XQ<~iVu6AYd5&1KE5c@C?bpyoi2EJQq2( z#BVJWPNS6gbdu~M zCS7RN0WMjkru(GOq)&&kMLU!{ayT*4Q7`5+?4Ujiz>;04_-GYrUWfaRR!DETvRKqKn?DeO!U5#B?8z3nM@u}vTZ^;Wdv<(mJ(V!0+QDX5L<`ord zV*a5nMd}nE4AIha+n24l=8CJ{jUJfb8>QQCxa+)4#lRC%(fnoAjIAqU;*|wR#iAE~ z7jmbB6Fo*5ZlDjc9Zmp&Fni$RP)x>@0(!NmfGC1icmu|8Q7HQqf?vtj<4?0xh><@2 z_^ZTgP)4Bxa(+4rr|i`AEHhL{=h2Uw@-uZbXY!sukYT-`Wo*x8eJ{J`T+ymk0LHh9 zCENy#f^Ap@wFX3^r3=m$}`|8m=lZ9j#@ zFF2e97IK`A!~whn?}H6NmILcb46b?VCLA9W6k;<_*hsA#?#KuQg3b?i12;IF@#ME! zkCV`o8)xg>O*UF`3@2Alw$suhoURYCu_ed$LIgh1Jeu(h#~<0kM{lA6%XQ;8j?TZ0 z9^N$MsPhk*@fE95^2|x7f&zkfN-m3(Hzgpq>>27B=r%O-a4qK{t3-m@xeJ^TBZsMk z0%cF)JH9s3_57}ONzVT(fMLZG3c8$c>{eCb=?#cVgYNf4>}3R|pg~gOms(6*O){DP z1D@DfN8XLH=uH zM%|^8V!>>r)OdV&3iyF6mtQXpvD5_-C)lOKmj~6I~}JjRBDy~79@(_5W>Gh zbzRMWXt1#!Gk@#ANeu$HpTekmWp%J|N)MXZPX4`&*o>UF@O&Ibrq-?^VWnTOw*W+% zc{3io2@sNes_`g9na!~c;5`MU%|2n9S}=^MeXgBOZ(S4Nh|XeuAF5qw^>ji#TOK#N znh}|4p!)&XlFusbuMZEctp`sT?3{#-k__--%8VhxwEylRlrNTshMObsP-3|42K?!S z!7W8*&(DSwx&I|oj}R4-Jw7Dmc*vKps1)-7>k{Pwbs1vlWu(Gu)SP41ike{o&j=z0 z1=-RvbWzho0m*r_IlR97L-@iqIQdU$I~&$|6Zmf50gL@OI#u6l`%&8~t;$f#_Q-9) zU=|jdTvC!rBkjOSCw_0K=Su)htrMRL1C(CF-!((NCA#bjM%K(Bg5dZhVu|h2bzXlZ z1dodbyO_j~JEpt^CQC8M5|gE^K=G-9D1k1wUWxAk{x~&z2=ff=NZkg6QnRY{)61AW zv(3FAQ9-|3OP^cUQfb#eJ(RTpB9?`!h*K8P;YgU)=l_62f4}e*h%5FqX1lD^It-Sf zx-EFxj02j;|-=Onf7DJ1u`XDfLm=-`$|3L@h@5h%KE zipHT?()`S62oIfCIHF4~mf{w=(;Jy1H@@is?;Abr?hNGJodRvJR zE;T?b;bJl!V7{K*7KMzIO}A{01a$c6%V&tgg^U)K(e!b2Xmc+~-mKYX3tJg^EBI`M z!%K@yWJA10ju3$d%#S& z1KgLJT~)Oahq4nkPju_cGWl8_gZ+8ARPB54XapgS_A+DR{Y5zC!{>$UjBa~7G;9Jy z1S!!43CZ^}3LmK$0V@?U=*SNoI`hOKkZUP^2|WH*fA8Ewpusfi@A5$yjTjB{ z6r#e0O%W~jy+dwl;uvT#oxxb7^Oa6mu=CA=K%=MhGjOp0NlE~&2Puy}sV;##GIYCE zAUF)m-D$@Iq{l9RQ(e<0StG zf(ee^Z3Tu2_MQSo7-)CP57iRuN*$kFZr#Mewlj8`BV(s!+%PBc}K8KZ#72Hx=7;3x1k2TyM-edWhT&KH z#!)vyC(W^=jiZ`1xCRbPfXZ344>fk7EXSgQ2cR9CWZ~{kOLsD>QU0t)>;tO-cCQTd zLh(=1OxO3jBS)}DZf&s>BB==!J;GpiYD70N!#KvW2j)QcY)q_U(Hf$~SA^dho(tMJ zCs))_E+}e2z@UyB^R%9#fD*zmfx<-pQ822wiQ%%es); z5&|oi^|X9CV*;p_vQ<Hyon-!S_4{Nm|I*T%~2N7qdtbJH?bN^uMm8lreGGPI($HW%0! zQ8Mc91Q1Gf-+?MJ5ECdgfDt<7udnJ})>$)`!_=!iGykiR2*jltB&>BCdwB#)%QuK%NZBK8SE$i7GVVXUO3*b zgea)Fn?k&wzpoh~Q5hrI1<8ddrU43%Wl5l z4KdR-+m8m(F{WucfY6$T0q2zFr9c&&3s@qQH8N5F%s@%U;6{V$+W;c0;;&-~Vlm}^ zi!s~J(q7cKSBgK1oDpK#@rMwjft>cSSj1d#{3xDjQv5hv4>A>c>L_C42V$5rF@$R6 z)#?{ZL@euiR#_812jH`A$0+|%y-+jA zs)*|wpTxQS=mY?=R%jUWw-*JuTl{E1U&qSz-k$4Txi$k4#}qi;uD)>fn)PSYVrURZ zxI^=2&wwP{=@c)+vyAN4D0CyxQi4@+)5UrTUd|0LExlj*bg_V|yiHm-Q((cBAj3#RbFM>M&pgI=8 zsWQ1L#-w)&cL|^@b~_>t$ZOq%Haa}50cs6N%toQ_7Z4!`ssrK#6tqlMi}BZMI(oM$ zQ+XTWd|(%RKbF@lwIV!Ed% z$UwTM*we$nqdC&8r@AM)BTdhweYAvo)6&C|I$q9$e;Sp5nCu}t*jYx+Ud@V{tk}9H zVHg?@&2|Vp3Gxcx?*TDZx+sJC8{;=ThZ;p}@H6p0!O>7a+x?TLu=b$f6zZZLXhNFylmNwZl@sIfwProKC~UjmOg7L zOwtdN-VHrks0M&$BY71^GaiG#2Oeb6aqw)4`~gKG^uZ;Mxu2jqX)~y8`V0PXkR_rw zi}xe^NaAbyaE?dX^zssS(R4i6{P+ktO72p)ON8&CKbzbFq830|Z*~d~cB*RaDX8)Y zr@E#4IyI&D@v1J(zfFm+rO;WLJ&_{=k4!76a{F}uG^pFk+vCt7$vhDSgWaQ4yh%#i*8gNsw#-{}+)4_bh(~H6yye6fs z@Nn^EB^PJR2=qWMB%c2!0(lP*9Q@H=;md8U1XYwz$B;C_-16wk6hliAerEHSowh(x z@;LKS-);vi=sAS8AsFjF$k?+??|eIJ{9Y;v-%RUvVR}EypM7y9t9wt~U}hhF8)iKG zOZP_6ipfG&w@x{tIH#;DDPXO;3{vM%%li*>5V}6qqbS{<4PE}Ys^KyC=qVU~`vmG` z0JcHTYx19V_LgM{noI@9m!WANj&DC715g09C5QnUdpFaHgK#PBF>qld4=|uFofifS z^K5LyL1ZJVkz=6pnIKxZ zRxQ~q0){4<360K^!3P#aL)``hhl~OmVSaE12_$be~A!Q40%3O}k7Ynvi#BaXoi{1ly1 z981X3DrDCR-bScLdWD-~f_!XlP%v>MXQs+OxbTc`V5-PXP5y^k5x&)@B6G&DWkOEh zcvqy4?7r}g9iCJEtBZmzU{b-rU7gyO#Vxa^cRyOI*GZ(Nv3gQ}xv#j(kJ z8bq4bfw_(1-xpJAr&;<(fTB1r{jKNRQMaQ^`s9yxtr8-o@vDhK4)Jb)fgV3JLXaR? z8R4x!&-;MPb~Af;E7U4Z&!I4N8Y+8@`(%9$=6F)d=58BgE{^79%6|lsN*07H ze)rUx4)Elwwk7vXjA7}(4cYhF9_a_-FHm*55Bl+K#797DhMmt>jAsn|NwQ{uX5a_( zkDe!?4-cS{m*`H@za+tEsvsQq5`;%-JzGAdwa$2j78)0<(n`}hQ_YA1KmK+6%iw@a zQ6IKP)bImIRk86o3_4{?-X$*?AWX^T&O8D}CeYoenZnS9Gio{LAxDQ+kK{_|{6&BG zSFlwX<@!_a=mr;sYO$|yHlwoTCM5S7&w~{yyI~x?9M`aR zZ&9(vrPuC)_Du-(&(F0rRkXqY=RvZ_t*SEaG{R>(XHYr8Lg0z2@PL}1FMQqT&`UDf zWEJUv;R$YH4g9>p(SlW5IILQi#LtqGCiw>bl)eE^`IpqHbU6L5mtFi8eB~k=9(~Q? zpTP^7+;iZlh97~EayLRSwdM&1Qd9$B(76dD8kHHyN;#q>mrzbS4XSjr;P@lSie0Pn zk}k;Mh7%wHf}&mu0?YAvj9uMQC%KjhUrfZEuWwC8;FLPMrGI`##O{ilB3-vb7Z2N1 zWT5A<70S?VW9;;nSkvi@K1FkSnD+V;RD+OVf$b0XGFydH zHcL!AbpRGf|0FI+i5|0{XH`&n47OCwA;IOqr%97I78F&Ulyx6nRnprM4fFv}?G{PF zhBZPFEUqDlw@7^jj%jWkqAy5;NL`c7=FJ$+Nj=o~xzY35sqj6&=6c6(1da#YKU8!Q z*jQ^>5#A(gxNsEEVSs-;X@S{QIua*=4>Zjwhk@V3yb^mRvm^UV@;dTd$#6O9f0zeG zhXx>AvOW5EVt+V5mI|2ix)LlO;U9Ut1oM_;RcT&-S;8IE+CcPn9<1@J@>UWmL@%Kq zrVq<3l!GUd)&2967$NtNS{!5w3f_$Z_;yrl7FxElKOsEN6c6&jjTv^C?TWG-{9T}d z5HTJCD4wlrTJDZ~W_!N?#fWM>qq{+U1?&z3nb&jzEt?hm%K>s`Rc88G!wu9~MHEiX ztI_6_?P(#k|5Rr5j4=Hh|DFWI*L3L*xU@d9>-5?1CaXY>RzmgvBj-u{re}EoQ zGqj$%fR9n^C||6G2>VU z+b)@Bbk?SlC>v|%B3A3#-Gy#9q?is}g9#PL6q+VF(8DE5va<&cxT=7>K{4bDRGE|1NM>(}6%T65fBv_26Q^km zH6@ERHpB)gK8mYC1q#PVx0vt|rf4FZ!2CB61zIXdD?HbbA>N#uuhc*x6kwF*2{8ns zwf9FDHabi#6A@fqjn4sg@To7hLqy^eUx6NwC$f)yB=7jJtuMU;6w8f&z!w{-k^sN= z){92hj2Dm#K+nTj1JW0qFV>{okku0gJsQd;;g zaa*TWGP-vg?8*QW43{xuQxAf5&`=Gpz|08$ij{KDy zaw@I0>Ck}Q2Ofgo!-q{G>!gkyArXHkEQ1xjE|yAs3t0-qI!#YgRa+uZEhAFN#lWnP zd%@czJ_KgSgDU(e3>1p4Q2n85S7KS?RQ;|g91x4hiR=#6mz1S&6w@KeFA4)mY>nQ~ zEO5Qf+VB>9mRv3!?Z`**0kTQ_L(a^9G5Q(`vFREAN%Jv1OGx@DgruQo{sXd3{#G7Y z@Hf%f+<`Z#DlSXWApcf+i1$uSz5<0~sj9Fqn6l!@@t>cCDkVU=QY`Lbni@3%d*Ax;Pg(lJ5B#biOtjINwy0ZT1;^1A|g@(d%iqI#B6hmjb}Y zh2Pe!F$}cCMuA0l8SCu=%~1hz%#EAiQP`2#a?)yPQxx@<3xXN;jpS2M;7Nt6*C9}c zliiL8;sSU`uEqOCCO*Q7U9t%PYqn?!v#uZZ<#Jhzxx%AnZaCD1OjNF#KXM4pnkiRZ z$8_qifVKx!7^Jxj)aEFGT!Sb9sO9S-nX8gCKE#}8>O$XD^p3+*K2Vk<>fW&W3E^*F$*pLYthu>Ie_|*fbb{4Y%x{$I+)`IIgjN_W?GB)M3Uxtvfo*b)q>qO z5QJBN7)}$sw?@&1K`@_YG<|Rmn;1hy0=qLcL1US0a%qwm_XFE@stBhDinZ>v|)9uWvo2QFa%#rnalDb zq=Zm3%OVdQeC;e?=ycS9P6F50W#9!NbUb-z+8!`76ls%YGY>n_x@kojFije`fd$f> zUEr6tvE{5Saa2^ZiB$W!`n?4FC zLjJ7}6rs)~W~NB3S0PL5>P?Q8z1h*fNizLJynj#S@2#*2@HYs{I@BFzdf!!0u{~pFbPEaq;la5L5Cm}T>3e{x zX@B>DS_-_k;%e-bQOvD9FF9>%p(%8Tdp=@=M{*Aai4+D5%C)F|9*|I;4Rq zPPH_@lRzLoB)?Gy%g%tTec~df_v&bKCAw%(AxnJNBjVIHA4P;3{fbp25t^NyTLNU z{R-|YmISZTf64#g0XdiC9@5M7Y>NLlDct-IKgIr`9h4+P$FjZ~ zO|1(h2pL3s#vo!ViJ3iXLfv+)XvcUKOFDQ_;MSKpDimStie!dSebbD~PQN0?y*ux$ zyyaOsn`_U=Vq6^x6$8<0XTOaUHKmRBfv<{+coQ5Vgx-ws4c1`B$hQf3`K=LqXQaxd zCu5K*oMHKf15UMe2P5flcIo*Ss?8px<{Lg5@bVHwNztcXBNuyQgR zjh9%keX9n1g_%8TDjRilh0*TaC7idr&dx=1RaNgh0+Eic^T+F9rBOsZ`BpG{+|HXj|(v47Ykqk{QFpG z++%={U03(@i>dC^KpS$JGIE;lgAdthE4B?lwRsMi&BJXUNOm`OiIit7KuIc4O6k`wZ9~Smcp^Fyft!BP0zl)(Lhv#)2Fc9h3KI({;g6* z@T62bxXr$(W=y$;Eo=w|3hT=uXkuS@OHT~m$n@>!viZ+uZIL~ZaA;l6g2yuXj6c4P z2@YtHfVb)ySl^$q0{`wEHlyR2hFnSyGxW%=b8{JY?(pF?)9vk|Si1VEZG_W}q0^Q@ z^`)#yCEIblYiB`%5@ytCBZ8Qk8}B&eS)ka-?%q;_jKQgW9kyu9ZJ>FA0|z=?E!e(U zxem=%@4QtxB=oj6awwVvn_ldoenN_>AM!I=X)VG}2qVdupePGz%$Ay~$9Cl{HS3>w z8^VMTGpWo2@a^LOkOfCi*w)pNk}8_rd%+y$3M$~+`Vsh$&p}u04zO-LgBf-px(I&) z??M3(-Fk8+3#BxAAz2}8{MHY6Yn`5uEs&cg!g5?>!K9E!@He+U+|p7!{wRjQ;0=ja zqsk$E+B_n7FQ5Nb{E|%@!2yvRJFQ;{U(C;bBG?R2`lDZk{?*VpOKcV&ClklNiSbDx zZKMG&V!uzMP`?+kUsnx)H*5gqfYby0HLZr9j~JILzA#dXtn1_|h$_)r1c1ZVSh05N zXb~l@)sehh3yb!wWc8lF#6ty?Yb58~E5S%2NVzlTKWw9Vvj!Rz&xEQrxM#~+h|aoi zxCiXbiW%H+S69)Z+L`h6{Gaoh+RuhFfdQ@o->+w4Rg|91LkG+rU$=G(rel3WM)?O4 znmFMdE4T5ylg?U~MK%KY63o)7YLw@)sz699U4h>j;hPo5!+$}bQE%xVPjn(m5HQj1 zo3dOS=?uW@nd32gIka&Ds+vImyn}h* zuM;8tsTtjqIgI9xVSvDmp^B#FMa(??K>Q=(^%aQLZ$Ss*krvAaw*hX2 zq#Cmr6_Q;xk2zx8MD>r;ur62!=9H;+*GxGV4SSS~15wNp$AeM|84iW@93M;Xps%H` zNWk8(JXq2c5dPfG(CmG^G1CR4i#^Bp)=tjGup9mS`TK+`*QS7Eh^k}bGYBYjt8>dR zfD<_B&3xm%MX*|AnClk3oShR>zsZ{fzy>zoPSH3WavYh&uN(gfqE@KfZ$fpr^(ZB7 zz~m+I$~b*qfdrhTubTlTfHhJJSNN}jz;5LrS_{tS-&)5QU;S43Hd#>^11%q6H9>&TTEW(ewydftUeyH5lSe>~GfD8~mQP5m zB#DUVQ&X+u5!Xhdi+}Xa#72_$3RNQ~JXU-C zwCq#{&N+-)OLX5ukuAs%yuFOu`=sc-lS2I8th!%BzV2fyY) z@k1(o=wYu>2gnILa83kqTP6I_k8m0~81ZqcVXE<6TQ$J3rm8*!k{nsVD4HTFXg6eW zs+gz+uTIo!Ws@KtIPE|b41(%nE}eIr&itA(pi%bV`<+6{!=rMJa`)pB;xzuM*;yToP6j<;~X8!|~AajwhqG700vMpl!aT z)a`R%2H|7dqOqc6I_#}yEO%7HlyN&w*lQNG=Gk>KI#Y%Qor4PGo$L}wgyvjBE3Y3% zitnwQ$=JSOvenB_z+|4kGVwFrh@roYTFE5*%n5C0fMfJ&a6x^sc|uVPO{;_zZc97;W)_v5H)A`=Pwd=AF;WdCL+*ra?X#FD~m%>O5!(aou1f5XG!0pAA0Y9Ws zn(^mF6&NXuBpbp5EC?MBZmS^VH0$8*-P3?bTWe^>wG(;xPsBf?{y71TpY6aU-U60t z(!_k8?51@#Bx}5&jM$8JxH%=KR7l4X)|YqvfX7JI6ix|5g~^I88Tw1EmSFpu_5wpl z4jVdn$Z0KH3{6C|E#Y=xB4|P_8l}n`ol8mt+_=aU(eFi9lP)M~fYzkfPaatn8mf8c z{3nI&AGNhQ@$JA<>HNKA()lr0n*Ll=-Gg{xK zEhpxgsX|p~{(8G8tR0r5p=%={6VLRPB5;)XemUc^TYGeQmMP@U1fQWX?$Mm8_zN@g zL0~p}bl<*6a86x&;ruQeSU98BH&uYj&354g&+ZAb6<^C&Jn;wZG^J|qu5QdInT%O` z#O{A~0-_4daVwyvQgK-x`_N#!1e_cj(ohvg;Q>V5b!d;ISFTw#h-kfP02 zvAcS@+I3lj_7-YQ7(TDu&E&rQalz__>yont22|~a7=J|^AKbJe6bh!?K6s)6#IaSb zuZlHj2CqC-%}%fCw57t_D6~|?w(a0Ixff@giwRbqtz#+-_nx--qK{bA<)!V6b!+~d z-Xne@>jlNeOO01B_uz-!S6y?5Fz7nEb^W_o%48^my#M~Ox~1yqtJQj*dH9J(L-9|Z zoeRGL(X_1ZNYTXd811PX&n7}4!wT)Y@1T_)rmzCE} zmOcRfg2}cG=)GLjI)f8X`eF)StMd9}@@LR!Y^(d(`qin7zwpOkm$aTHAv!{}1^q+( zjr7x&O$z^-vqjP_KQwA%RyD0>ocfBBx9!cOGH!I;;qD;NAXwGifHqxa)Xt(Po~`B9 zW4ertKOvRL+|pYR1C-@uQACjSiX zZIWxlK~PBr5$*qGd&w1qjOFHou6qBp&wqY$1x1{$SOXQvltz5V5!$m#$Iqm=QC6n-O0?W@)c z;juhWA;t4RPm($r8?I4S{5Uf*>T$EqO%6cvIJ0&71o6Kd#p~L?X~T2~wc=Fi{9C{l z>WzBrU3rYG$T_EL_s;#>!`$+k?s|%BEgSQLQho>&$cEmtJYZ*E6%`&i;oQkQNC6*v z{{`o~0-$C_?Ge}$AAE3nqR1}3zPAis!Y)()s-}8RXCL^T;JR)TOzg`qD7v) zV%<^f5veUe&*e*qBMyMS>y~5%lO!d9JdsPs0g!-1_{t_LgUFz@UuZ_7wPO~REr}eH zB&HbywBkl`*7VtMk`|t4xvee4Ul)(cE;JQT|AYb@{9fZ)Ksk0UPYJ44%9XRZn{MBaKZD?oZ;YoIKZZ({fFSEv*K<4Mx_jO08Xl2hC zQr36s)yd{&8m{)$?puQ~1Ou}L8ZufLGpQoGAkt>W&N=6ro!vl~1gl(#O1mKWt#%Au zdd2E4%qp>G9y~DTMV^(;>c*{~*?Q8aIZ+w{hw<1$wJLx9DPVxH9Otx)v;Qb`oOA+u zKqv7{b$7&;WipjFK5e1KP>&erLs#1<(8^a5(x>Te_#QxTgy?9|r(hP4?%#q> z;%}mQ_~PBfOXv#Ib9yK4J08&;PwxEUrCQ=q$x6Pe7BkAw_AvIGFnx`%Qz^Z-hWWYc z13h4Omc$Z7MwtzwZ$E9uD~eG%G^`6A0{v;KV|A0=B-c3-q)qQR;m&rc_i`(G>~Usw z)uPz*cCG0-LzTPuz- zcGrO70?2X)VU7QkmCW+V8~eNSS{R%+HLc03J`(|Vd@&I{r{ewK1(76a^79=Sm)UmO z)~XY-m8Vv%I1_B#iQe%xZuIwInTnWj%HQ=t>jybSiGBa}YkhB@o9e>QU3alBgXLonJ68)LI1$qXdde0XB-W(S6^WO=`2xAu12_i;D!&uUtQgHKiEzAsgu;vmaZV( zSDw&PX1rtxuuo_oUA5gBnkQdPc;h>?<@qn0u)>e3WoDbtG zkHaeIIn#$gaCJ6?4VuY9CZ9p_96D#xVu< zH<8-c8{dCbn3?TVfL6E7t{s`|nV}XSL@bPD+1i6U0E7JD-$4Wu6#38oyD(uGC5cT# zC(*X^x1Cq%bj;PKOdOJQL;q`xzOX9_(0W?26Vf1?xh+6lepv?98~qNr`G>A%?7|!U zG*KI4eM^WjUyu~+%Y*0--9b9z3;qzxwwM9%t`D-yWM5ITij9_>O0D&#b*6u01__`e zv4dnSF%69)h`Y(8I=@&QNfuN&&W%n@HW8R)Bpk;5QYr?M^f^AfqNZOZK5bdqZ1qY4 zDUmjgAt<02c^e3U!9o<7p{<%2FT-dmtJO-qrEXgcKN7L6yB)*rxc&Z|r3G%0+4b*w z(dNStUwID2i^lC%NlCR&iwSvDwyUFPb+#|-IQe!&y>6@8(Reim4)^C3Sr6ZQR|$wj z&$#U!DJ^GXoQ+Lvn{5H6-}CTV_@gan+G6&|i2-mW&g7cIH$4ah%@0uJ%1d^^tb)1( zq{^uNiR&i?d3gxLuTuf{&asY;tX$r4Kq@pYX*u3qQGTcrDe2M&G?m-HZ6 z#{uwyeh258)7A$q=>u(dEm_ATELfVnVU3!bFX^N;cUJJ*_;A3A-sv4OA=lo-1PT&pTINz1mp&z#h-fM!T=i`dLZ6 z;o2}IXH4yid!wHs7mWALNpa%>zHhE$(P$h&l1WzH@mU=a5w9%)V(&a9iqpRzY1d>+ z$8b5i$-+rU0ik7_`CWqUHtDkx2n5mz;&KSx~gtfb>H)y?|k9?-j{waEiU|(`X=fP zf8FIyGT<}KGnyr*xgYX*&$XQHjd>SCXvIAs^zOi13$TTk01T`E@o}?j14<+L`5R*L zXvRmPpeRw?H{6{wHFu((r=rr*_+>GaBhftpyhiBg-USsph0C2+!(_%K3q(WixEy?{ z6q(LzW^$B#6)_~f;0q4fiT@U5Vfsc0AlbzMOj}S>3cE6%;+~v*TO^>p0nsgIKlq2z zHwpOl{P5zv;N(M|eCT{z0ge)|Qz$VmL=#unl03LStio%vT2>-g##|;OE7s1dRf@80 z<_!T;Ihk7jMI$Pp&56abqhwsgZ&=gD>=wr0dOEuLx})3bXT`+jzdH(Mhp95$hj)Hs`qOpA=I zP#B+1i7)6^%?W?`*o|v}4|KohG;!_{0rtZ zL4zVCz>mMwnxUD7=y+(08c=WK>$7?Vht-u<@&wMu-KT6vAN!Jyjm~ zR{}wjtz`@f99m>S52dk%Wi}ez&Bbv%33)r)#=S-^*A5Q5@3Q*LZuA~rv7hPvo;@zv zEyk8kZ~v>@Z+44mAcSq7f=XwQrmZ`k0#s*H4Z1MD!eFM@dpPTxdX&3rK)xIdL?Ku* zIMq`UNPzq+*d{Rb3VZ|T-_j=J^y4j!uqBk*4HbEai~l5nUgZKX-l)|PnhB^uH4Giy zS-G&k9a~lQP5H{}2?i&k%;mRfLzq94F?tRKc)(OpE+dWiH5-RbB`2ZDJ8Ot^=Jr`&I%JI^Re%{vw7d4Jv=tORBJJ5D4 zy|Zc1-?C+f2$*ZL=@<`{Ot>b=q^lO1exEfohF<|A54FI2B@=I0l60-xga zPK{OqO#~o(4;OIzrUZfzAe|bWelKQf77%G;5w#|CS!)f&0>`A^Q_XS)oAMeg<^|(n z{>lhCUi1>u_z?Rq|A(T2oK+|HLWZ;cZ)V}dH^U~ipOPBFZ?$rt5Wijm^@dN zK3(%A!-kYJO0g)f6ggZ4u&z%(b= zV=2z3b#TmV{#LmG+jn+z(?DV7;cS^Fz3KFDqR!+Mw-WDY9$#Vei{?0%R*=t*nh@8q zL93bWE7nQE`_rJZ-pOBLLBrvjlqp3`=$+G3#hU4FrCo=g5keU*!A`9tA4l=Gagh-r z;apS)iHYZ3ddzZcy<-$|5Y#gS5wLZFv2$Vou!dTX(|oyG&{01-15EKGC3qww^&kghic$b)QxHV;@k0Ut(7hiTeATZhJr z6&9AzIK%7wIc~Pvy|$DyjJ$KrfOHAw87r+dfiC#|L4e?tC5^$QvNWzJ7ZdUz!@6@f zN0<;>1rR6Zf0St0;lU5Yj`dolUF7xqUj$Z4;A-6ayLk|GK+KA)jJZN_8Rlb=AB^NH zfD@m!DONf*6BWt~oDv^7w+r!v6CHnzTxCMxbS~{!ER1Nz^zY6v?S;HQgwo?B6!`9f zvKi3@1dg?E(KgT@LSAV-!Y)`?s(PpW801f+?a?;kMo(`L{|cd z5(H^mB|-WUJ);?_9{s{jCJ;p529Q0r|Ebk;3T&colzPjigafU?On%WPvQ=H_26=?Y zM{4{J!5<)UaQ@sI&)@*_@QbTAo?Xv6D7T(ipUuRYC}Jd;uQaYCRuC0EOol;pp-9l~ z;|J01dwIxugYA1pIEX4NUAM3nMyU2)IBNfz=;W6~%9Y4}#Bvb?;R2VBt>nT3v0o?~ z+EpiYG0({m8qVp98yCK1_3+xjjZ{<^W3Am4v*n@e!tZgA4~cZr-BFh?W^MKlPJVev zRYn?ANn(uqG%!$w1#3j30b~`b?5K?lfZ|Ux4qcj96;S!zR^ib@A`ccsDM3!$`|>X2 zQdz`RXSSWov}Ip$wzuvs%Yx|*hY!QurQtB$YxJa{|LBI8n+dZDI=gy2Gb0O0uWRi! z=3HBA#E6~eo>LQ(FPgr~5AEnFIAEH({d3YVcXC+MN4^y6LVlIY#Kh13-{mP z$tGF9{pR^cE^*CLDL(BZ$2p$$l3~yuXEsJ4bo7pqGeUbz*|TcXEX^o zZ{ErQejRCmIF{QJ%0gRKQN24ZnlOYw*Kgj`XY!MccT9?8!-m)`lzTeOqNpy|5s>}; zx}VcaXRO`3X(#OcvtUPPcf69m3WLFtVM`h~T`=mP^z4nv)xa%&q?UCv8@JkF1E3bH z&dns6QedBGVWp~ZFv77Rzj=*jdxp7?!Oz7?rF65jd<7PMF}mFI`JkFY5GHAlo&&Y zhKOId9Hl6`zu@_?og1)kf?%223o=4>*oAQ}QF7!pXF$Np2<&iV9V)XFuXB4dK6`Dm zoBi1kb81rZRFfg~b-)sP5QfIwng$G(fC`Bgg1SF{!|^GS39o#U;xAm3*k0v~1?0!z zxv+OG#)R^Yne*&Y66GRSaC29@wv+m_8qTCQBPRCRDsBC3^MRE(_mw^ko2BKSTE|f9 zFae@dLj4`b6ZQ%;i<)Q9Df>cZYr<&k;i~YC@9CDKcZ?LfG62G_Ea$TPYom7VvkNiQ zAGJ3YE>ZaHC5^9gPj(Ahd*df>@3Xa$M@Mz}&qi4lO5+MMdbllUVCHV(uI^H_+~u(* zK(-!3P~o0cz3sMZI4h=l=Nrq4yts0DKBXtd3GrpnT-T;|v>WLAJzeLol1Ced#x!+^ zd$O<44S?f@ZB(C^nf0S_oR2bjFF1LJ+1Ge75%>~!ya?nYjoJ1ca1E$X+TIP)C5#7x9PqB7-C^uiDve>QH zuvcau%)So{N3^y>zil=;c;(7q@1&6cuES3H*P_&aq>y!@BXxnh!puO3oIGcFu>#au z52IixRm?>o-DzN;ijf3!0g^t@m^Z!=vq?+x=N6*zFHAwAsXX~ElIJMTYXM>Lb7cD68AnjNdecHcE=P-h=7Yl$zn7K-pTHQRU@4`0PE>#; zI(C~b*eVJHt0OJD0YE*FY3p9Dj~OxJhTC*dx`La3i&E=ytSm%1(L0VivxwxUpt2Ld0i6CuT% zLyPK2%=AjwA(i$@=trcMnEu3mo`X_)H4ES&D| zkT1r$1&v?Wo$lb_BGNV|JhMN?4<;(_?t2>3;GM+D6#@v^>{y_Oj+=8hG#&vuhss8$ z=#CzZ$i*iUpp8po=UfoQx7_VnU^lCb=U1(Z;?>=@w{kCA3X-gW6l9%psbziYYHzS2O zlNrkWApDI{L<_HcRBn7*72>VywXDDTY!rl2-}^)K*b1n%U5sFrQR$Jk?6Uaek`+C{*rRA zef^pRn1xP~kz;2^`TW?)9j2T`L$WK|xX}dt1FX}3&{>X-MHY@-?f7MQq z9a=lC1*V&crJvvG1~mSyk`EjJcpxUFskXuac8?4Jl+Bd9=>nX-8FeHN#sM|ySPZ|g zmo4|}k#ndhh5NFx`M$X8$gP0cCnwJH`JCa9-K*ORj%ga&xu`LB;M}D%U$hoD4m|83 zXk{b!pXuc^cQCd*qox zvM`Jx8*p)J2%{N>F?0MHh(_(9wHOfr3+ts%&@!RVnV`}BH|o+au|XhdbXlsT*Ih^( z*p*?!tVY83v>*_iVTH2>0AU0xWpProYJbLvt~LdJCn#1JW$2C$S!!QJoPJgdvT8Dp zL0cN;26eDPNc!vVM9C~l09(ZRQj&VEmd0$;S3;8>3&N>rzrk#Hp8p+Aq{8v-6-?Bc z#*qsk%0@{iWYdExvz4!5A3NT<4wMlp8@Fb%i#KM>7(?s}&otHgndO2l%ehs1B5%cc ziYMrU`%J%mpcnOQ&fd7y%dXlZpYMxWv}vzM-z>H7ZwIm>lW4SMpg)O_YNaneIPUAJ^)u&VTRSVtNuG(82g8#b4P zWlLASRTidBV;sUC9t0<=PRB}eJgtDSQ7+lbX=ub0Ag!U$CA#e*E3{sGlRmKr-wjm!_E#}!6}3k zn#>j--kPp!YCiPKsUxS4XaG^~{BMhd;qbcQ2(eK1Chl_@)ZuvYnNb7m#Sy5Nd7;|a zi5Lu-izG_wkfuLJ8n08qvMAf#-DtO1D&E*%rrFWM+>l^#gEX1?9jexsqWXzt_84{g zr(z)kS~ciGluaubEW5HtUWB&AR+T8StaffO5Z|ok-j?xK*95Q?D?)X#$^WKeIUUE& zo^PT8<(#}LBU)k+st!Xvld-G^)nXBK4m(0M4+SL&{MADN<{U~tK||3ZTc%*J7vlRN z!2(8|eK8pi+`Mky@K#V;(sYYAUjrZk$frM!p^K0sgtaa(8G7^d?nkLiprr#E~OzMIw{ z5dWi$H`%IrQ!7Yu!ECk(#W}h%%sHc3Lzic6^WarZe71_rA;6Ye>q*zXdFIn{9{qZ1 zCNy(s0+iVW>E(YPxH{jvyEhco3wu5$4|9J*;ogn&hrmjYa>Hwgs4IRc0?JI(0}eIq z={K7>*DiEne}P>^6Z}eN2qyZW_I20b4Crnh^5c+tZ4tKd8Qt$**jGhN=NV>itvxU$ z44F5EBaqg^Uq6Ss!(}XyzQVK4$a%$#lOK!(F>o~F)=MTjRrBK8rFDIVGW;*JK=dm) z-v#<9jI*JZo+Wxl#2iD}0j0%iG=QW=XWkG^?v1GQ6?7<%^bZ_5h*}pr-&@(iqr)Xf za&$#Qm;runXrC*XhYa6Fhoj)Lkr-g0=09X-`v_1S$-t64?cdcJj`qDe?S>o1yT@!YxJbn&peq43F` zr`{glJ!3KoHa7j@?^p%jsV?cRXhuLb4IA7t2Vx0plio}K=0lJ>?K=Z`S+MIug4zS^ zDGA_Vy@RQ40y8X|$pb_}J|>bE*y)bE?^Ee%`?i?;AXOCncvGH8Y;4prA%;p2H8a!5 z24N2UJvG=pnd5(3wXNJ)nOgI>;+i_?F+;rM7RAclJ$nyNjaB!aqn#3b@j zbf755GX#!!>^2!QB=1{>VA{y~WK#q1v6kkLuqM$Pf5^*jtrvvXKnKic z_V5sFC5xGIkg{&sjk$XP`*sib8v^XxyXmw&R+D8{>3w5s$(Ez#T=AgUg=r<#=~iu? z$CR8HTbJVg@sGXe6VN-3P90ce zs`-99Q^Fa!II4m+lXiH)BPQ0D1zrv(GnzJFUT6oMfeY3ys5bLr;{g{TxrdHQItH0- zFIg%mPW@ZQz_e(U_27~N8QIJ2zSbwiwT$i238IKL0GD0Eg{5Q5s3 zaeU^6*i<@ref#>OmliPx*S#hdB>m8QZ2pM5k0A6jvHJgn0Gkcmeh+`3m&nTR)u=R> zBsOV4O}IJhh}v*xs6%yCb57js(j2Rf^Z8o>?YL|NUh09iw_^$@?Xa;L3~n-(ueC5O z2ijabwtr3~x*AW{hPh~ZHCtRPFMY?Woz~3p(vN4~)A9{$-@`+PumEIbEvMWR#()8_ z0|IYj(~7Jt&EJ#-_Uumtlg2{wh1f55Ejvfov!2zyYt2Z9?^e6FpzodO+_k0;8TWfz z1(=Uv*0XV&?fd57V0B(uE_7V5Kttk8GWkild2kPwLQ~1!`!J$v!UjQXE%6|usg887 zaU8`o3VoF#usJlxfyB};;ewSs}y`5X%JKaprEY*(p4-`9tDo{kX}$; z*`c9%{Yf8{RvLE|J;9?wd$azM6fqc`G3@N2MMGn*5XF103x1YU?T&ftkWuZLIkwTs z8NnZAyI1xIJOp-V_xiqUX2g(e+i^7wJRViB%|IC*hWW8NG)o9vdx8FJ&KhdS7>xKnJ!Lrhc1#W^TX0VTQw&|=P z(3Ph9UuqgfI^~5&GX{bevBjBpXqwNd>)z7w(iB2hLQiG-sOgAPH_Wa}t1+!J zyS2lcB8TY_j-^gdg48}(T87V}--}a#`z3@V!GoxisSdEo>6x%rB}Sd(^B`+*yX%If zLspsVw?U{cSz3IoE9#^f;>*xrauyA-sUIoSXIL=O@ z@|21p{xVJ8(A*fBe1Db$r{rB1ExvVwp>_{PS=(7&>=I-kakvbx zS65(Q4n#aiu>(+;O$}rWsBBmIYJ_aA^+Ym(1Q3LwU^e<@R3)2?u>-3lQq)?fDMo({ISdlco~N-sKPI*Jq$m zBPBbVdEKvw0Q~?TMSH<6KNQ8+Z75{2_PIx1`#J;|+5HDFAhK#G#i7C$0Mw?WyNr%<9@gluV{vbF#i z{bXL$*QxLv*!zG#YkH8pZi(<)t?M7DB=46i4rnPr>k8B#W2R^z%d6ac*$Ah_$L~ot zF3_cA)7i1mjm&~)%95xR9R3ScK`k_#cV0P~1F=al8QOk?`zf69vL@=ELjq~Zq5XH-Ld*gUs08(Uf<0D?<&pndX^E?&n{UW&)-W)K3 z=)vax&m(^OCUWo1K)YWJtoyU6FHg55k}c|r5vqCYKBtSBZphQ4D!TS`fJR56mMWWIVrf(RpMW*}mp{EP^VE6sv6v_0>I$+=beU${J! zlO4sMUo;)Gk87YG8j6Ww9_2oq#{i^~S>EFc8NYo=ph4BkjqR<0Aj;DpF>)HFdBf4P z&=#8coE-qtRd5~*Hr4Lc9&nALg@YN{9G zWPbq6z@Mk~faHiaozsfSY~Vh3XE&=YX&etbpi7RyP3j6@5^x4IvkGu% z)<&R-jG(~6$nHgqejJo+M`P@NjQ>L|3LKwg!Gc8Q)y7pwe00svq2wirR00l!rzoSN zUk5()1;q4uh285zHSGEnfZchpS8Ox3)bsC%0!y8O^QU&?TqIAg!ptp`2R4!2!UG;FN%& zxsK7P)jE2rFx#8SAZIKQCNVd1K)De1L_e4sPiZ7HgHZ|F-H}LVCeT9+z})t*lJH3jF!}SC zd=$rXpe4{@IrELMI!w#R#m5h=+Bsos!MuD912XRXi~)+a7|dv*GX%9bT60Gi>}A(C z3+uNp63yI2$Hk>oWANW-`1UKLn8Pup8aHX-CZw@Bj{>b^WrkN{f%Ya+WZEU}NE~%S z`NTvrek_9u9V0&7A7g+=#1SCCBSpY}@j>n^h|MkQ>X6hRSb6ruSOB_|_7OtP?1JlA z2tx{(UMpQ+ibbL8dj?~ixr;It&D3tv^=%%^&2D+>;nQVdYea8-`jG8ON+D0ra{7-U zCMmK%JvAoSL`A2>;6knZ?SC^0jQ*#UgLH9c4v^+VfBL!fo2W|x?2GpF=~tb)_Mdv& zs3MHMfhrgXD6^p>2Xx+DGz1V)&w-i&U2TcmB^wVAP?US zg~ngN+<6j|jTB+@qgS^R?oUec-jX4S-X<^VnFu8(KR%p|)@}$nW5Jr7Hw5ur?8+|B zMOrP0qV!fujKiO16-1nPcF=@W9@Q^KKmgPb{XrnNrA8n`eF6qfH7ZQ-x>0y80R(F{ zTwwdPB>~zloj1pP;SHuDedm8QA2gVYPJF|)m{sU9fsLz=5wfYMfMGDdGLAQ{2M#4% zvI1tbWKjY0lpI77M7RX_gd%L_N8q*!n{%goP&sIJ^67G=bzH`$I@`BT+q5;f2a5Ti z?qQZ`XeQ*CllwIR&EX{KzOax}i%WA+QYj!btrO6i(cCuNoRbK6+~qofd>Z*3jpQ0V zU>54Tl{i}CCM^dD@{&RU$+EkT>qgcEeC2zI+ByARI|6~qI6!6;gG*|mYS_7x{0B*6 zTddc)dvoIS_pK7&7wfcC`yBw(De(~)-Z{|vYgq`QK17Q}7`Xs6o%}srY^s*=_k?^O zcq#tnoNDx-viBQ=aD9IQO^go}97gGbBWfkCW`0HF30bv<{`wU!x6EC_=3`!tU-L^>k4t!J1vYW}w-Z zoLw^f%+AC1JCxy%fw%>nyH?-UwW{tIBOuW86-CgN8OAbAz!Z->Zg_($^4X=aS2N`0 z55&T#Abqkwad;yh*@(j@X)I};?7)e3I1)nlw>yX0 zBaPVw)vx?VHVd+)Z9nv{?g2y4J7;Uat;nn8xLKp_RL~Z@00O%dl-+`5F*J4RvC|pZ zs?x4dBWR&^XSnE?KY$~jTM24S&oa+}n6MRC(EXmJWkQ6II0)b^CdNMt%wKVNHiTeR zw6h}ep9jnwBk7sj)NGn1IsEDWC596LCMEpFH<0jYHXxI0Qa#@%(~*2eEWU)tyMj^`yuWbNV;-d zuK*F-$~^F@lea>GBI)mkFBoI6iuc4Z$YCK(a`YcH+~O#eSq!;1>BLJLG3Z9ccHI7Jum$#&L@<01;S= zVVgyME#r8#P>*_P<~LqF<-k`r0}AFLS~cKPoH_maR+d4%2vW>+`GFqCuhb#Tp!P<_ zPYnjRJrIEcj^_DMFk-ckHq+lj7{{h1?tx4Qun3p5PXDWL^!@h3pl6WC*CACl{h3!k z`M+xvxrZoa-8E1JZlxd305RJtDnYOXO+5@I8EC0X1>|uczIU<8TJka>->g~U8cbd) zK6hOeJaUNU9wY$F+)GZ24S=Iv}u%`43qh{CoM0^)3bcOVjA>f`~f#j4u zPHmh1m|7Wsb?6BMfPRYQTtT$DN{-G4MYfWQv$~dV^bUbUr=+6_~-tS znh7OS1=A1c1Eq+YtOhP{W0F3;YTdGeVfJ;`=XDiDxQX$`Pl(oglP=Y(T^kYr)4`u< zVU=_-c>&3RpH)ibH2*wG?EYGBUUN%f))&m7#PZ9FmrG=9qPgtllEueo@1BVK4#z)w zg$dHA^(8_UjzPmCH#Mc}^kiWv$<-t-L|(ymPTcOk38$MUE^BhrmC8Ax(s5ybhpv_( zcw~i9#*j5fuMCV&sO07?l3Ok;+q-%Nnj>JN$4IS}Fgv0-$q!Mha2Q9!``f-eCnI5Y zL&M6M!~n++))eOewT!0YpxsECd$h6?tRo!`#}zCip{$q9hZHH)YCq2|H{Qq04kkhy z)%A9SJ@hkRG$=hZ8JlTvg0I9S)NXM=%{<11uui=GYTobHYE;bhtm^718bY{rUWPkr zB)fI<|dFtp_7iB?{l`0{2?Zfxtb5E8Nj@FHQUqJG-)CK13x#| ziGeDn?I-Z-0#$r7sNjMGvLj2!y?9*i;?&)htak7~BPbX(#>WY`Z^ zoqawCJv5spDO9F&e=PeBiWIki63vGqg(-0U;?S?~{IV`MSxqu0%MvYDq67-3a)3lt zLs#rfeI@)1A4TwiI856;#SkM?EiD*{+y%Nqh>X?v{Vqu$!D$Ig8 z1%%bIE-~^bPLX^>5b?U&<*p~i8-$wtno}<2HPVR#%=;IVhj&lkRYA{BaSX%d- z^}L&Grj*cX#szY z8PM`V!gVQmXheY68-r**RY6x)YR1GG1f1@gPSfh$9t4_UaoVnhI<%!1f^rUYKH$LW ziL%o_g}9H{y~>Biw3yig)w?f5YvVCR9g?Tl>19K;M^g`$$wR`74-Xvys&!Y&!i0%X z=&khCb28^FnOCt9@<0@@SIL8#K2H2HSR?3B402X}+7>xYgWb#3*Vuxde=v4Ru$-HV z0NG2)<F8ldpV)kcS?UYrdWvIKU?}g_eur99UapC%6Kz zY{u&JyU0|WB%@$nYc$ZixluxPoqy>{Co+tzU+r7HyR#FRs8kD30Y?x$3+X&#rEL)S zx79cefBtHIjG4jgj3GO?=;~9mIu(pY=SSdFP~b=*YxJ75N=j{s83hh6`f7Tx(NAUu z2|tug9VC5A^9*ghI%~w#L}^gRMz!b>%XH`2vy&rpKAAq#G~ZWsaFY{X13Pz_EMa6aVvp3x+oWN=bElpsCN;k=HyncfmVit2;vwj z!aNAovl%U8dTP&J%e!Yv}agLVWv!seL{B(EkoeCrekL*4faJVFkrhTeSjyiUHyxhGO_kXvH%LW+EP7DU<>9rB)Ak2;QKQNe>O{XkX#7pSTo z--#18u)KBW#W8A%BMT?Mn)#J?Kb|9@VT5n{HutH)s!~wSKo72{=cR8|B-twu^%P)N zn^<1@rkEr)?WAhX;YUFTmR!^7MLeW}qMb4Rpr4_D{et~Wt5Y}5c^>kMtru2Cj)JaO zE<*1t(84Iy64~B_PAx>}LlLY~tpXRQa68aa(~X`HnwKbT-Qc#M_G|%vdPUpKhyk8$ z`@`v$%sd)Pc~6T7P7M?>;Xe|wiUpfDs-GSaobFDk1FpmCrtW-_rlm4~>2qU%mJ^** z{bW%4TYBm{+x8dMTJI)AxWt72bkW z5}nsj!$i37g+&SrDur?nX3j*QEd=sW2aLd(jJgEXN-#ZuHAWxpv+QzTuByXE%>2NZ zsgF`kOWi8F7ymSy?on1B+FS_V}FAiL7?`ClScwa?r< zKa8uYdHzXAWumChbst9=tZ+;0V3v0gaLzRJyap_$uS+sTiA>l;bZlCGS@X5$qj=vo z&x%l5TeJtFSCdJk=m3%Ah7ZQkjgO)OO_1K$miInj4fOV}y(^CI`#&9O#*2q~0Jnlb ziXDMb@`M z>D$=;!gcWTufntg1D^ZFI;?$?`R4RX_@6thnkJCcV{N+ zdRAd-!qmpHK)OpB`gUM{0iR*Njy|hwmx?hcIzjn8AF-%Iz2C+d?K7OM(&&ENd>24D zvTp!GwktSp`ill8)ANgMKM!rmtk`A zs`g0JtFsz#gE?!4&nGfWRPxWR0eG??@T!&)fE$_fDmMyVQ3`Wdt4zVI@YA4;D))7Q zkF^3T`O3$l`0VXq{|Lsn#biwnrmOs{zwjuS6+c5%CkPT$k`SurM9~%yY4Kp}Dsf)~ zY7KF8L&mORfc}?=6gJw>XVC33?+zL0IW$qC-;MbpFTVdth4U53yJQb>b2Zi6bXKCt z#YLOl3>70id!=Lh!IHg>=2X@$x1NS-?ZKmQRn=eK0+mQ9UuZ2!LC&YIhMkFoRrEB4j4c0%RSn<)erI_uyyzK@=7jJ2M z7i|0|ZNH}$PHhgZ7-a&XL?K|Ots2)_gUrqo0!5}LVn#!7YSBgQO<4S>9IrY+6(WJmfA zR(D{5{2c2B)@3_NcZmA9dLWwMcfZdD9uMxLdHpX!# z%k5sqwl7@iIl38FDENnUsWM6Exn{@lUjE&XSNBZR@5uM5)W8Aqcctwy*;C}78kRgtp?AHN_LuU$2 z@+F)jnVAjSCd!`UxyP@-)Vu1Eh4W(!E;J6#w7V`Ram}%^ncT_OsyKpnQr)@>2>u6Q z`h8$XIUj7^&j<|l&TB+Eo9Lo_Y>`Cg7{YbS4Bf6Ax)y#qP{Xr#6MTc7oJU*`dI&;X z8bznqbgQF9SA+%$Zb7!Qgy0xRUs=!%Yx{aTMrdB{URb8_gbMrJDf}GsY0F``uZPCd zN1^oo>$X3qzBw&AHjiey^lAJ{&1cpz;`w$whLO;Oi)D1JN@LRvwrZEu7MUHld@8dh z8W2zmg9oRN>7&!dURvdb(_)R5_dTUtieCiVYxampgJpa}T3Ucn)9(PyN2^ss`|NW! z4fiR?)Dch)0q>ZRk~a~nP^1G7LZRYllCyEl(3T*mw6X!DgwC4&oe$OI z`pRO6^v~IkrpZSl0OZG2wOg6KN>Q^~P=#eOAWqR!)O>QJN8Bkddv2w~%Tm}g1XMUM zmFhqzJ>x$Vg8|0oH%1CU!N22X^63Z&j}H?JeL&cQLx%x7bZi85b^yLTj7>VZJ*z+) zgIXF90xv;pkj#UYlp@2dNuSC=+%JJfF#~5@_{C2~@s|B4V-(KVMaWs@BqLxHa``br zo_R)yYV96aLf!{#I`U!T;=Nr8COq83N6jZgP-l-_TQJbWKMo3S0zds(GY=7x?hYM)*c8h4 zCi+1%*NZTlH35633}q)-Czwv>f2!@Pty+#k-+FjBUqW|5A5UGq~?+oxZMPsQ`~PNDS)tqHPb*BB6_ zW}lFLCVGSXmAU-pEu$-S2_QXE!?Fud#ccc{!CW3ky20K=3Om;>AJ-a(GnQ=iYzRR9 zs5?h%BKPHNrfW$d#$}=yFKYk?iq#!E z<-z3cIM>{%^qE0VPnH9(+h$c)&CR=VJhbiSu~hBDaXg%}i@JW_hpjgZ7~0T71GYH! zPQGvr^|G%a9tYHVw5%CnXHPp(!R{DToFG3Ay{2p>pKbj6fM)f6t{qu`H2Q5w zU_tJtQjp$COVOb0F2HXp(6gp^g8==Zr{OcHw*0T!{?f9r86e^-V%k?rsbEa0+oOd6 zYFw;UIYS^aTLi%P;+#$aH5RJkPA!(X&n84sZu-+P=8IvKv|>QXL?~|y95riqwye1M z#Wd=r#)%6jlv5+!R^~Rh{7=6c+oTz3z;+QL@ISCzs-wq~yPE}Bc~TVmp#*Guno;c0 z^`0d$$Qxz9TI$N1>KJBB!OHJtRbeaF_;2W1>n2%N$G{1ItQXRzfdJMgjGS@go+0ST z2$&rjSkM9bm)!VZzbFe(s4bi%qCM0D83-rrA>cf!RyAH1i`N7DShM6>HjC04*yw&P zYgsP8IOn;LKLNYak0Kci(b^<;G+IWad8*PbOm9^T$VECnx?0r7l0XL`s=SwbNAv`3 zfjV4I;ha}E**j}fMdBUR+<2CE9v`At+Bq&EGWz86`S^~Ts+M6F zD}&&=S=RKjx1ybZaS&78dLAyN-E`P6jRPpx%@4p?YG7uDMzL>c`wK+p@mdQ%$5x!0 zXKJ7@97YsA>r7jw4L8PI;i*S@YTIe*g`xy~8w&;)k$m%E+NfyieWlHUbVIy~w`DN{ zd@bEOh&q@@PWJ*0x9LNqVX2)qeJg%HT0Ca2VdtPA%(fl=u9+Q#4^2OV#WAT4YxAO( z!%jEMlMskBOY1UzZ0+DzD*%b zD4eH0+5;Y%w=O;)sob7aKlL)=L^*T`NTvg6mMBdkPJWm`Y{03S_FzRW%N}HK_5jf1 zPz=?kO}dTyMT#f{}uXr5yx*z!8%f7YTbFdPx_vVJru zwB?}Na^ZmpV_yfa0`k!97>IR(Kjp=L1uN%%$H{qqG9QYo6Z5MX%nxN`$W8UnC*+a4 z+Ka0SIn;tb@yW!|K&^ESiW{4W3=gI0XyeUp9ML{CxcEn z>Sf^Vfu~=>JpD5y4g)n&&Fi;gs0Ls$boJ}R1#xxH3dhCb>gS$~c!!77cSYi&RePXt zT6B?@(iuYuXQZJe-^TneU@U?e%NYI!W0v1t&gRv~iOS%ewHh}l$)=u&lID)=2{Jk0 z;5z!pF}LG~i?CB_;AsCbxX-B0-BqY=JOKr%&$oT6?cdsd)AsUdXTht~H<}xU`O>Bf zpP~OgJqV%ufNmb@?N8r5rxo>>SH||jmEaJ-`*15-kuvOlF0=r$45!tdX<;sX3(ZyO zo{w5rAWWvcnp5l4t$I1SjT4M`nj)7b85~yOe0BEsoG z*9!{`Uh{lTDh?9vsc3P`O(<%epT0xX4WQ%+^fB4!i*Gpzk-bZVC9BtR=>4QQPw zFam7=V<;;UP_>AHRBZe$$_=VGsucf(RLwNNYpy$4DfuO>(&1Q1{xi|N8t3;)Vt?b0 zU7ETBGf5yGD*SzpS8M$5ppv7uFGuuk)D^P(6CVz9`?iPB>8SNWRU+P4@6sSzrRTy4 z;F;g|L0+_LXbPL*+n*}PdiJbMJ)OkLWRKhm=K17&5KZZ1ZxLfzQei_TTLK9^G7S9n z_QA4<T)7{^5*ublYk+0FKj!CdMqX$aBs$P~gv%X+lZL1jYbyp)~-)cv+f6|FZh*)(doaNX2& znejF~FpXXqR*PbzX*4sNCDM!84xwK%!>3t|C8VY%+OKS`u z)zo_TWrIq50avC2#Rn;v_ooyXChO-AesfN?6d5d6f@r#*!i*<~F%$?l)^w6!JzY zO{kF32+|4oxy?fjSqVWrsmkIq3GJsuRW=N$LRiJ|K^=Id`QKXWzXe4?vAQ0DlLX)k zXQUf^iV&2LNTJI8T`$B7tr1h=rLKn(EO9Qr4T2n-O!>QcVJW^)~saugDig5rR2ASe^D#m+s})j=YEWMRYU4}cR#OmZHdYC@Ys%+fFb5m zOx>w^g6AGFz?m*3KaOoujmSjR_uZfa6D-S?TD+XUX2%N119T7)Kw8-^>PD@oT}$&t4uf^TT$H(@R%;gM%ZVzL=5sb#>maoAuQYfTZdy-OWzInWX9 zt2>hY4dl>nX&>~SA(lA(P9w@Vg#k=pF%B#*n^#J~Yxo*@E8tQj{eQvKKx4Oc<5=F- z-0-rSP4K_V^Dv_0K-CCDg*>Sk?}Se488w|-ut2Uauh>TCqHeX2a1geEd`>Ldii+Js z0Zjnpb@#_kwdUDgwpQ}oZdXBNrM7+JLK1orN|I8B1fE(gXh7dNkiHhkMq+h=aVM0y z_HzLK^pVpS(awjEG!@|FRLm4}3xvcf)RTw@lGsP)wh)3-6_D3TaXau{U9n-utF|by z+>`;kmjKM3;mrK)b%;5}RQ(fFdUW6PV($9~0^CL`!{#I|!uvL0VadUVI2?KKJW<8wk47TO471EETA33`*X1B`htN0pv0o$HPAn197 z2ME&AB!=yPG5SXQYwi|W5o%5V0HMjGk(icoh1KHm(XA-$lzOH_Ka`eD@#nJr#v(hq zIa?`7y6vd%X#Ei{l=#l2@LRgi8GG6xv-_}A=f2t_sU33i04zVNp{YdCw|*D8kZ znZ7FMLHB1!1koz)LIee#n7oDL)}7hm;jpPM$I6rv%Z#!Sf@G41T82J__PIAy@T@u@ zEu-B)JbByq<;ab+aEi7~@&Q8Jh`ezLrh8C{6iQD)Kz0dNK{}vn4kSW8*sU%{v738@ zNTZF12=^QpH7)?>iy3h@R;KS!^EoRXmQdj`|Y(DBT4uLJ9`qwCdb zgsAbR$dvt6d-9G4If;GTknS8i-;*qIcs~ZqxZ<%Lg&4E-;72}qL7+>6?S|6*`Z_9~ zl^AS5aj0lfeXXa$yT&(e5RdYHA zu#Pj*xA@FWJ&6kX0Y&CSQH_n___jlb7i$WJlr>k~mw;x>16lw1^7NG!#14(+Vm@cC z#Aqi1a=Zn`sm_QH}P74x~X%Y&h%x&oII zjotzNk+AXS#`|N#L2k}6-20Q98k8qit?KFqHj46YI4#4!t^IPIDMS}n4cI9lPc#8V> z<^`!AW-rs4C-s=D*q$yaAn|me@BuR)hlTma44osUI3k|^3K+gWvjAMf8n}u}gDclr zitn2F)l=<(s=5luHZ=XGa1+U3-vopOB**XVSWp>*LIHyZuhp_9=Ye!i2T~&|{)b*L zM1;Vgjg`TPhMFY?>0bIu6XhdJf`(^A&9y+krCM^SAS3PyZX6pIz`+%bPSP6-d=9f+W|(jS^q$jb z6FmnyMnBMwyjhbuLbRslgOVg|L=F?AQ9Eh!@z^juJ_b4%cN$6)K z^m`Uf{{o|Fg4*|+hd$W_<||ILUC8H%x$5MuJ&*k&^e04hoF8qMwcPYu4eoN!97HDM zqex5It>+?IO>jnrhBs_N?HSZ@$dfA=coRK0JMX*=;~jlfR2oqG;gy271Rzb`AbR^^ zbNaXkwidG5^3dnq;c)y{Vg+)9#B%m7!>oOFUzdPiE@K44i6MjNnw+0;!GnX(k+S30 z4{K8U8nm1n3l#U(<%w+iR(|_>Vi^F{e2BOsh+rVdpjsV+#f+xaI!fbtuxBAN7eMpT zUi};lLJc~P-vHhn#HKf0j`=DDwrHQcD%7N+q@Ot9(>0ab#=&v)4gSR@$I%U76=oVE z&6tKQ9lgPGHcJ}j&+a4K?erf@fTQM~pi4KqOmva3Tj(JH>tNTjBci!xtpkG67q;Hi zia}0WU3~1@^@P895OjRS$simaom`!85OF!MvbQke@Q_{j8Bty5g6HdJMkvnl5We2I z_V^$OWd0rJ=rgXXI(shlEFWp>VQzu1QrvY`$xo{9f}R}O`FmHb9L=JvR{+tzCHEG_ zs-2q$27|zHiy|*@zwmKxFY5#=zh_9bjr#PBVpSL8wJ6_Pymc1;Z_qVspSp1!l!FYt z9>}_8=>4)Zdd`Ib0179D68V8edLBC1@dav-oT-u{4YV0_Ac^nTDy zuJ6tm-lI1}vXQghTd>w5FnXfSW>s%ToT8dJsBSM`MR*pa()0durJ3z0c z2H!mF*@kEy7`SaT>>p=Q=(Pws&uxx@or4QJl&#T zc zFUKv3Gph$o#8#j&Uk$pT={qf37K6nuy0Xhmp8vm$M|GIhQ$!?@2oKPDLR=K32Y zP+x$r;3XZ}RV>u&RJ$4)JI?lHz z4xs?bBeaTdJCVGStz+GUu!g~igFk5~tH8!N%?Zu91~5E(%1 zr6muXFR90wjkYE`qh?*A<#N*MMDug7e)UdTx1L=R@HWgW!6L0F>`cK(*Tv*-Z?8pA z25f)yBNQV6LdC}WQTK&fDQ0xokuf;5X|TOe)?@@s?Xs+U_Rxw|=k@iEBu7R!chZ0y#ptUb6@n!Zj5b5gv^@v`AI9{Q~eD}?dI&$>uo<#SL`G|(KDK%&0~ChHbyi1yk7Ge_%jZp%iWq$h_FV)% zRW7{i4O!F4KK^<$i~e`+BX_t)6x>D6hC1p^-^0AdV)%>QP%pZ(rAbe3{3%&4yJ6Jf z!xPM&4D5EMi;?b&^iXKtTzaoLJdcN2q@>Ji(EWu&g4X@nXEj@Jbg|%VaOv!BpnIcL zjpeV-0^WhKV?70My+}B#vum3Zgo+_?Hu4Fi0lMRLcXW@Iw`m-io<`_|>OW4BHZ(;! z;UU*p-%;+6^5>yc(>N-Ij@ApE(wO(&tk@txReE;K$C!|Z=|f=CD}5){nU_(dmN6lh zTyY^H+`r44;~3-PqkdG#QT8wP_BWxePrl{p%OguJkDkaXO0KJGxHK8pY;%0op5Of# z)m8%x<78ws!I3iB9(!D{N>MV6UwAriJ$4dOC&jzZcQH&|Y%GJqeea4cxKmRs&hPU5 zE?!;7eLmT$s+#+*cZ2rMf9^?hsn_wrYaut&eedh29(ozI_AjGmSZ*7_I&PxM+}Ia% z6VSp%b2DI#=#8arhu(JThSKnv7SqxK0m3_aL352mx)L~<>Gf#k(9Z!L3UHt_xxosC z^hyv~;FuqYC{_yBH}QVyXVB=5*#@lO*Gd-aBy)1aUDhHAZ`?-Au+N5up5-l1%*OYj z@xdxuyl^nEc@R?YT3rXn!#^j2i8dvL9*ctbIUssggMm;`8sA@ButGyA4;2ejhv#`7 ze!q-^8kslTHFo*d!3uGghk`e8@QN*28R5ZyQ5t%l|1-`Gqp0MX6h!kELOa$9An@J3 z#K_{z`CHmF6pn&b;d6E%#{X~veopFr+XoC)DV;cx)6nT~ehas@6f`$ETW)-M@%(zX z!y)Vxpg0;knF$gFe0H=G40#TZ30X;Bvfhc;o`2;oBsXw^Uh}Lz01Q$VXZ2<%H(&Ty z&g!|{5W21Czx42!yPouhvlNCMPppc>qO4{vKAXtU*FTE;oSxSRFutD0Og-g^RgxbP zKH502FG32RjhoJpoca{pp3~vr zuwaBZbLp_>Ye}OK)sXJVLARv9VJ|WVBj-V=>+~GXV!)n zuGs}ikZ8xck?vm7xC1v^0mJoPB2L#;tALOYOw*WF5|!fbi->jv1V`{dvM78I1l7vI zeoy8@RaKOqMm#fZ{;i}zhz5zw|PB)pPB2gge?OwB4_TulM2{Kz%LRd%)f zZEGDxG8=zDu}VOrNJHz(>svrE?6N*SHB^c~jV_of>F(y*647mc{oUZb=j_L?Etpy{ z##re4ZqRu#&@>j;)?Plu@Mcpu)2|1g?IUSLk43fV?N381EW{+c?P+tfnZ47H6;&$g zP-vKo)u0=Tt(u(PdA4eE!(Lq4oDHWd%MOCsb!#Pi?0A^7Zq4mA#{DsC<5)jD!%49| z7K-Z*uGw|h>qB4DjgC8RzWko~i`VKBM;11>4uG?K=v$IJ?&%RGdi89F`T>wUqfy>H z(Z8&#r@sS5YCP0D6AY7rSahRh%P-m8p7C=4%`ZmeTbbWiVEX-^+^JRiCc7zYG1 z(G~}pMH@e_F zmXeo8n9K5X3mU%oIQ`ZuZONkexAl&jgttPjBsG-uFIE#jn?#{HHVM&bXJ2{ zSSCS@2W{aO$n2r^U9ea9voL(@t4vzG%fm2&E`9;PlI#bz8+o zlre@3ok2_zs^xwZjzJs=WSl_GOJ1lbiv8Suy%{SbllOi`jv6mv$VyZF--1Yi`m002 z*Z4-;SzvvnS}Lji(;FbCtsH8KI1OOa^e<118jtDI3KH8ic)=5JEVv`s1@sxbmfk;l z-|(20wr0)~>ay6|TCo)SEPOPLv{?MxgzVD2bIM*C6Sn3#(ZB11L{EToeLmF}{0j+g zcna-@{Neo@mIh=OaS#2?vYLzVV%vt@OS}lNEeN$K!BzyGd{d1UFTJ3IF-t3ui^*z9U_KeKHe|_rQ{AIbCktBw1#m@xVZPz+ob?=;}7lW!wyR3F;Y_S8OeF-gzrWiv`!d=dldW zx%WZ(O^DufM^w;N(SGaOYy}0j=#d*yuSc%Zi$29S1+8rgQ{`Km(=!ZBGLx-0!F_Y? zFkMj^ztT{YRki4UW;|Oof$)?r2UH)~!lbr9vk)xq92Yk+$%y&W)2?L*U`?Q5G=*!? z_tB(scG;23BX+@&^x9PZcmoNypNQkPzb_+WY&!ZDkZRxkkutq#C9 z->>$!bX8YXkMDU;e$I2kZs{8u(48`+{X^qx2C6Ona7a2zLD-YjIrsRaUm}SkzPcu* zH0oOGs4;PD%62ttR5x90OY-*6pxTBpxK zQPr91&M`rS>NfZXxbtwcpKijYUF{)qc_}VMitQjSIIR zc>P~QA!>&-@f#F#rpFbI7!*aZi#fnlWC&ckLdW7K!5w(;TRtcqWY6@cugY z{XEQwky?-+)fNfz0d<8axCWBkRnpe6HZbCG%4S}YB+eO%kKgQ(Ry;%#C9C<{^mh@B9578A?ZMguChE)Gi@M7uSjgT4B zJ8p!fDY=kHq84OJkO3TVFZ5cT`vN~(`fH~?_%+Gjs`89%Ap9b!-LuKR!@+qkFbr_+0ZR$P54c&A~F zcCHSxj2-UAs$oB94$CPJHSDiq(cS`H&=sDG27e#PnJQpYhcOo~rEad+dU1|XL($y9 zG%2Q8oq}Ln(hvV%nPs!+4QI2TNn`xK!?ZsCk;osL}iGrtw>@W%_ z6ZL|WM>j>8o`Ry*J_~pMCF~k-(33m`EIWzh=-ep`AalZzBMHioUs#^lwDa4`?>4f} zW(bi4M+hc*n$&3^7<>s`ev%CtLH@Rpn9&JejW6dnWb`>K{S`s(kMh`Rl#~E-5>B9H zTf}{k*3HJxqW;dH4&SXK^}f&8L8j-+7+p27Qb~80>T>NQ2StuRX)*3f@hFR>9U1#SpqDsjUQ;vE%0vd^}X( zD{j82`h?=?(UZ5dr8N7di-$5<@HC~LFE{{8`3DX}z6G`5+y&cteqTx|!#7|n$H(In z=0z=jRj1dq=%{jt)nZI1C7rm)K<)5(SEvnX1{X+tYB)KZB)N<@lbq_Ulj)h6lhV0E zH@F{)>s!S28*2+mApV9)3AO#f!NqZM;s${AHL&hZ+{3(V%dBRGzD?UPo#^qF#aXV6FZQA@1wdv-1dv0JgDmp&Vs{3ST_8j7sfiO|n}t0&rxyqoJEOB+{g8|P z5YnBfI6NQJ+(1049+n~q%e#8E3=L;f=+=u_OBV4o6~cPS2Y5S_MSCkO{rX^ zZ`+jz*GAaYDlBxP+pZ2J9lyKfhO{L(MzQuPWj^R}GQ(`|1@y*NGjmooSqM}*tL?&$ zOowEB@|&jNAyRnwj;x#xl>Fm2M7ox~?=w2Z@09D%4kizKF#8bgVS0MfCc=)zJuK=G z;AnX52J_1G$ShV8T5U(lN2&#>6X1)#nd=<{hueVSGu{!)lq%2AyE-s{w?c8BxPzkJ zR#M#&9IY&TK1SQtw&paU_Mn0l!6*_SyfSl!SW%^yLl+bKDxxXJ688ePIv2GUO)g_q znx0$G24(~lUj)M`T;5}|Q$g+Dv$rjm7Rsk~jL7VgAZdEV1;~SFc#U#yTXe6)EA+Gz zy#Iv3vTy6D2kygYNbo#B=2HIDQ_I)7f|>{MHmjWk`a?;soG>@iy~cyRtR&0B0(L6z zyY}F*8?idWvDnIu2M(XZaMI+zyHWptgP%3AoUecfzvBOL+H~LPOye656UNnIItKz7 zDu{&M5@YSAK0xZCsZxE7aiUSvzAye5DKR~spLXcW;c)0&+Py@IRj;(k-ly@@@7 zxa_Fo4!9L3pLMrliN!@s(LyAV4hUL=-=kb;32H?)LR~mLOsU$u3y@#U2Lh%H2&9>} zm-J#3M>1UnbQo&>_18TMIOi7TT(BIk^4{Z=7>c4Y>+u_g`&mj>75(+^ zxuSDk$w+0de}a|7>_c}p=S*;d-Stdbl7j==8WpE~_wM|K*<8wfx%O5h_hOi4O;3-m zd!RfZ0f;alFoe5%81VP= zoL7kXb&r9&v5e?M`8)ZE#sL5v3cO4_-aP4ZxGAHiZaXPU{4tGwJ3JN#S`;ska~c`` zB9b^1vxqlb__Q850{g+kAb5ZgTDcP=Ug=se0+} zkHy4I(%uNs+m^^2{m-QP^3wZEzmU8B1;iVNjxPy;V{Eu-K8T-V2I%4|%w*^Uu@wbf zw%=&ewBUIsG+GW{ykH*8Y0urCVP;cNWls?g{mVd;k_~Eo>j3-@*`PuLX~yx>w1PAM zp1PGJkSN5|&5ti|{WpkZQ87-u61n}jpBYPtR}UacZhS~3zE81i+(+MN`o}E*rG_`K zCso^n&2AwEqrJ4#sLH=97zHp~N!Y+)HXVj`{0lkxzhIDWhp*VVi>_tR0h-mm5>p`9 zs1V1pfQux3^hFScvGdH(*0aa%@gFgo9=W+OZyTxBdq3+4PSf4niw;al{=)0CWAFvs zv9Dy_nX6E*Pw&|XI;3*|CB|YBvB*R$Ch@oljX-LW_ap!>yb zZ5@aH&PbMyB93FZ-^C&G=e*;KU&U83zR-AI{FGnfY4@E3Ko1IUU!RJPK9>bG)c@qr zufT!4Y^eCmC< zVBKH}GeSe#{p{X;RD1QJJ!@N#+k3!C2dRzga~QV2`PPh<-09Qmq)$ENA7JmD^~#m4 zKs$7FTz*cTGbkTC*eGR>;2zI|E9N_r{cAHK5(&Qe;!9U3*QS|uo;(+5Ltlwzf z9Hh_05Bwgsh<-^*FlA}59c65Y%m~G?y#0drzpcoK;V=jiR{|2kbs&9epPprizc$QN zVf<{&)k)NJ!U7?HjPGM&c@bmz6oy)T4}En*PNfF2VKHCLGf)SA1M5XsI+QB!wM;?b@T<75^2FEEDNGPbwu5G7NsykC^4KKlxDcG}qYIN1CucUV zbkPE^(!{Qb!!Syuq3p5i`YIjOIon-L$vDBLN?&h?^*Q}3jy(?a9JQO6TB;aE#i{f# z0|||YjF5>x?*i8d>SJ0OYZ#AQ#^5u;MgW_$0J<0`m$!6R2#hH;_+W3@5~(8_Z_b0xbLnVv5&g;9 z8^pwWJgKG9QtRz z?8t6bbKbNYv)Fg_W;Uz+0gM>s+O3T${sk4gWxP_Ayi}@Z?xr3@)nccU7cN9$Gq#8O zrJwLQp3AU#?5=5AHyOd^Mj=5G9BB`fFRo|sxqGNZTv{fNfhTy-(c?h^8jXAH_z(qQ zc*K&1T>DK70|wv zn?T(3QIIytRx_Fbe*zIWfU~X)ymna&S)ppkU{PbW z9g)&1EXC*zz)KkF{VuVivh~?)J9bft%*-~m@-4M3>9DWT2UZBMzPESnVW6~W5%vPk zk3pZ>%N2C1KLPxRAgN7~E3(V+FE!bU+xOtJa`^){t}@%-s9=2mjRNB0PWb;H^SVqQ zFcs_2pTA_94C&N)Wrn*QE+DR8c$rQ(c3?*@st~UuKFFORy&qZ_&zQtt1i!`wPJf9* zD5jf7;fDdyRw(=5!`v`9=XlNZ>@_zdmBuYPYc#4oe3TN3@N=}L;x^73oMq@-yHWTm zDg%p`oN(67Sl*eE^Vc0b2+>HOwyB+uDT8-4iA~rhg%Q;o4}lq%o%~+FF@npk&12rd z^!IM>xbY~Z6Bu1;^nmcq_$tcA<@Lwy=_iuUJ>Wq>jx09yfjT87d_wR#c_GC;YhD;pTU&Ir(rtt(v8w5AW#c zXz4Bwo_*!4*1Rg0ewH>$0?2GY8i9>%waGRNK=(%9 zay*7$O3U`xj_VtRkFeAbAUl}1=$ea_KLEGSSemz~;ewBxH5RSA+GDv06@CZ6;XO4k<<9eVh@ zY?B}^6@O%{#yTSFy;nxL^_yl_EhI@hP5}$_F$HuDjvOE5j+~dqz|lHHrzc)*ElY{H z+TQ|63eG*ZG^2D0`$qiWv?n!% zuD=Jz&D#R>YK-sH0d1KvYNPQBT=s`BC07_Qeq>%p;CJOVyM#J?%m$n^Cd_`Hb ztzhAO6US?4^#VYY#r@awCH225c3#5R8zy7x9W7d3fsU3SfmbbKm1WiWQi8mwg>hd? z_%mbb$RiKT0cKgu7^(L?x@x}AmCZU9-1QTd;AxqM?yREzS@`T@%xJY$`|E3}mRvdm zxk~d}r@&`t_=Mc8m^1lo?60{_*W(*{LjQB=aAGq|r^Byo{fQs2$^T@!zF?kWh9}#>T$7NGyeZ6@DT_bwhE^b|`D0U=YBYBoEvbi=-m zzz46-1oKz-SdA&IdvR*wAhug5pbo4?nL<{#cSwqBs*deOVEkRW^PK$XtQ2Mfiz*0h ziaO#f*NZN?a0IdLF&oCpn|eba!F^ywj(LQ!>lRc%cipCDn}<$`a^tQ50+FHG`}6*> zXBO?ODmZ5z>z2Sj0kZh7<EG&<_$lZ4$%w18HckZYR)P4=L=ZUWE=tEnFi&;g`4=>l#Vkp$sYF5@Ojjn0y zYRqWmmRW7t&@BQvD5FpPM`ka(eb16cCFt3g^aB4S zX?}RkYE1nC0zdnTIY1($GF9*ZdOODlbSbatsq3REFF?uwipPlde9Sw&@`)U+YxB0J8^UNPVT z9hnR;{j8jF%I93+**RA+J32OPVwRgW-D?l#JiEzuPPxf|?dS$i-am1Fw+MZRJ#VwV ziO0+F>3!UXMDCRDl08X}v~hqJkK#$X2tX>Z2_$CTp99w*YnZ**y$JAjJ0k++?AA}C*n_jndeFr-EKg#|Y#Za_PQ9QyhbL00) za*x(*0r1=@3NL1YO^ccfM z0#DnE@MX&}TXTSKv*WoF?@2=u;)Z5oi|ZOSHo}94cvt{sy5w|-M+YYvzpI^&v`%IX zk4O4dKVq`u3KCm9p9(+{m4gZ;O;kF5#O>4ep$ZRSsfmH%t=mE$89Km3mb-f6IarI* zw0Ti?-o=g_Gy}joeiJjpjttnY(NFXCH#p6r24rA)v#z?}(@ujyO(>=#D7B#Bu^$OIQYEFI`5E3Jp zb?$wuy4uzU*-pi5QA?6AT|mqE?WbPL!NwdaJ4&Rs2< zM-HZ>tVU^F`F`x*j(&WBtJ@j3bkE1VIr``~7s~9#RtMd0dQ<;EqoEqbJ?jxrNuIw- zZ0Kz_TkZqZ|HmR!*yDNx;cPr$u($J^=<;{Q>y-JDz+z#!hDFYr5V!c2}_nltj z8phNdPJiV{9nAU<?e*A1%9&41kUFfT23k~PiyQCpy-k0oRH4aY9%g<-3S(8ZOuzgxpy^aCFm;$9rD5uAh)l?HAXGI^41;w?K z3WNBTB<pkj4ysgFTAW!72B;DUlwJ(a>hgCm+wwxc8G z^)_WNx%^nfHm%3n*uwk1z+mW5c4E?!43dC@$!g$lpf9Au4A>dT@IfzAe6>+dfh04+ zy#`_4jY1A!@RNLS?iiX-df=`) z*{PkSm&8?kzH#Dp+9Dw(10|16TC20n1z04+T~co+)4>n~ zu50dO`uUA$xj*=9)wgr1`}DJEtdp<(t)%+Fo6e$Q`@?6HZBMPf|Blqe^YMHmA{Yfa zM03jf;G0~W`#7)cP3ceK=Ue&hp3ym-(xSJw5@S;bStLOLH*QHn5dW_3qv$syZB$yI zy&OPHjX5r+S()%5YNDbo^Pe%k<5m6>tv7xZsKFdoA7KlTQdkDQSN)(WKZtoyTa7ZH zAU0n^LrDvD;NuG*ZQwwuPsFP+B(z#(L3NrJ11iNEsrMvgWgkt3Y%$uK1%8W&GwFtjhlLUx|^}G z0Z6Hag1x*M+lsa7a%{N zej38< z+Xav_x_;9-w+OqEA`p$wE6MJa7OmCoAP%xu7D6#Rs0#lDO<~&P%hN=eFn9kvfwBGR~B%25AlF5u1#= z$#HNGGYaLRh=3lPq-Of8?$M&NRz%u_sg9#*iq5!}g0bmI$RhR^q9}l30wo|IK!vjh zU5O|mb;HWFbT@A7nhQ{fZz0V3kQ zwyyiXc|Do{B3m+qK6qedF6}!?l(xj^s{OeiW4S`1t5fo{@U;wL!&gVhy+AGF z{l5M){}SH2%|RbH?zf z2ZBQ|c>bDpnEHSXe>m|@KPoGwoC(I`cyRRY`cN)LDocv9aYGjtPbvPX$L7>>E*))O zThyG~Hc`peQ%wCnAroGlThvtH$2(!ora%G zs}07zP*@!p7jA0cc({7RYJnh@exP&(+C-)b&*Iz!@21C;1ZI2=5+Q#Ts~6-$JqfK| zGfMJVKKe7G%NMuVNnt5yC!(8d-PO_$d90>-*j)oE5V<6tmZ}Hjs z5S+Y0Z!f4GFIFv@-#QB`zs{T6*^;-}-jrbJ|xcxhM*tyoyY-xz+=&M;J>&7Y{g%m zW-F3-lzTz4;PFkRD^(Z%)PkB03c+={ej}3ExXkZtZ*UOr7q3y34ag2FL>;xa& zw)1s!1jrY`mUCEOgG!8EzGLDZ%kzbl)NCV96os`0>%|I|VT_%b;9R%nyNISHem%Vj z`p%eHH54IL-of;tfBOq~CSCmFY|UU%jxCtST1~TWNs)E5w|3p}S@5D{XrJ=w&LVwb z?SKA;%EI>?IET}yKL4P9-8z)!6Q6y=Tw=M02~TKU3PSakCjH;iDM7`z-vfUXB# zI$QgDRTcA>Tn4O*#GbkwB}^MzQrK0eU$`DaLerQBD0iWmrx$ttzm0E>c}HB9ixCJs zvx7?^50jXZp~TXk@*ez3Oj{kABos+h{Ji}7a-en>=JgH11u#n?A-Y-<$Pl8Cu%yc201ZXGAqBS0K=sE zRRN9CBsE7&#k)kSF_PE`Fb3v%&;f;H~le;Bx{Rn zw=cnVTUOc0>|AZbB!9!cz`y{lov~~Ut37_5LM1Y7maybQe7Q+y!kNsdz6vTt?8vx1 z!kFK>P6@R_UCXx>ktu}j6PGV=+usiEz$UOYNxV$lu3V5i8Fm^5tz=9+`qM9+t#+D9Hw<&Im8V zOr*(h@Q{?pB9th%;iJ5WOAafpV!+eEqQnopfqs~Dwfug<8*=XD=|aGpa5rHK+u)?d z)rJMg9O}5e=x4|RMqO&pF{4VWnk$$E=iZum|Eu=>4EdQq0R->?l2}_1^dMG!wjn6x&vond23dM3<_N_w+zv{I-c`f!d ztET_S$5jDLa{BYlKsi0{!09L)U-m=Z>zIRyeu`12Tag()=WUrg8Ivg;;Sp%;o5&q$ z?=0ZrDkN%vTyA=gL%7S#f$pCPU4UkW&|suLKkv1~IknyWj@5S-tNq|;1=gXR6OlSld$7+{hK2pZfa0BA{>D+l`{Si7_0JkNs z5*1#RhCy)Ky#|c=Ft;1~2^U1g3OXMg36;_6@%xPP;V=jCo^ik)uL8i4B$_Y@-HIc( zn6C|apT@IY(BKmCmCCNrA@M=NkN?IKF}(H7h~3$)nO(JOu}8c61B^XdAK-qB)fQrv z31~!04_Z1SRIFy~DpYu^O{!47 z>Z)|@c`>a04Cjp13s^@;@s0-0FWL)i0^`sPPRLd04($iFF1dfWF3E%y75;PSY&|!c z2KJ$1G?@=xVIq5r3y9Bg>ZlkXR}YhiLC;<?H+GkW!z6rb!s!9J0vnN$_y*8XhMDCOwXg+Ngm{M1B?z$=c%K7C7M0(4w>fc;{xc&?2!_*xD&h{2K-lM`CEn#P>4q7Hx7zB!`{Vb(#|hbd^X&^;W^G`Qd{vE92=k<@KCUP zvG()dQ{#mzH@=lzQy4eC-Z5=6tqAXWmER)a~f+uF9Jm* z1}PQGuf*S|>71luVBXWD%7#wQ66rYKYaUPMB~=UHxwmRx$cq_a+95FJI_lsop&DKK;iRwQ?=8woO|Jv z(6RGZUs^sH6k-&T0U)G5AdkJ)*^Y^IU^%g@SJDhG;V&C|@NeVEn$Ot%>U$2qL_CZeYfsrEp@orj@iaEIvSZtKeo(@e;KM`zF9 z(37%3b06U}K`T-ooYj6tLe&T^pi*`vxa91{#m>ZGKxcZ~oay;6%1g_Zu86;t2TZH> zt02=Tx$}f7LcAWOibVBzfP2syYkw7>v#QQcLjD1^g{y+Hx}5t2MnNEActD#)JR%rSQcD&wWDJ*Dvdu?vo^4gpXs%w*|p6>rqTZptKD+6FyfxbVE00#P#Ns9xrhBd zcWyM%eP1B(8PDqjv5f>_G|3U@;@FWqBu`zdM#qV zX3bb{_p6BQi`Xk=iTy0X|0$pi;(qZU$6I#u%w#;-2s)XajI|=!j?Fc{+o*!mGpz5Z zUs+V8CRcKzUrrebH{!8}gg(^ChLFVo3PB1|pX=ZYC?>UJQb(o)MSqH(#acufVR2QDEsaflz2Di? zh~P~O%bHxM)k;Ql2HUi9O3>&%tvXoG0Myam<-OHTRFSb98%r8=y^6d* z$~F(@!IR!KI1&-L8s@UY&c4UW9x6=sq1%gCK6?FSR@mt1!S=NyUAFIs2(PIoOgpJ) zrj|0#@u{e1Dz~9{GCpClK-0xdb_xDRi-iqIxAHea*U$xlG(+Cw$+buIucWC#?3e7fbf#-E+zn=9-;Vt3%VYE+TIBG#wYJ?)Lm7vYJbm5 zmYIDcU;7n!)mPSjy})ti2`vLrd#%=NsvU2&i)5Rqr(2(y`M)xm;0E((yg&NBfQB26NapOfNVgy~(@BTzS{QOlwJY({G z__UJ_)gk5h``t|?*=z?LDJD;I*e^tE6E7Ua{*jC{@GYN>ILvA&^PKZg!$(nz{~CFZ zF@Bv9B+;cG!HnOOp`jWKRXr0|5(|qbP_eT{gf#|*pyuIZlE68cAnkfoi!Y__CD$(e z4DsSweYUM`1R>4jExe~i@0%%6`ruSsg?^^T@8oPG`yGlA0uu%nv1}m=;y^oC*xM$q zrE0XqPIF|UWn3Exp~rR{Z1&acmZhMfLXLSU&o;2&QMiWH?lUmJzPL5*m7K1n&hf6@ zTQMXJc-W>c`#x|!3&`YBZ0E`~eOV1uW(sHmfY-{5&04j4Z>7rtKu{7Uz}{>RRb;8f zF3!OMy@|_ELRH$=r9(8yiep7Z{98s4i{m>1-guVmm{R^S*5u4;28Xeg30Cgjd>Ev| zdbx?(&mgs|{WsPRC{{_w`W6s_>n@7 z=q;3Xu8tI1CGZ8{1;JXSNWMn+P}5W8%F-sxssMNBgCGKvu9~eQ5#4`!qf{I@@g(L* zZJKL_H=dls-T|+5%LN2GK>l4M+=2MlhMnN)x~1XXhR-4Yrr42gN?aDFM4X=S=m6oQ z8ViiFXVBKfw*$tJ*XZb~aD`6j^#InyC+jkuye#}HCPPYG!#JeG_f6du{5^aX9wVG| z2X`p`)C`A7loY~ZVRtU=h{g(R^1}F_#@58_Y@Ly{aN>nB<~GE%RuVfZ=!38c@YaTe z4*4m=CYjgE*z1T!LKz)mb3D+2JbrpU!%EFPD;8y+$>(Ob8G-`!ZyQbD17-u9 zZ(Cpg{GR3(uENDdA=fdWYoml8(zjZ?0DZHi?|IDJJ#g*-{xhxcu1T$>girK zL4i#AVER2I*3Lm8agZYlzoEL-H!<$%>E#C^_SKks0Tq`&p_Ys3iiy8*7@9IE3P|aT zj9rboYAHyk)h#yI@KtbcT?p*p#8-qe(X%>I)zJ%Y*jWwS#ej7N$gs6{)GtsFmdnRt zjR7cu5%R}`3rG?*q+OC?A>@T5(j*CRTw)vX+O7y4)oboRxayWx0m=(X+83I2-JWyG z>7(r_H@fjtAYU}kI?J^(=y5+^fj_Ojbt>PNvj`m26!mU zxGJKY;vKwrX+e@5bGJt&3;v+iU%Np5HhCfOay%O4FF`3{#}^mfNLA>0d);QD`+>J$ zv=x7J<~R&RQ&S$6-Zjm^a^cM|nYj?m??SH z7%f*8ENGXN4EktkXo{b1Z{O@%}|@Fj%sPIjl^D zejy4{1HL_4l)=cymah&{i!8|>%%tWO(RXrDW$*KZ>v#sA8mRV+kGBO92$xJi@wJpY zFuLZz_#i_)9{{hkJHKLDVY)oKIPqTWKeK|K#ts$pC{lj7EI!g_XhV-I2T>-v%7G`S zs-U-C1AY}na4NNL4@j7m1p#mKQeRV2W_hqX4H8sr7b!Ih4+=h8a@AQUjSU)(uY1*g zf0(W9Nwbc|GRC8nvR~YCd`p)WOqRty}8d%3#!!B*8V5>;UPVL=skHioxA3Y7CmKoxz#%tcLM5^O_f&f zgx;%&-}Zxxn|ROLI3M>G@Y~L;Ji>TVJFG+rTErz3cGfcji*p8ztIPUhr1nVe(h9*F~JVY&)IV_ zEz(Ij4GaS)RGO}&&H8)I1pAkp6R}n{lv_06MJ<&VGlI@6#hKs(Fzkc3Wzx3)3Ge^` z=r^)(M>qLW5i4Ib&m5Y)XwIsh`R3b^EnE96dE~)4COc>My1VZ1G%LS%>7@?{XQNqs zQzWbY4XxVMzM|(|Ifxig)N-HsU?5;~cmDUb?qR;?hO^_LmLp7QIwR$$y^FC(`SMtL zMa7L41GNd#mBCH@VHzPDHa{I-Mtsx?9KkPOlhdfF6DR#gr%8r%jbrx6Cx-EPPWd>J zLS3o(JGqw9$peqix$O80^fCH1DR!*;@yEDRK}mgT8t75!E54J**(3@9HM~2+8&UF{J1LGOmVijD0Y#0{f5U5i1Ct zdTgZQq5_F19-!e7PXg(fx&v|Z6&e-`ip!0EN0Q@0{5*3;!i%QLWQlI9t^V^U>^hlp zx({@-aBC=F<{pM$0em;#oEz)^%$nZd$h3h0F@tt0g5fh#E*J?0PmkCQ;2bUl`FVX= zu(&j}huD__c(m?>dt$iS7A#6`8$1RZMO8T%7#&uH-0_PYfI++f)lw9~@lUdx(sm|W zKGGXpC)82L*=Mv6QTgtYDo%VRZ~@BD80PIk-!486!U1ZzA#w#YR}r4e&0)AYDv(TD z*%xx-^ywtCjv3odM<-55f%Z@?&x4qq;~yUN6xbO^K*Q`En09My2Rj&K?HHuP|f6V z-Un`K=;8I;1DM92vgoAlJeF3HIh>?O4^bxjA`!F2Yr|;_4!z!_jb*HIFeVG%YR#dZA<9)-bo$ zkaBA`mrSX=dp+OoDX@|Dt9qy?fn~9>3Eo~=D$Afp{9aK8$SQ2Y=nS%@_W~b0WJbQx ztINXQQrNpw1zt<=3J8+wpr9$$lFZV+TMI?(#CAS#4YTyT=GXr1hsW;B_3EbDN#k@;98ipxqR$ z<~yH8-MM<{C6Oj$R9y2bk$KpJND$Pu6ebg%f^nb19s-P?`21;uC=aIEK) zHQ<^#W2%Dg2<$-Jr*dK83B8u|f~Jca!lvE;M9GCsVC5v*BHKF?Le32Y*_`Bl#MtnJ zhz8dtCY?wSKq9gtKzy;E3TA(>oWTx&$^; z2^>8Wf3Q82_zF!G=Ivi&qQH&Cb%JUG)y*p&Jk6FSegygeYz_7C5ugN$>dR#zg;mzF z3?jPvh{eosOjNT{d2uA@fcFr$JSTHvANw#9t787VEomp!a?7`|-rjZ!Hb{`i&{|Cw z1#Bmb?)f;-nl9M(BoNcbS@(YH8BEe+3+qdVJj|_InR_3_7K+xl8n8uJHuD!8PV>IP ziI5rX{=J~#YHTl^DYMx6)}!ia!Xgk59$c=_FX&$y3xFy8o{q((w`k@`e${^Tae!$TMdz`?=P87MQqXRL6 zL+ITaq)UNoA^k_c-i2h%Tqzkg}c91sCQOsp-7K>6v`!u?_wq&rLUB7Utj# z#v1aqQ-~Op_jynPp@4{)FNH#&jC02W-jx>x6AqQ60mSu(&y3ILsmAt`i+F}a#-^pB zLc4Id4kQ?k|DDJXhV41MM z1`GXwN8Wht!BfguVx)H+x8d}i44?vkezQ{j_o|__|7*Lr*QvhQ3SCj0tFD4BY59zv z{_p)Ipb0YJ#q#z>TL`Um$zkHU z5rwJqGS=Ispugy)RsZoDSjx4O#``{oG!%1LZ@_w3Zg9b27r8>mTU!%O;yHZl-2rSj zn$9c>(8W};ZRCvo|RtdpCRCNtP7)shl?8Qj1W|YtKePWO()*uAKqN^(OPUtg?u%c+`JV3< z=FPXgOn$5*WXwmpw0A8D!R_smi?%wuL1Sggta;cghL_AvkiR(UifDdEv!pf=|cR%eQSD zKXF0Eb?w0K=-GeHPc<|eYbTV^D_06TN*0zshP#GaWUK^f5neV?SEyje`fJ$bMcBdJ z$oB4r{(iaPxmbrOI-M-t%s^~U7V3F#H5N!+dU4)@XNj7}`3e^(73X5iYchC9g5r-6 zYRU2}r=I5|+FBp)jT0T*2;k^OC!^K4B{TJxc>)vL?&Mww|3XzC;i5Q9!Ms3%?XF?m z89+K(ez=o8p{KTOYZ3wEVJlVvA3k6JPH0GiAI+&Cwa;VV-72J#kxy4pLpZ?Cy_cCdQEEID<`_ znu>*%5F|8qanG`BHq!n4;NUQ?4>y7{^A)LpUc_w;UupPO!^;i7n!Hyq+t7EKJ&6OJ z*a5^7r)~5i)SH|Kg4OsL6dRAE;X1WeIZ<$23;w>?A0+CJdNG^>J)vvCza}np!OxF+ zAdw{JK}j-wH7_XB8d)+q^a8yadnvtT8fFCghjx*OQE?meoRNFC}NTs`PjMR zXiUgH2whTufG*uT*gDXdwp{V`wAELXv7w0dTf#2pk9D9GjQP&yd6|i`%h}PCmGbh& zJTS0JQdR+v{uom_!2Z*5TUQ$f2C!J7Nb^i)*m^RG=3t+OpJ2bHnhC}&nVRx7_GMbQ zfg)XyYI8A7;j|6r-N3{mc}MZP<~+(2tTj#*6^v!<2l&lRm9{XYSz}nJZbU7Xmff@x zBQ5_}mhu_9{2P;nVaF_4E6(3IzH;JE43y(a`4+5>3Rtv~w(epLV|%xONkTHm?h@n{w;oKjS!z7B?Q;QvfxU&W_pK(V_8r*M8|cJWn6R+`}$Z z$#2KJ-Md8eyxtXG2#zbIS}1M_NuO>>?0{mIMK_1;0sXEyz9{@Ey`#uQVBz{LSy6;ZI!PHp&&~M)GiJY?S|r>FK%fkV{2m>^JG&ciq16vXe?1mpwWfk`~s`Gr1dZ*d=F)Zw2;BV8FaN?z-poGK~R_V7DivPX#D^I?0d0*PGQ6CQ$ zp0sGi5b&m`qIUOH1@FLGKW__ZBla1;-PKr?Qel>*dPe;G?8Tt?Q^fZlrOI}qEOkZ8TW6iVsE?p8 z3OZ-tUXVR6@AxZ+k^Q-5tFGtQXS&>3pbnIjt^#vMmZyWt+F4k%LH(>*eE(Y-yQ@#( z+1;lb9*=JW9eYwECyO+RM}iRInK1qaa+YzLo`8|3)2SqR_cWkMY}t~u9B`0Px;k}F z*2q-@~U8scQ=Z6l|(7K z`xe5wBBL{9yY@0loE(5QfdX{sxRjf})xdXDr@%MSz}Rtn${NhS^XNb9t^L*VUAdX* zDB@($6vWE+Rjm>>Cu>s6BD+>4{$HRrH}yBIRD}#ONZaonU9r1P6emg_$^c~^^| zi-C89lK8hg8marX0Rx4J3y-P>C}5DJm^f(#C-txx}qM~#jWcLep4=O96aR0t-)?IBli6+$8IhL7xZxrrz7*Z zF1{%gg2Jak0vx>wi~^6JVh<5pin@h><3SEmCpV*;RQFPeMM2mbUkNe>_&v-;%&&k- zI$g-5>(ZvhC3n8f1J>gSBLw+G9P2Ize=PC|Y_tV!B)GwhOmWrLQ(NtHXJ`9phh;?I zHDciPxm$7(Y{?PMdymF-I3 zy@K*Nq_gWwm}Bscz0m!pE$YFu7e|hThWz0dRMrG+!)2GD+~!_Y>;lTR_79-K3gCM7 zVe>cjYEErZe~Cs3(PD`Vwbu^5V}dwS-vbumyHS0evgdK$k3;207m^ayOEd{Iu>O?W zdU`^_jJ1#;Ta%(g{=y?*s2y~k3Tl%9@jL2k7z?5Apl?awx%k77C_NICMDlE8dZFMo z3>2~_v9t?a{ktRf!?Fn^bV@DG#z1;JT00c^cCg^=z%vEcF7`C{XDtbPiEH;0o(OOv z;RL|0@8l%GAocmdv{Ku|ixttzA^-|>P@4RoGRW*o8PR}+6<>_JKISxRQH1-Lwr-+qLTK-{0`7#;-2H$ zSI1G$aKgU}Qz8bQaCc*z?QthUrxLo0o)h}GkrxxDZ z?;PU;=~oigBZGYR(MBze{T`?#@g(xjWc{6}=-89{L1YThVm4BG>L{M`x5J7y@ZZ?# zIV@-rSTVm=P}S0R%P}_=;naW1cRk8u98#qFv@($n_-$y+LU_h4mpbla5@8o8~E1tX#4ik${ z1$N9lj}0;@e+I%P=j^=9Mv={-qMJ7|{iC+(6x)V^%#h^~FsY+y@E;?G5)CjN8C|RK zUaf%Y708aT0)aGhcKM|ODhW#T#PyAq)%*{SBc;e4IbyjX8s%@Md0y9xJMkLwI;UYH zY6hob+hpwh=;V39x=Qe`X?$NK^w<#s=b41P++sqcK-{7)OdNvXNx<`jyFG4ia*-$S zAH>&OE90O#HmI?V#$i)zrk_z$SVqACe|NY=(WW_AHLVtFA7MasfjMzB^vj5$!ONb| zwPTtGjs2|f0uyI}IxAQEBa;`QcA;#O*z&TO`b`Pjt*oL3>T2mVC2}Rl6S76o1-dM- zQ(I>j1aK+mQSb|$Tt~-f9(ZTO$m=#?4?+gpY>o2YABs1+0P=wx8V0kgi#VUU-fF1* z8^Nlv+?rNuF)?caMO~W>XPOfs5a&XP{c&ew*6?n}65PBjr_MVMB+QKm4p{GXt+@k@ zD&_%8v-`YfBDYlT#N4?D>g|<-7U83t(aV1cNHhBIL=6vcr9obX%%S_R5tlMcYN`|Pip+kr}#qn*TmSq9Xt|iD?UjU`w z%9tPuTadnw=8!~a%-UMO)6H~R_;yYKRHs~9MXN!-8eu;)@?Xmgg&kF`xgDB?N4(jX2RC#J;?I*<>DP!x5UcV&6)pf> z0SFx-0%bKcSB)r>@*3{;elkf@@s|LM-mg7snqJ}QA2DrKrG4M(HMunY7s(PfrHjbK zkje+)uKy+vD?w{d>eX@Z=&sIEvkJVYHQlCBp9F>P302 zYv&wrBBveboS{Zx@yJ@hIBNHq8B6L;qfj2SDQ`7keHM8CvA`k=yQYcHmH}s1%7&D| z2+BLqQL+}*3Kv|mcR@}RTsPOVap3Gz?o!+p=$_Y?n3ZQ-;MT<807!$CqQ}8b; zvf#w^nptgIKPQ)~eYRbZW-SLyKm`3vaaVKN$5yDdQh+(6bpX(7x1C#pZeDhtafPR= z#^>&cJWCI6cr3K-_Os3^tBQT#0JCh!ll1QgT%ISP25>F7PCoHA?Sn1kF%M_RiG@WL zkYG)aCJ70L9zbtM#7X-h#>H{5;0n;&@J4zuQ9^{D#OxY>Tl`vFSfD#VuhK1`aFm1S z+DX>!yvGPTz`vC~^U_pnN%%sL1~&vo!Uf_{x)l@-L#WMybzM+fQS*uNjmHeaQ?Xr< zQt91R0Uw(ftR9{(v#s^k{MVT9*SslcowIy&7*%ant5WN*aC()tj3l{%+t%al!hTbs zpvWo+MdkbtwK8GNi;XmT^63Avw}u zE|)9sU($0(c4q5?|LOStP>&OjdKG)>I`FTIuN1yQcv_t!2n$rbyH!P5){+G)U0u-Y zSOx46v)>=sihq$>y9wKaY|gm5GRlu(4-;ZOGn+m4@&Ioz+7`Dn3VCR94K-Vo$gu}2 zm<1!gD5GMTH8yZMYQ7INXP?WX?}gg+!0^T%jB$nCAwV5npAFkCIJl^;!TuFtoo|dA(bvua=VIojn=_VPdql|W zS~b4|6Tg?82SDv=Ezj3LBPh8{n9sz;;CdNU5@j8oZaJNQ4b4Jv)!Wub21>*HFY-Ky?0h4SsE8+r7`JD7W*#TiFGgGvATg07`Hi68hjo31 z5+h3HE|*7K)17T*nzKcvcq&qZsEKncG2&0DXxnpn)+|IUx>9??N&!F9FIPRKUwyr( zVBMpd0;Qb;c-j-f2RNn9VNmKUMS2M2yI5+>)ozT`lCZC={{Mu12Y_T{m2TghLsi{d z_rDcxbyer?>6|7{PaY;Q5rzrC%n)ZJD-20;6hsjf%n1?2fVzshikKE7x`s8Nt82#9 z-PPynu5|If^WUoO8W`C(`?RaOs=BRn{_~&ko$s6d1MngRe6AeZGy5c#VqS2FM^bx; zW~5yLm&rf+!7j_pzUSSbTCCi47oxLIGWEF})=)?58#%+yC&&8K;%j2|>O`&oE@lsu zWF`5qm|}K7>X`P_2zyF#H-kCkdag5kPup8tK3zHlbLg7+axyLJPeieUD4j-Kf+0+H zr6-Oo@q*GGBm>mlMcMa%Jk#1cb zst@;okq5$9SEK$@B;kCvA!aAB`pk%M}se%jgsfEn+WhD#5jS~(C2AcgVE;_Bl*J9JEjPBdF2s^;6j-_k%KX_ZJ zJBFV-AAB?xIMs%rRk)q@4!|sqPrqR)e4@N2-~n^aFg#fz69Y8R?7B3L3?KL6%%l-B zT_;MdnVzb21T%lC=FZyOcm@`y`xbu#{VaVaJmxc+3GrGLSSOLqHmGNwqYW?;cKiaX zPnmfQh*U7tLd4-zu!lof1JZ!l55OYN=gmNeoB+C9n49KQ2c&jFlHU$)LG-w+T%Ri! zFOH%!UeO+@)f>-`;tT@3V@m>EMmzP{@66Go4<{c4TqSwa^$;<|-Fo9?%WbR^pgk8X zT^a;|fIeCrWQMQ4Bco%ZB)4#TF@ED6g3>4rO?+?RMmswINvu1M;U;XNcC4ChQ zpN0b+@r>yM^DLi#aNQ~v-SC=qx;>P`N!6j%b}r5->AzA0Jc5k(-EALj`%*gBMU|hf zK+ezSQ}d*NRea*y#<0a)>Vv~cwn2MsuDzYoTp^j_e9veNG$vm`9&bxePP?Y_VU#CE za4`7DbR!D`Xrvix$>?*fB)-9kSJDy3KLls`soFT;cyGam;6O%a@0n6^hw^Ma99@Bi zKoOe(m%cQM!d$jqb{1oo#a`r179GqjO>h>#U-kk*ih=ApYvlJswz%jSbnYsGQhvOm zfYstk336m_V0N+3!*aqcjJ30|84IG!m9iq|JVncPsGrfW&5HW(cS8zlYS@GT5fp7To&M*shqG z?PQU$bz8w1y?~9|@`8;yYsxlQVfScLy17)c4~}cvX#EX5WM2k-=`R*lr6NqXOB1d>Lxp`Zr9*_nevNAame1yzR|FmY*fm~0k6Eu7?o!A}cA@C{eq~Wz`FR{_G z5QR0&1CTPIp_h*!Ap#~fWQV?_ZBplYxZ?OD^~rwB*@&yfdcf zp!F--(YXg*Hv3+5tvHdt@ULE}(6c!(Ovh(CwqEpBM*`fpU( z@7;xhTJON?pqwTAxgfGfUXf3*MYH-cpf)+T<_*dHddK(A%VcxD<~{gGpcuVRcetAK zbbt$-bfI5@xDcabaWUV<2aiLOzXV5|f9kw_Z~`3wT1#s7bX$fg_^@9%TOqrpW^DwH zG?h+GN^yWk0mS%pjNYi1TQEdqz1D2Hx#`gJyy=_xUMH7Pt;l5nY~g&O{qzJ@#%xFk z3&iYB1ck!gS;AaB`z|bPs{rNzY*+s^p^7Xm5f~nTe=)sG-p_P5mn}F>1x$jU0?JJ9 zcx?ije_4ynu+w}e*c_;{Jg{KqXXNFYm=R z1j^gaW!QO`eW_ZtcRRd{v^zxN+X{`BSpZOzMcWfZ?c;%DEM|yw`*oDzbc1fFcTq%R)G^e3e2F43@_zm z`8amiC_Bj00vS(nQ8TxA2|u%Q4a64LK%6Gmn7~DVR1mLiPTJ|L&*#ciIi0|Zs$=xR zmO#+#p`>0!$wlf#O()_WM}G|dHD?mf8@CI;Rh=AQX2S@Hl8JWnH{l-V666X*4W(zl zODzn=Lz)dzuKL##8Jexofd-Vzz(^f)RAEC_FpN?iQXc{xf6#x*$+KS|_6!61yyRJ} zuj=>1l`&DYRr8B`22a`F z#~{%sy;DsxQe|N#fsh5b9iG*(d=B1ffF`h2hU@?nUvyV>kab{20D=J`+l}i#vn5X+ zkpm5l>XBG*Ko*a+4;SS54Bo?^HB$epmN~ey7j(~dX>46JWB5w>+?N5Y9UQw1Qjl3a zxrR^O#jKQLRZJi3Oz&_NOYErW%v}G#BlbYQp#>N0OY&+-_fMOz4?e~3gmR<)Iu$65 z`Ra>~bvpSwzM?{AuTowQ!c0sUxY>Cg_`)iH<8jgfJ10tN)C81=OlhroKB%JprBBfY z>qAvfnL%ekofhsa$XXxtz&`#WX+5xX$-O#&_x%_v}_OjCGaFXRY_cj_qDA~=XG z(l54syY1&~|CL5+nvXW7;8;20m*#P07A0Q%lfx;%PkGKnler#5ROHh0t&Zk~3GZ9r zpweg+!4-$JRpl*xJNi%j6vo4^*)m(zA2e+cmvSgMpJLx~j`# zVc7~0<0p&zXC!uRL07(qE(~qEITKgy0Q(hq1Qf^DfjW1suxnsJZF>_c^9{KRMB&gk zCBf#rU>m+|OxN71si{(JN}WB+0})GQV>X|+qVh22^^VbAL%YrgGMO!H%E-)M0WTxz z4*q9>qzp_wX6R)SkYs~J$j;fm#MTpe3s#Vq5vvn+kXg4kAqnI5l9%n@G?-WOeUM3q zY6oUurOmI{Q>L-S&6i)$6?RL7zL}$UG9y;&Qi$zaGrcdsGnuvRa$gB4g_N|9fnfm< zJZPy1x(rP7=MuliR6!QRz`v%t`wnHK@ci2<7}jY1O&1vDjFx@vMP(KANt1i|%#r#7 z-{$B4)#wY*B>KxIJpJgT(V(Av19@DU`yICg-EbXp2{if0|4_!m{hGd$R+wqo!krw? zp?ZbD8+^@xcL?Z(+_TdLAKnXY4%g&aDR0K(P3KBk^0_XmWBA_#AI96$3%LiYbYPB) zFJEFh``?tCqn zjctAW&f!T{%@(%3xr`yqn;*3D)@!>V;7USX^3U-VA~zEpF-DvGx=|Hm9S7tBkJZJ zrb;GDU4l%Fe~418SS@0Eov$6Ar^hkRj!17ou9o@}y=e*!P2Zdz(O*J|1#baPMzK>b?Y?h%q^GCh< z$0`c63V@-@sd@QZzAFha+80Pkuw5d&R>d-}H()vwkx;bMq-1*o?Iv1?<6Vxsv;al} zr=!EQi??7nCz#m<^?ra=|d%O)pCy6dzRGy{Hsla!&W$~W7H1A zW8&s73YR?cwKw&vY^;#DP&UtPJjMEqU3=XfH4)J0=(@WTM*%h3M=>2hwz79`60%Qc=q4*Htes8;H2= zq7JUcD^<|I!Gvn}%sm4&*Z;~mrbI)Bu5hrky?y&>kuJ=Zvdb*+;*2+s`~1o^xB#_y zd85WSd0)P;bz5LKmDNk*=rjj?C}r2~&5-8hBo^Iwx@_&^J$;aLzUu=(cT2@>+k8jw zT)MOhzIRtiE*c%#c*-jdV9LgQ;2t8R#g0C&wc`5 zYN#PD4Bob$SB-*9gQ-Yw%W7Qeettp8xdO&KraD-njZ60R){{0WcvA` zlNK#snltlKOzXQsrx!1tIjetQxKu>OlCjr!VYUn2PV5~(F>3Zag_-Dp#mjPb#&Ohv zQdtr+j#etkekPhZGZ#jkj<#zp=seHgw|S_&-HalowCKDW0Vv+GV;BnLXn~FG*uJA1 z!>6s?0i$27P$m*%!&3tg`ml+j16Zcq-z6<{Kta64ST9ZQ^vZ1bNK9FAY-VK zk$k8(h|s4+-_-6IFQdLf>j}(Ugu)Oi9g7~v?r83s*O?$aR`tE>CWkG{Tvn7kBRuC& z*|Z%K)OJhg&LAF){qQl06^nr~Of?~|ZiyDK-CVSQBM_hoU8wP?)M-F8NJZlG)SRvz z?@RGW6wh-K1|7T|vRG+2sL7ob@-vQWcdTHmE^MCo=K6t^ofva0!U=??pCw6%l33 zB54rM?^Mz+F3goR_Jebw+7*7_9j1wKBv!h0$v^9?f~)g>a+Cjml23hT=KgA8#=yss zo&N;pW?;ynIK)hCEc~P=hdx)-8!3cy9xcI7Tw~LW4kEW2C0=QHLsOxa-$93xB01?J z@wd%l7}4_Vu<k4qxLPsP|tyZgjUB~6*Bip0`7wjmdPqe z#@j*sX7(OL#}Bg4I5$AavV868O*psp{{fbrVHh_MIx8`~vvNRK2+kOAM)jjQIJrP# zlrgIKe!BW@%rD+(6$bf}>Ca*TD@j+hd3I_k6!IV88)8 z?Z5p?Z?98=ZmV1W?>{Wepv?pg$5pka>7 zs-KK)bs)!{oiXI9Ra&$u)||pXmlsB0TB|=0c?nbrQR^uqVIO1N_0PXZB`^Hm-f(~b zx|e~x8W^SWdbBZ4jLtQkV#hF3*3RCvFa&vuRt&*oEGl-pcvgog>8xY+=ET7kaw5Kc z1o1cSdDV*)_x=pE=${+%q)EY73O_8WQv0__kVF9&+fnJK;;+Fib0H8&?`r!nk5?_d zFbY&C!JBZAmJb{s6rG6F=Q(1b^#M%Lz_P#?jT(qf0H5Mf%xWIe6Len*3ezaU@h%h< z@o$nc=ebwm2$D%*X?oNBRwDjyvkxAymS#4hS? zB~g(UVS#FNbjRsuR`VY2O_60*^yEufyL+8Cdvn&;4VSL~Sqn2;tab{L(mqugwj3;}La%Ndpi;m6^dsHA7G81$ zOroxtyX&l?5tPok+`&2QdTt+jtr709lc8#L5%}Y8OK&hLFnIR{<|M{k>Ui1*;zpu+6Ag*k-EekXQRzJ2rqE)AfX$I2zTVL?&ziIcIZ6<-;71je)9kiac5W z#*oAIu3_1sjh>)ote|&mj$JtH2C)^iZ#v_=Yp@;l2-AWJI^zC5*Uba=ZDJbuE7JKs z7_&o;s+_K5R^790sfo!-a^ue}!>m0Sd4{3~Ph025Kw1e!o?9FQZ}ES?E+x+S{yNN0 z`B|mI*-{8{L@w`J_EhP-P@2(57GVxLKl5j(k<{`aN>-$Qcv5<#@G{t{F*BuehJSd! z=K+p*_@#5m&*I!krPJ9w-}JilFG)}9{c*c^WC`TnAc=7wAe$Q?ZrmwuBEI+8j|!dG zG{Z*DqfIo)+hVWWzj!%j?Y8cmyuH8bI{jx3Pg|&0RI|5tpsUk0qqibWMcSt)k1#+b zL@(^_u?3b(2Aq#sA;zJKGd8+l`^=(1f}&Bu#5%iZ8v$E5J+rF6f3y^#bro2vdkyAW zg-QuqGSci(t%xgeZK;qAwu|4a$ZPALAU+I#k+3nVn8o_{NZ?H9=@An>j%?OolIbbb zu=HeQb-^BwM*xcIg#4NxqW@vpaa;x(pEL7ivQ~X{&fRcMIV!jB-;?u@iCRAnf^n!T z3lW5(r$IPihuwo6`D_kRhD4XU7ko3Z<@~X`VpLSKRHuVfmp+0G9Xt)Eu$@`{Z z!_LthV`uX&B~(mz4-qJkND{_U4@0oh?6@W>oP9}{wc0N@%GmYyfpnm9>$NOe)#>D> zhAkt*4%D(8Wo#1KV>2P!H3*d8#H=rNqU+8)vC3u ze&0%Ucc%nqx6MR(f^jD?C%lO(D4mN@XF;*E?ZB<%x0SH-;B@W^{oNy$Te60?W(vF3 zGB%S_tS~cvdQlicXW`tfEWdS+Y4&QjECB1+H!fu^=GB_re*N3}Bmsb_CmHt6?7~Nu zTF$cHt+2dBg08oJorvDPn(7GCPHBb#l4NWU*gx#_Ru(CN`QHXiEKYD@KG2WxJr3)u-`6g49r`_=0UpzXauGm~tfi zHz!62?G0}STFlGDA48HuG3^y-sFa_#5teAHXWR2w{S8f72P)W?O;=SHi2pR9@#Kaj z2#ieXUwk7tzuYfhQM8QmgCEc=t#jM9<=tgXD_(moz%87&iC7K3KBECQ_Ny@GD_BRu zsr)an@m8Lp9EW&jh-aGWvV(0GynxZC*?om)r)}R>U5DdhYom=jAo7ENdoUd;g!xpw zusPJ2iaJ~4ozfDLTcEb$BiMV4W-iBsj<3)D1o~YK0Q+r-ju3Xdow1**fGO%qhgy=| zETACjuNiyea*Xc++YvIe4~V5e1{A)W5o^Lb+I6Wz*bj_*&kN9ZphEWyAgux3N<|tj zh?^*Nb+s_b#U3wYB3rz;JEK|u66mgF6``nl8H388=-`!t{f-JO^VB66MCBj3Q|PY$ zj*#p^wo0NtX}^>{ClKY3BnHJea&3PED_A z`ZLXgP)YIcr7iS^#u(2e=o4>AQRr8Zo&#T}oxh3Z26_0E6zt~gM1P&I!~i`NQRU!1 z@Ew`GH)Z#Ra@x;Q5C37DJ^yVPFuXl_MZg|s+3Vh&1&l7Z>#8i|*6|WI`4pPu0pCKo zoe5_~b<%hO((SMK)Kw`gPRxKt-^#D+gF><(3>Pwc2W`O#HFaX2bE5;X<-rV!WMJOe z0=522mX*z!%gb7M^Dv0>K%=xL#-0_aclbs!l~RDSmr@oB;hNhI*qNMq+ zRITxU>1W;uVDq-cG!WKG&9A+nM(d)uMz4V%q~&+|%;v-NXB;yNBeu*|2*c5Q2vZ+d z)76yZy77|F&bv6roXq(*u3XRNta`wr~#Wl+DLh;y(V`u1+++O-gAGuON&!(MhuUNg(Sx$$by z5WC(ZFH+m}VzCJAF81o?ve2XHIHdvB_;7QF_FgELqN7b%yanKUC%YA(V>jNmylqR{ zW!QQKCtcb~YGjn@V1YhDI)!8bFmn-@Vs52}KSXz)RAAPU`4w5?1>_ z(sU6VO&xvc#DFX1$gMTWy6zGv8fU$D^R7`%@O}5}!+aj4p)Na9`ngm=Zr6p=wg#GM zhmlF}JfacykVza@R@27}J5cG(4bymx&lR67UXx3WL|}4$#Hjj8q33BTF$a!@J+Y*c z))b#6k^tabX&LtO9lbYRQvki?#aD(|C4b>D4-IJR_WIf^2HJLBz>ZWP6%^rD9&!|+ zkO2d{EPMd_;&?0=Zpjj)Sq5IqbWNo22_dHH`SjwD?qCLbYp+@=8X=^ z>dUXg0$=p9wUCtvEMwC`2gKc9yB!NhlFDBB8B5J(Ntd{UHB0C{5z|@@`iIU%K<02XGJ8{8E^onJoi0bGma*@49`F4o z5MY}?dqK-!5z=AqME$cY*J*}Kvh)5&i;|D#W2gxr%luvoeX96HydC83P8ibSDkO)t z>?<^sx8EEKUKXIB`X`$xWC6c(_pSpQJY8p5d*-x_yI9&CehY}P16;(X9cJZ~)7Zfs z=!!om7XAw&L9Q0Q^rg96E8Lu6JCdIfqiyuLi=`hzAMzkJ>MjRU@||ELdjjlHKc;ii z$d2h#qzi;DrDjhH$AJLCunZ?)Nk4Q-Hd-H|pIGHH*wl>l9^9PNzreS;d9g$h5icW~ z<16GB{5|MvSPkz+U(sP~&V8Clu~s1ySqLSBE3Ef4| zDO?idAXSlxR%|iNdoPQi88Q0?t}b(RWS6ltkO$$*{%4WPxY%Sz)3g2zzRok@B@qtxc?QN@A(s!#qc~?Oy_7?5t|9#mTMJ_F5JH z|GgSk48e1f3QTFLr@HL}B~!^PNQMg`MjN`8?;m}Ql?}a_RnRppEt+%;E7H8ao)zN; zNZqy_wu6Eul+RgQwC&O_6@+ASeW=)^5B-AdH{GR9qCotehS^YNJN zZvG$niVh6)KIuc)eev3g(6wFCwvqF^-*w#W4r|ipJr7#Q%y4PLYB>HROV%ob!s7us zOEkrMs12jzj&E}B^NXqBS7@p?gB(4Ph9=w@(lif^*~X6%wkAK$w^~G(A@AxF-bj2t z^$P}cWo<(Od>ihV?pe`CQvgD~5H*4_ofrx7f5uq)2IX5x)6l-YChQb$T`x&q`;yW1 zCBTe(dj~=E!|GtW<{fxxO98$6J3#JMe?Jpm6VHb$HVy^vdMGzWU$+m6Ttocq5A}+5V z?TR`SIcr8)0h43bqZ{y8v%xNWCXZ(i$84~}`~=pn_yt2)5YjmyZUnN^1?a6cZ8X;z z&j69p_@H4W+DK{ahXD&p2bUi$9>UwyPO^n5eTNI+ z^l^4|W0;Wx-UgSZqGkn*kZa7EqOgd z1^|K=-)nyG=>UWpc6<`myo!0!hF7O2jo>7 zTU%!17elx+t7rN<5=@5x$gJNMgBCUqn++Qdmg?%$KzOBD_!1|~=>rGAJg#jK4%%3Z zUf2!YykLBFIJ?`1WL`nel;o=Vbqg|&G_fjrmMQ!mXNWZ1uEII%jp~S@_)_u}$4WjQ zYpd!SO{U7gc>}TV(P72Df|ZlbPFQSNnVn}M ztS;2n0p2x%`^srsx2Mn z4`NayAscGI;O#{}n{=YO+Q!;uz(#Us8!R}7!b^LnFcANYn-+jQ>BO|A%+net{%j1D zCVOC&dF#<}#VMp59`6IIK^dCt)=1lVWt!&kb1x!CLAIzKr;gmxR=r6xAFX;5W4SJf z83zmEk!q&!3Y?=gZZ>C6ZwAdpu&Mt^6$o7myTo8I^nZ+fb=d`}PF8If&Qd3YeM6Q$ z*4bqG#-4_#%f&cZ!?*9xjOD&%SK(9kvblTEpkpgCTZ^*LE(}6>=J~DGc3^c12UZt4 z+#ocPf%R*lnrIaw@Dg3IJvLmnY46@n#RGFzyOo79+Rxfe+yBbtHPeXRyn5JDN53>- zu>VO(z^8jHO#`dn%y2G?fhBF+%Zwd9^`#RC3>nKj^{xmr>*e28i*L$Xa{KG3{fhf7 z<^74U0iAZg?`ZpA+ouSJo7SuNs2hg|R%=E#9{Ruq1e44aSdIQR9naK!ba1E1W@)m{ zA5tZi<~Ve)=ez(WZ89UI2bD+8x!+627Jo+rZAWk{db9NC;&*W;pcdxbVV-Xt^1oF0 z%<}2on|9n;0$XCT?X7z@REJj|xMPJ4tg3){&F6~3s~bSP>u}T-HAsbj4a%PUz;Kda zf70w&%Q6fMrdXpEAr&I5U=RaWkjeT%&h*bXA8Qi>T~or(t?I75Gu@|s%Fb~pS8a>t^O#;v`1#HsAs$U`bQ#= z?!{Yjffo@@@{e7m(Q-5-5_m4^Inw_ zD1Vxk+j%M>`*7*9K0rpS{QqPE&)pJ9WlJ-CRte0`orcAft)2RVx!#K|V5sJ41b5pdp04YetlvSqh-IPi-C*62@pdE%PMnqJaczYE`QFI{;Nm6_CvQGsucSTl5hm%0^{mT_7lhk@ga%<*8l<&~BW( z$Px~P?r<%OhL_w?=<@21<~2cWUml?MtL0a`ftsZ9_=?%tOwsD!*4gG= z{pf{lTfR5~$-d#8g0)phK;$;>qMbqN)11-R`9Fd>pKxE_KasVoSh{Q-Ho$PHp>WV) z1$xvl9Bk2a1|BrI|*LC>I7rbD>W0pk&7)NBHj(#(~|z-9-5_7T|+vDh)q$|$T}5 z6vZbkfHYq0jqYab>E9wd;nVbqUJYDlBO6M(P#B&J9xZ{V^`nsqZajPMUi6XXxd~qG z0}*7Eud&RSeMnKVfe9>HL+SQ)iJ9~4Pm5i4@hROLCRi5UjcMcetTFP)TIjqbBK?4^>FK^sm%^o?vG0x|S z^ls#hl>RiXs_D6XRo)CreHj1AuPZ`KH7=~QpOk_WpLgY@uSuhkw5noCl}jHXqKT-d zW`}vz8D#8DX%DgfaaMTnGo2aN|I{rIq_^VVZ<`Iu30^hKwIagI2|0jtxs@*$SHYoV$eW>#LXsG}PY zb#RnQ>>AAV1PIu8u3&C=^HW2%o{2jK!}>W$w+tis$B1vN3q|zvmoU&dga8dkpw0$5 z-qOOZsV_rKxwL10Rf8Xe2IfP~k=J^dvq{!1M@wLTluR8z8SAw{x&Urr9@mDUYyXtw z19^38+kKdzezomKt@X-$t9jnbxIaV`kxdSds8niYS>&QQ!hXZPQ619NVl?upw`?@na&_MfUA|bot^a8l{Qo#-AC=0^) z&0j#6lFJuA1}BmR|M^AdNydw~{H5ECVlZ1Zs2!)~C5pM;~Cb zgL+xgJjpK_wrNf^WS+m1C>XdyvH?`u2ex&zyJ{S5JN@&6^}HS|I~>_s@ubz35f-%4 zW!Dx&Id}Aul7$hVX(v~vB>I?Vt&)oY*!UHHMPI*(G)(|(xOeEbq#FtVjuoH2s_68g zgK~u8S{Hb!A4mS=wcP+F`?n%Hf4t>BH2vo9AI@=~UvDMrVY)ncwQ^ zyS8k@h!>dR1l{TD8v&wBO-9Q>2Ev3OA5`5>#+(B?f5RJ@ zn*(O~gU3Sl&>Cp3lt0SYCvb0K{pnI>deFKGgU-Cc4zWzn>`G{dVtgSfppJJ{1w2ZW_H6h_- z1=*l5vIO{nBZj0Uzuf0}DydKVuYMo1H8|dN7t<2speSVf@TM!;tk* zqaGi6?$m}ha231MOTgrE%88ZCs85-vqMCOqVbYeSA~J2j!wG#;cw5=0U- zH4&(A6Q*6d(GF6-&4c z(tZj|-%aBM6#yVyO=+9DHJ25B6J%v}Uz%KeFlPA7umzFSvrT;+U?(nzVph@07UF5u zYKQJobQG3(v0CVLkT<)!Pc;YXcbfRz#PwB;8lS^4*6dGM)9@s)zwz0=C#FS+Mj87s zOwj2Yer5L=-Fd&Ozy_1gzet($9>}TnKQ{_j^I`!56}|TnYIn-fcWN4XAS2IRBK-ip ztTnL9HPAczXxkUszS;JZG|uAl;ddy)YkF?d%n%!Z6f6-iTS*;@jf`K zjkrxu=$e}5?@0^M(^C)FnPL*g3j$`BqKG*?7{a+DV;f7MY%HxrzK7Gt4w9g**nQCo76N1;R?*5}4hS9Ne+d9>Bb3uU1x}ySZR_Tw~ z?7F-h=|SQ+gdIJkQ8 z3QPK7;MG8+48CeH=+`tw7-cozKB+T1XehPWKnTl9xY}|-zu>IKdl`Ob9QK#6wIAj4 z?4-Tpd)kL{X3;At*s%(WW3^f#w=PzJT2|UOhrj}ROB}JFVS=9T@mZYlb6Whqj={t0 zyL_tzbb4hw_Ek?=xfrOS446;6;)0bcr%mT(gqIaw_9bfqQSeE{8Mr*t4ma${mMwR4 zeJ!o9>B%jP=82oD<}#oMGrfUqKJpQOLFVS1Vi>PUa!>%6!M8k3Ter?~ltDmU@|PYN zkgbc(jwGpc!$pw<;>&ZWUq@II;>xEvM^D>y+bVR=kD;qF-%)Ag1X0Ujr@;{q+`tF% z00EFqOBi2yHLOnmpV61vo2p39o3dh-z5hM=lti_hs{WOc4xmWo9T=F?fRPCuuZ`JjDoEI$r**fJ=Hb^PUav-t* z&=c8}lQL7yj2{i1T6D^m6RsI&9%OH$`emkB6BH1gv0nHD6yCB-$qHY>_~iqDQVNO- zuIWpl;9dV)=z*`#32eVR5HQ)Tzmloo69;FH770fIW2yhO@Dcnw6{0E1bR2odoBf;nItB!e$?oD6pWYIZQFnYS~#eQ zt{Dfxo0^)n!1aOA6r-U*>e`_40bEdnu4iDBVqgrDFgUo1fh7}v-AmS@#j3@-b{5!$ z%k1Kwep}V@!z45l-d7I&CtM@@1fDYw*ihaPy5wB=r*Yh)VN8Iz@R8dBMxlVO!#5t)POK`57Y+InHY7eIFuMaM@l;1$xj`S-i6$X-mBU3#kcUb+;J!i z>!Fax8?ucHNcbf|ufLqA855i;$(LgG#JHuG%u>d65~F^&PXxi6XQ1R7G0b;2Wste5 zjyU`2*j6%zQkH?Y`nHpU(y>&|;@*(I?UaSp15h-6uPo-{{8K5#=-tfj$aS4Db4iD8 zS4P@bPW9_D1oddPNqWD`D>Z%vt9Eq5s|G!KVX*^$9imGRpz)YM&HpKd3Yj|{h zdnOZgbmtr>)kDe(tlx%{>>bG=C+kOeiU8PPo#qGJ@+YpZVpjB~SCQ61&d{xATsQ&> z#`0TmF?N~yWl$r|7dY!E+pyzY3v%ZbAgdKOt_-bN$P}H_O_;9d!hN9G5U{R=`EDoX zHfg=G2`YNz88>1Bbw10W&%F_6_>4CV6TGl&+(@bEaq0;X!_PLi9SFC{1z^4TYp=0c z2zTHv1#hVFgcEdvRmm?sJnWt)kmAe?jW7ge280&st{&f&7uFPNKQDtD&)HC5 z*ArFprg30dFVaN+*dVRjlBnQ!J8x3fx7(dfb2uh1*2WPBu8Jf z{6LB{P;G#F?T4{p6kZNlVU(D6$6(E7uS4hNM?8}?dk%s|RFdTYn;_`>WRu>jHUjB( zf|1QhgV+sr3u8z{NB?=)WshB56CKaJ^jo4b@x3ucU%4XGL?OR*!pktPYYew<^oiTh z1d!ubKjlMC{Xfyp>I5(I$?Xp(66@)_2WMC78c)g}i7?Ku|#v%16fB2M~nF16s07;Ron+Q`t{Q+W&~z8>yk7&fFRM z7rhpsN6UBLus@4+Mo$TDc|#63WIeq9>MXkn&2Fer822#-8b8c&gFm8XpZ&t$JM~}d z6osza82c^uP44UyK?L@^gcD3+a#C!Rs(=Qdsqo+;k3DbzB*MCBpL-Q{P5%s(f$0L5 z#-azd8(9ymiaTG+xfFEIKUQjrXz>d>;p3^rb)*QT7<4mI&oi?+1g312~dK$eu{T1}@_{Vftw8Z=m zp|JzmL)tDDg_lPdYwJ<1KP(7K;#@wA(DCc64*EK%R^?p0GnO-cX<-2zYeGnr=YZZg z(S=c_sIs9UTwfKO zEJ7hU?Cd$P$d(lRuUq+YEV`;i2t5gG-PxXOWUslhuLryrt`Xk+s>A_m)_xM~`kLau zE&hX8%4g3#Gv{wKg=_{Z0i7p#?wa;2z}=SEwZ>sf*09oKR)}n~_sn=ua5T1l1IuhV z4Gb=+ztLR(JG`IOgj<~AKmCIXykM^1yc^Q&a(=qPvk-a- z?}l;rZFa-B)A0vdW5|XC0U++<`dSmh6)3Cw>UV?Yab3ou{?kA#3!chmpLvlaQra1z zSFrNt0{aYK2z*P-pxvBq7R^4##ik64MgrJ3N?F+0;Vt!AlyOMHs8N8ocFF1Q9T+v4fZaqxz9U z5PeBa9P4*Dj`ifWePG$V5`8Y3WAPY){H`$yXu(L%NBZaGe2|u+51!|AG>e-5;OVX> zu8wAFAew59B2u<~9!&TZPlp}Rfg2z1hFqda?au@LG@o(N`=F;Vk8S;bz)jxYqnQJ* zkJ;x?SAnS!fZ}HwqF;Xk=?3(1e}TZ5Cg+gndqcOq37mJgF!roIby3W2WzRnSf1qH6 zL(wg zaX#qN<`W@&j6CGeof(*p;%(D*WXie6ya|c^!z5xe4k$Mnw>Kv{Oj{4A-hiIL(WV@r zF-btUp6fBScKN^PmW1CVlCG%OU#b5$Q-OVmo*FmU5DH*TPG+BJcIkJ-3ZSNJHP`Y2 zQ~u@{tWFBh+or#%s9+DjGfbp!h#jVA=55n5HL)!IUS_EO%QE{DcIoO530LD{C-#E+ zZP-`ZhR#rja9Xc4w{CuX?|;ySaugR+Y;P|ZQ}=<9kQkbI?>=4!_Dlr=m12y6y5gLp zVi41bF~F04+?Ubqk6c|L(hloYFB332LZ{!%)c*+^OkXD^0(bF0PnD#u4|SMI?+0mr zNpGt>cMk67Tw4uz*9*biaYx&uZJ%rV=k)y1huk=WbQ|)Im%hg@#zu*bn;2^{RAj+y z=?lm@%{%k&+@gG}+bqG6uwx>Om#1;J$;Fz!NosEV6+8jJDdbl&PXeg@M0UpMrhi>< z3;L&07a9NN5VwuLVdAF%??a0jYEq&OISPEp*-SZ~bAtBYD2W7tQr>@4(5oZ?pZA0a3$J06KM2!GL|UjdOh zVYo5d{I`-j97w>0=u)vy`l?b!lexhKbLv90_W;v#Fx4}{f#H+SZxF%QmhGBLi=aY^ zR5sy>vll_w6W!%XfL+4E%Ch9Bmg)|jft{Li{ab*gBbhXk?*aQe zy~Q$is?&MRnNfE2w5jxDCpSg@RFe0MlC9}#$4Z}V#{y(`e_tVF=f2Eb?dC8``5k~k zs;p_);Yo&Kwr#WL71^%(_j9#N_Bf`4RmgJ=IU`Ws#+v@UDRGR*^m4V!#a4}+EGkW! zkO$zrF;5`M=P$Y-Q;^Ds&t?|15e?nmw0lw1-{lwgU64VpKlI$$xUX}__4i^6{AGND zt|dQ&C9z<@Z)A$P&!dn*BFFLRx(*!Z5~6VCGNBWP}`qbt+&#aK&$R z$ST0xVm1;Xqf?6N9|rJq1A~6276390EK~+!nnofWGP77E&Wy%jllkL_1-^ae7s}nx zThFlZX`k)x_S#_$cWlq4uLoJc=g@!*Y_DuD(3FCSUx0P>hX!r7PI9VPLEVVuuN6|R z{%p4?J2&1K=~~ylXXQ(tC>5{2Eio^K^T%R|@+$*)rlaV~xSTCyC$PE10QH`>k6|)J z$XtBlSXblKcH^^ae2s&Oj}@ONFS=8-ZS(61upOv814~n;xhXw9c>IXYJ=(qqJ{|Z; z(}9WDI+K2;sA{}={X z)vw^IFVaF$ps@Pqdm*wzNZb04`b-0SF8Bh7C8TVBMeqN1t($hvA~QMN}GZrZyaC?@bG7QF1@nw2To zy~D07$lB~VDmLy)eVs+k%a=9@=SYF;j54p{nem_vehq{Zx!>yB55KF%b`So04Ese^ zd#nr`?7^IZsRL*B>kIZ_XFo@29mv)TRSnd+V*F(}m_~Ys?|7j~WV#DVPp25$W6aNk z;|gptn!BwN%f~sEm?PN$kYO#~H+*YiSN9#x`d;vqjVC&c;2*ZOqdRMFS_F7QezK4H>3s##2boy2X5BJ|4O*cF+?*(=_R!*!_BYwSaa;XI zCR{r##u=@5r7?SzjfJP4)wv*-*)0CPrYPRB?dT;X^(Rx57?WL$2Wc5gmv zgNT)h$&wuf@Pwe_i}4AXyr1sNG2IO1cJN^#`WJ=OSQDOEpgW0W?7ghl{*q$Z(Je_&Y5p-_Z3Cw706yFN+e(bh5LT9e8#tB196Qf}` z$LtLXTHR*3L$54K;jy!<&KksXZr)R{JjQ2|L#PGQ{B(KSCaxZw@_D!1FR>l=Bzt1Q)N%k-8?I@^^<8~PXozM`N5l9ZSp6os90?X8 zf`_8{pIfgK;q8!+-k6pp^*^EQa|)Pv{)&PTU0x&kRxIVb+Td8btOlbCVnXqJfkZ{5 zrCP~^oJ{|2uoybqg-4jbwA-}uer;(Mt%Db;!$AKH8FG@3?ct?^5O0YGtG;a1fL(*A zR9;CIQ!|V){6f&zVVTFu`bLNauH$ZdT>T`*vW}_!dbM z&(gFGH$D#$FDx-rTfkl^8lquIe3z_kHZ^VR$)WOEM8OoW1_A zOeH{g2jWD^gwybcp8ffr9?%mh9plhJXX88u7u!ZV+Ka)4Miq8e2s}@ScCnU0! zX*+_gg~lMs292jUMB#6~uA9%EynV1^0m=v`l-1&JK@A;OFIZu>&H`|?2$0v5z%DEq zwy&r{u{8TPqr7_)7PD0=Idl#ysKra~a+l_(PN->rs`aPM*EVw${=A0cOivL`gCbU|`@)eBW#)Y@ zjWuwSi$jd{o32q8F@`Wy^CwKG@8&=lPV0gDf6DPKS+@0HUEa6CY`LG=JqrRP96@bU zRuUj52n0g7uP+CwKF{yp9O?N=i7|gW6D@IehZ2Rdi7~U1DJs=(fHg;O9W_^$9UM|g zI1|nXM@4&@J1XSI33~90W;09yJ(ZEKb)*h~0V6hy*AQbI#Kt~47d^JYJwNT3x?S!r zNC$LppEK^e8}q$BtD(F<(-2cFWOn z1@zPRJp|Eq2TcFES>3h`TE6x7(`=-IrX)EgC{8^E^XNz5Ueqe9C8kU~aKq0XkiNlj zG^Dou;BkFPm{8zw)AYKBEmQkYTyNAV^Ib1)J3Pd*()A8`Wl9VGA z<}VeL#Z>JyQVM#vX$&g)HPqAn1P8^W+rG<$3u(hb@U>F?F{G3TALpcOI-f$&*gU5) z_HjIFKr8G2%d`+{xTmbqfO*cW-Wun2?#p?Od&izhsC8qx{p{(SWoLH2e)|w;VG^{W zz%tf|9*db-ze`9m4#=d9oTo?sCWbLs55TblFg$Uha$HNw&~pi}kB)(>KHEgak2aOW zCL3d`m5U3`*fK={5sAHIz>Ci6_VT8>{*F_i++6=xrWW#m z@le|*VDGe?rR=Q{xOqc@vOG%XD3X&+ctS@OLLaI-^#lqL_*nSlAfMv4~-Knl`ZykC07}lh|o>(tzxAM{NjpPJ^OIGWwf7js2I}!B&7`gIz@{t_tMMT z$xk%Cll(Q_tLjAMdN-J!h@GXSnt(TO=ipX?o#tF)99KmPhB5U9Zcyq)HMOwjI-pIr zYP=8LHuV8KA^jG951sd^=^XzCk1bQgoCBZLeq#>>b8FLs$2%<+f&q1!L%xrOO%X?7iS3fNH!R57xRgM>qe|(QpYGH{5r8k@77=)dM?7unCeOA0a(a+INV+Kd_%ON}(@C zoeczPp6(Oh8p1T4;>PwLKhtUJJ2g9uNk4^&PlQEl)Dtw`hP9vH%R-3g#vq;Evj+u4 zT8Sd#Ammc>Dx%+&{(>}ar2z(>L!4CfEi~IOb8k2p^;hTzj~Za0YhY+gXYFk_CF67e zI~oXwui`?uEN^?ku_JNXTW6OYD}#~aibDlltwcWwRm*QMcE?af1-|`_bqE5e5@<-X zpmh+diuh@%0A#-mJk6B2e)rPLPJ_1DAFnars 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�fQ2xEPoiv&N8q(E-HL7 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¥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