From 1be54cfdaf8366e3a2258d827b1cae7658a3a084 Mon Sep 17 00:00:00 2001 From: Hekili Date: Sat, 22 Jul 2023 10:22:30 -0400 Subject: [PATCH] Frost Mage: Use 'freezable' in APL logic. --- Dragonflight/APLs/MageFrost.simc | 19 +++++++++---------- Dragonflight/MageFrost.lua | 12 +++++++++--- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Dragonflight/APLs/MageFrost.simc b/Dragonflight/APLs/MageFrost.simc index 4b02bbacd..6f1f00907 100644 --- a/Dragonflight/APLs/MageFrost.simc +++ b/Dragonflight/APLs/MageFrost.simc @@ -3,25 +3,24 @@ actions.precombat+=/blizzard,if=active_enemies>=2 actions.precombat+=/frostbolt,if=active_enemies=1 actions=counterspell -actions+=/water_jet actions+=/call_action_list,name=cds actions+=/run_action_list,name=aoe,strict=1,if=active_enemies>=7&!set_bonus.tier30_2pc|active_enemies>=3&talent.ice_caller actions+=/run_action_list,name=st actions.aoe+=/cone_of_cold,if=talent.coldest_snap&(prev_gcd.1.comet_storm|prev_gcd.1.frozen_orb&!talent.comet_storm) -actions.aoe+=/frozen_orb,if=!prev_gcd.1.glacial_spike|target.level>=level+3&!target.is_add -actions.aoe+=/blizzard,if=!prev_gcd.1.glacial_spike|target.level>=level+3&!target.is_add +actions.aoe+=/frozen_orb,if=!prev_gcd.1.glacial_spike|!freezable +actions.aoe+=/blizzard,if=!prev_gcd.1.glacial_spike|!freezable actions.aoe+=/comet_storm,if=!prev_gcd.1.glacial_spike&(!talent.coldest_snap|cooldown.cone_of_cold.ready&cooldown.frozen_orb.remains>25|cooldown.cone_of_cold.remains>20) -actions.aoe+=/freeze,if=(target.level10&(!talent.comet_storm|cooldown.comet_storm.true_remains>10)&(!talent.ray_of_frost|cooldown.ray_of_frost.true_remains>10)|cooldown.icy_veins.true_remains<20|boss&fight_remains<20 actions.aoe+=/glacial_spike,if=buff.icicles.react=5&cooldown.blizzard.remains>gcd.max -actions.aoe+=/flurry,if=target.level>=level+3&!target.is_add&cooldown_react&!debuff.winters_chill.remains&(prev_gcd.1.glacial_spike|charges_fractional>1.8) +actions.aoe+=/flurry,if=!freezable&cooldown_react&!debuff.winters_chill.remains&(prev_gcd.1.glacial_spike|charges_fractional>1.8) actions.aoe+=/flurry,if=cooldown_react&!debuff.winters_chill.remains&(buff.brain_freeze.react|!buff.fingers_of_frost.react) actions.aoe+=/ice_lance,if=buff.fingers_of_frost.react|debuff.frozen.remains>travel_time|remaining_winters_chill -actions.aoe+=/ice_nova,if=active_enemies>=4&(!talent.snowstorm&!talent.glacial_spike|target.level>=level+3&!target.is_add) +actions.aoe+=/ice_nova,if=active_enemies>=4&(!talent.snowstorm&!talent.glacial_spike|!freezable) actions.aoe+=/dragons_breath,if=active_enemies>=7 actions.aoe+=/arcane_explosion,if=mana.pct>30&active_enemies>=7 actions.aoe+=/frostbolt @@ -58,7 +57,7 @@ actions.st+=/glacial_spike,if=buff.icicles.react=5&(action.flurry.cooldown_react actions.st+=/frozen_orb,if=buff.fingers_of_frost.react<2&(!talent.ray_of_frost|cooldown.ray_of_frost.remains) actions.st+=/cone_of_cold,if=talent.coldest_snap&cooldown.comet_storm.remains>10&cooldown.frozen_orb.remains>10&remaining_winters_chill=0&active_enemies>=3 actions.st+=/blizzard,if=active_enemies>=2&talent.ice_caller&talent.freezing_rain&(!talent.splintering_cold&!talent.ray_of_frost|buff.freezing_rain.up|active_enemies>=3) -actions.st+=/shifting_power,if=cooldown.frozen_orb.true_remains>10&(!talent.comet_storm|cooldown.comet_storm.true_remains>10)&(!talent.ray_of_frost|cooldown.ray_of_frost.true_remains>10)|cooldown.icy_veins.true_remains<20 +actions.st+=/shifting_power,if=cooldown.frozen_orb.true_remains>10&(!talent.comet_storm|cooldown.comet_storm.true_remains>10)&(!talent.ray_of_frost|cooldown.ray_of_frost.true_remains>10)|cooldown.icy_veins.true_remains<20|boss&fight_remains<20 actions.st+=/ice_lance,if=buff.fingers_of_frost.react&!prev_gcd.1.glacial_spike|remaining_winters_chill actions.st+=/ice_nova,if=active_enemies>=4 actions.st+=/glacial_spike,if=buff.icicles.react=5&buff.icy_veins.up diff --git a/Dragonflight/MageFrost.lua b/Dragonflight/MageFrost.lua index 08f5900cc..6f00dc8e7 100644 --- a/Dragonflight/MageFrost.lua +++ b/Dragonflight/MageFrost.lua @@ -654,6 +654,12 @@ spec:RegisterStateTable( "ground_aoe", { } ) } ) + +spec:RegisterStateExpr( "freezable", function () + return not target.is_boss or target.level < level + 3 +end ) + + spec:RegisterStateTable( "frost_info", { last_target_actual = "nobody", last_target_virtual = "nobody", @@ -1496,7 +1502,7 @@ spec:RegisterStateExpr( "limited_ice_lance", function() return settings.limit_ice_lance and talent.slick_ice.enabled and talent.frozen_touch.enabled and talent.deep_shatter.enabled end ) ]] -spec:RegisterSetting( "manual_water_jet", false, { +--[[ spec:RegisterSetting( "manual_water_jet", false, { name = strformat( "%s: Manual Control", Hekili:GetSpellLinkWithTexture( spec.abilities.water_jet.id ) ), desc = strformat( "If checked, your pet's %s may be recommended for manual use instead of auto-cast by your pet. " .. "This ability is available when your pet is summoned by %s.\n\n" @@ -1504,7 +1510,7 @@ spec:RegisterSetting( "manual_water_jet", false, { Hekili:GetSpellLinkWithTexture( spec.abilities.icy_veins.id ) ), type = "toggle", width = "full", -} ) +} ) ]] spec:RegisterSetting( "check_explosion_range", true, { name = strformat( "%s: Range Check", Hekili:GetSpellLinkWithTexture( 1449 ) ), @@ -1514,4 +1520,4 @@ spec:RegisterSetting( "check_explosion_range", true, { } ) -spec:RegisterPack( "Frost Mage", 20230714, [[Hekili:nVXAVTnoYFlExa1e0wv)iV6EXb4U27aAXEflG7I7BwIwMowBKL8jsLuxyOF73mK6bjfPSDBZElwGTjsdhoVFQmF08ppF2scNo)tJhoEYWRhDH)WBMm(YlMpJVBlD(STKOhi3d)qkzd8))x5zmEz4)w8OTKDjzKLioyzf5rWJwZ5Bz)YBEZ9X81fl8JY28gw8MIecpolnkNSIJ)E0BMpBrrCc)dPZxyHagFZOlNpJuWxNLpF2S4nVdWC8YLuj4uw08zi4VE41VE0f)szyz47ZsFbqyayR4XP3xg(BzprZldJtHh(z4FxvgMMXxlExmRmmNsss2vgMba8U37x(XYp2GYrcu(BeE06YWrd9h5FzzyXwKo1aC4ybG)oJwgUKUOy1kFgaZs)ITLHRYGR)Z0nBZYjjLH)hs(wLdF5RhvDybAbICBwCcqx8840hOCnqhEJcOamRYZ2aNaKl)TYWK4nXWDgehrdsiPruKrFcaIeXZYzvIGK4Ohkd)a(wc8SNOjj6xHo1iiEbN3c0Kxpwsh)9LlldPFzlnpEdnLJCx2wubxDo(Aad)ucLXQUXFfjRFQme15l9NdedJZeME0vKIeo8JFsykcKmGM5ZIYks50C2wGmNpJMswKqxo)FmNdMjQW9eqS5b)bLBa0eeO2N0IxqNhi)LaKiKKsG02oAjdp7fgNnkheV5XejwEKgqtPBIr1WDtldVUm0RmCqziJYdwKLwW85X08jddgVnQmC)EqEB5ytehdeDG8Zh1CiLrZ9RV3zmWoiIJILgIpVi1jTtYOiTFPd(UVJc)k(FZ2Mtb31fKUAdsEejLgedQeGiJmf2Jpjb24w8Uij(RFLKV0MgZnsaCOiuwHbKwKLuXeOCOM8TITkrEuwcegHhWsjBRf6cvYzLHGG4XG7Jwcg)GabuRmWpAJuxQ8o4M)knnilFrTjqdUBoulQpx14geMzRcqAOF53aTl8(esumjjGTn(bQKC4K87Hyfj0hPjsXB1p(YAtSbnafZcilxQj5QO)(L)pReHQjGBhVEjbPstv8Bt1IeAug8QSNs9v1a(qIGL7eOP59TIg4TBiXPOTly6Ez)4rbYHgA8glcBEPTm6zMsZBneMkYBPOeUhbTxL(rs5(i11vYOj40S6BHHb5ommDnS7TybCibRmZydMzCcMmAANxSH8LGQxEUQHkL(vr4TREgeC12wzRwjyq5TzjwWFo8nCk86GNi4HrAscmrrA2JeuwC9FHKfYJkDaGcScEkwK9oiADCsY)FevI8cncRBCkSo571DC83QMZKvviAWwSouJmMJg2p9ehfhbLpHINiUGAUupavDytTGovcJwAqtljU3(YlEQbX1OOGksvcxvWinZGws9qwtcZL14vXcwLlzgSgtGfh5FJUwoPipFNG1CNf9BNgfqSihEuG0vOwJGK4GQ3Vc0YigalbHrxnm2jt35z7fz4fQhIxvZZZjGUkGdLJlb1HROEKerZccI60k59IUzwSK1W7iY88Tv9GZqIJCNy1gFCDlwwMtUplLfSae381cC5oxZgskXFlQvar)KHcA8a4VQcAONPKmg(e8gUwnErBDSgHkmdD1e9PVwz2K9ifBntwum2ytVfflTZtYYwMua2Cnvp0PNwpJeeXr7cEKcMHT0fAeg8e0SRTsBBIokA2fTYtPjCWxVG1nOCxyc2qyai7e0cA84eW1iG1KSl2t8CEvh6cAU9DsFjqbp8a30JG3v9fDwN7sJq1Vk8vNxpxfBcKERk3UAO6YYyYqyRIVFnpOjsbKK8QHTkHTz8ktrt)FJ4wIjUKhVv(WpJD3JdaQm89XSOSCWHCzgLjM)s0AkM)0r8NxHccooGac)fabTGgrkWHNWI3a)kKFnhE7tX81GhfoMdkBT4X4ijiPlRgTaedaN1q1L6RLgtO2MkuBwClVv0aADj4TXqASI189UsfiGodGBzJjqAEXcfFWQcuOPb1nAqbceA(dG4XakTkisqLhl4pkwEVWv2wjenkQ4CQ4UnHsVpEiEpJJgGyWdDq5Ibb0Buc1EFfggDAnqRIixD)CsjQDwtzJk2AEC1(F0BzxgK9yAQ5Gnn5OuTlQtAD6vh42D)Get)IHEj1EOthfm4UEH(0xQJYISR5M6VJ4ERh(mPhEwALbPVPfup1cPPc6uPS7S)9QvHiSJ7wDKk36yIeAG0eWwVFgLP14U5VdnFlL(WANsLATKJgQdNJzHub2H9pTvz0e3nr5UtnBiskSDogv13kkGhjuSCEZr(Puj72ebJGqkAr1EbTUvPv1OREz1fbyvuOPLvhh2BpyCsvDdpVGgyrbD2bNmPr35TqyfLN)9BE7cVANOjNSb4OhMsnmgTzFe9w7Y11RD8hotjCITv5ovQnlHlC0uJ78L9gBS6L1sXIT9eTt2vk5qTI4QmXtOvKMFR3knQHYFjGh5kTeMjAokPp0F1evcaAWQeOqrrUqDjS45nPD7i71zE3P8o22bvw8HT2bV0SEUGfjeMPo4ktsvATzukhCkSTeeO61QocxwwoA7YQkHpgBgHxTYUxuTjUxGg5)3c46bxywgwmnPGNTb7aumvgW5H5x(XFnofEfU613LLc3L41VOtGyaD8mBVOoobaWzJ(Y5ITmAHQiz0tJIgzNIuthAqt2Yu2svhaRnbl7G0obAnXPdz33jLEPDSQ5XBGwR1uEK4TzUpg4SZ8G6irDW()Wr43bNB1IKDIUiJ)Htws8o5zcVxzhVQjWnqRT0)My96NfJ9B(bg(PxmQvoNbsTwx5rIxZInnn6Dul6rI9VtD2BFgc65aNFZuA5h)GW7er2v1ndIFsmmo6cIZSiBvCcToNjZV5RC4LtFJ531q5hTbvDn5VkE1u9863nDS9J0ubv3ZmDes1vhAQ635sZtbe08DTO(qZYSEfwG10OLmvGm(spKWaPrFL8dkz6iBSX1EdS95RSFVjGt864kDWlNXv4yFGuqwrPRpKGS407DM9VdJ97T(ny4nORv45MxBl44LoWvX(73RUuI7Mk(NxobVc11qyGCv7KFWOwHN6f7ENnWIKC)(Ew(Qxpn6F34lDF2kigAriJBkdPZZu51BRy1gjGKvp3R7xUqlBOZDdmlgqZwWqo3hpBBPVtDTW3omyDhchploWYw11SVFUODVQDcF7iB(cvli)5Ip8g4OF5)CyqZymNeEnrM(CgmFRgB3CxADMp9spNBV)U6pJbtvKyOMY4JhoOHN(Wp9g03gU716RZU3VBK)nDnGAOUt7ILBiRZs13VFqpZNXQtOO33gXT9dUFV11MFNYkZ3V31um7XX3mZ4fTbTAmN8Sgg74sb0HH1xrT1S4MhXCmd4HQNwXDtg6Dqe0UVetFlRLIup2g189q5ja8nlfUrBPVowpJnn75y9MgOTENCvfA0DhQT(99Um597Dcu9IK9Sr1IN1DbYEi7E3WEWA1sJRDguwxC1Hmxv85MSUC5Ti)zxub4jJX802a8TxnS8J)Cz4F52GRjZPe4dKKtnTuVvTUB5joOjc8IFgy9)5xaEr81eHIzGIj5uXFya4Nj)JzpGnsSyNkv(k5hmV4bBti7W)Oca3kPOkld5DSFfO667VNk)433aqcsmmYzYoF5fBqUI7c8mLutasmsJyr(fOLKvf1ESc7b9hlxS3jH3f4NJpQob7qwXMn0CfxrZxvHFDC3UB7oVPzF2MVXyh2D0Z1RT28f6BQwnEsDmgbq7ceZbwexZCKX3nAO1t1m5xL80QZi25HWi)2PJtmm7yRyPDKVoPa5FDhkcdg)LDAoOZw61kswTOid84mFUJqbGBPZLoRvErtwK(kx3Ab)wkJ6cVJSmbg3SkbRxHBwW6L3ZDBC1QdUaVDxsXrgN74QL8m5zSV3BNf0ykE07hUhE72XTL3OYykvYBBd2M33X02FFlOg8P7TFv41UnwnDdNyqC9oNNUZ9WZ28)ukc0y2DE2fFvLMQVTylZDXusQ3pIQtRRLcJcNZSmKeTMXSV8x4ONFA6FZtRaN9f7E74H9562JPPxpZA5G11ZudUBTS(VjVZQh2U71U(DM1vl9p6TSA8ReKgn)txDHyfFZ)F)]] ) \ No newline at end of file +spec:RegisterPack( "Frost Mage", 20230722, [[Hekili:TVr)pUTT1)wClGU7qtu8h3hjzNpGUKoGe01vaNH9BwIwM(S2jl5jsDxCGH(BFVhP(GKIu2oPx7g2qbA7j(4JVV)I0Zhn)tZNTKWPZ)LXdhpz4nJh7pA44rxnz(m(UT05Z2sIEGCp8)Ks2a)7)sEgJxg(xfFAlzxsgzjIdwwrEe8P1C(w2BF1RUpMVUyHFu2MxXI3uKq4XzPr5KvC8VJE18zlkIt4FiD(c7eW45Zif81z5ZNnlEZ7amhVCjvcoLfnFgc(lhEZlhp(TLHLHiqLHfBrCvgUklVmmL(uz4zRYP0VqwKqpRmK(5T5ugdiL)uzi)jk5byJRJxXJtVVm8xZEIcBloTm8h)B)KF5hl)y9Hm6sXH8(S0Z4o2YSpb)3vWPMXxlwlMvgMtjjj7kdZaaE371r5ibk)vcpADz4OH(J8VQMb0aCOKb)7mGVwsxuSALpdGzPFX2kg9t0nBZYjjLH)ds(wLnF1lhvT5k5YSTzXjaDXZJtFGY1aD4RvafGzvE2gPCfewjXBIHZmioIgKqsJOiJcI3vKiEwoRseKehbs0pGRsGV9enjr)i0PgbXl48wGM8YXs64hxUuOWO5XBOPCK7Y2Iwrv7JVgWW3LaQZQt8NrY67kdrdRL(ZbIHXzc7B6ksrch(F)fH9oqYaAMplkRiLtZzBbYC(mAkAKSC(FEohSfr4A)s7wa1zG8pcq8lpLaPVr0sgU3jg7nkhKC5XejwEKgqtPBIrj8DtldVPm0RmCqziJYdwKLwW85X08jddgVnQmC)EquAzBteBdKkGOXhvkiLrZ9Rp3zmqfhXroUH4ZlsDs7Kmks7x6GV7BRWFI)ZmW1cC3xq6kOj5rKuAqmiTbIeOQ(f29lWg3I3fjXF5lK8LNMuhWHIqzfgqBrwsftGYHAY3k2Qe5rzjqyiEalLSTwOlujNxgccIhdUpAjyxdceqTYaxKnsDPYAWj)fAAqw(IAtGgC3SPwuFHQDlimZwfG0q)YVbAh49jKOyssaBB8duj5maDZRIpQjtQOS(LSFLOxvTzAWDKixkOvfz2uhijeLblL9uQVQuZhIlVCNannR3Y0WQBiXPO9gyUDv)4rbYHgAPgTiYOx5KrBKqc6PkcVKA8XtSl3Qjm0S(AHHbHNnmHmS)SOVoKWsM8PbZmobJ3pTZcBiFoOAXlunRagveM56JuyuBdKTALGOLyWIF2Vp8cSl84GVugElefrJ7WGWPzpsq(7MNz(tUvPXhuRrWtXIezbrRJts(JH9fXrBeaV2Pa4Kpx3X9EJZdXMtnpVGgO6VoAOT4iwc9AioBHWkkVOlwZj7q6wiICGwnqCHxTDehTl4rkaHb43kJeHWUidlocOMvX3VMBasRCLvvoBWwSAwuYoAy)6V4O4iOYl0CkIl0ExPhmToeVwaYkJN2dwZQwCUUZ7QMkr7ScQicPprv4tnhIwI4q(vcb8As(9ugOkKKjw4jQc8FTU9EsrE(obr7o)7xpnkGyro8PazqHAzDvAvzscqPHyOXWPcg7KP7849Im8a1tkPQt55KhPjbCOgDjOockPhNu0bHGOCN)3wTFx213YsEoVJixPz1jodLpYDIBBu4nTyzzo5(SuwWcqqYxlWL78EBiPe)TO8geQtKrMoa(RQQgArkjdBPvCc3Ow3DBTT6fCpYm8Cte2(AVzt2JuStmzHYyZo9wOS0cojlBzsbyn1ujtNwy9msc2eyRLUqZRGNGEB7R3mMO3w0(nLMWbV4cw3epDHjydHbGStqlIOMUaCncynj7I9eFNx1qUGMBxt6Lak4Hh4KEe8BQpOZ7CwAeQ(rHlDr9SASjq6TEE7QHdMl5ALCjBZ4vMIUALSkIKyko5XBLF8tyZ84qLkdFFmlklhCrxMrzIXTeTMI1i4iYYlqbbhNhaHFgqqlOrKcCwjS4nWFc1qKdR(umFn4rj84zRfFgNabjDz1KeilxIJwO6q91A5tO2MkuBwClVv0uADj(TXqASI189UwfiGodGtzJjqAEXcfFWQcuOPb1R1Gcei08haXJbuVrfQeu5Xc(NflVx4kBexyOw0J4CQ4SnHsV3EisoJJgGyWdDq5IHd0Buc1(HfggDAtrRQpxDxDsPGDw3CJk2AgA1EX0BJxgK9yAW6GnW5O8QlRZQD659D7UFqIPFXqVKAp0PJsbCxjqF6l1XBPucD)DC3BnSNl9WZsRmi9nTG6PkhnvqNQBDN9VxTkwT(3EpfnbS17ztzopUBA9qZ8YAZrwA16qZAPcSd7FARYOjUBu0D3O2qKuy7C0QQRkkFejuSqDZXaQuJ62ebJGqkAd3EPQUvPvvFREy1fbyvuOPLvh32)VL5)OAz2L3Tx7uGCM14e7PYD2wBglx6OVh3Pu7n8z1I1c6IT9equ2sk5qDR4QsYtOBLM)Q3IrQHYFjGh5LCjSK08LsFO)coQea0GvjqTKI0L6syX3BYm3r2RZ8UZkESDmQCFj26y8kZs(cwKqyM6GRnjvP1Mr1EWUWoxqGQUnxq3ndAmbTDzvv5hJ9RWRUeVZQUBUZqJ8)vbC8GxoldR3MuWZ2Gnjkgjd48W8l)4phNcln5TLHVllfolXYN1jwnGoEMTfQdLaaC(OpFH4EhTqvKm6PrrJStrQzmnOjBjtBPQdG1M4PDqANyXM48YNfk9k7yvZJ3aTwl78iXBZqFmWzNHbzIV38mirDGt10tgi1wYTo6EhkQVAw3fc)g0rw9DyNOZ84FZjREds8nJ3RFwu338S4w(6Fddu2lg1Qn1aPwls(iXRzLZMg9okS(iX(3Oo7)gcMu(Xpi8orKDDDNT4Z5HXrxqCiH0ii)(L4OyYwf3Ep9m)Mh0Xpm9vMpHJYpAdQ6wnEr8QP61IC30X23stvFD3Z0ri9xTPPQVwNMVciWSkWxG1)nnAjtfiJ3VIegil)lKptMPJSrX34nW2JYz)EtaN41X)5GhoJRWC(aPGSIsFRibzXt37C7VUK97T(Ys8g0107cZJTfC8qh4QxK97h0EDjgOqvX)vHaf6RxC4D(alsL97756U96zSd3n(k37TcIHwey4nYH0zd)419DB0sQ6CWaZm2A6odjwF8LTRsFQRRrVdtu3WHoBmWY7rqZM75I(8QUD4BhzZ(S6Pf8TqREdC0g9VpmHPV9jHxtKPp(beDhA8n3nAOQRJsCJdoMgyRx0Ux10nkB25WyWDRaN9rWC74H73JJEXtBSlWNn5CnvAJCuByetVYZ57q4U6hWIPjMyuVIipT2x6d(1BqF3BFV(iDErb3nY)1DnZBOHt7GL3oyNNkaeTTNbpznCGOP(gHQ9nUFV1hdWDkpeG97Dnb3EcbzMt9YwtUghcpRbuvtR0HT0VeERz5n3I5usWnvpSL7Mm07GiOPKMoXaSwQs9uNuRhakFbGV5AVB0j6x4SNXDP754cCnqB9Towvis3BjUn(uVxxo4Y6cO6Rk3Zgvl(w3Ri3dz37g2dwRUw8AtELleVAtMxg(fMSU86Pr(ZUOYAuORHOqFFz4)XDh1MmxBaeuso10s9w1sWL74GMiWcFpW6)0NbEr8sOqXmqXKCQ4x6a(U)Fm7bS7If7uPYxi)fai(W2eYo8xjb4wjfvzziVJnXavFF)9u5R5FdajiXW4Jj78LhSb5kolWZusnbiXinIf5bHUtwvu7XkSh0)S8Qlpj8Ua)9fGQtWoKvSzJmzBL5N5sv4xh3T3EFNvAUXEZvmUL(o656lM3Cb97IxnEsDmgbq7ceJXwexZCI3q6AR7QzW1k5CvhXTZnHX3TthNyy2XwXs7eRDsbYFUkkcdg)h60WrN3HGwr5QfVzGhNzTDekaClDET6Afr0KfPV2dS2GHLsIU07ilgGXnRfW6r4MfSE49C2ghTADK4P7skoYyFhxDHNl3J9B23zzlMIh9(L7H3UD8Pv3CvchZZ7yglqFxbpw7FF9adl72y10nCIbX17iF6oxepBdfuPupJb65zx8vvaQ(9HBzUmMsY)xSVPUE09yX61ZWBoyr9m1y(wRP)RYPT6JT3OCx3rZYTLUn9wTT46kN)Vp]] ) \ No newline at end of file