Decompiled source of Rippleheart v0.1.4
Rippleheart.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Net; using System.Net.Sockets; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.ExceptionServices; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Versioning; using System.Security; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Timers; using A0wIwYFS33NHq03BWPYF; using A4R3mdkatIEijGV9YF2; using A64cLLjiqtWaAX6OagDi; using A8xQ3ljTEqNjV3SoCrKm; using AE88vQQaorx0SgwX8YU; using AFx3ukFUp08vIpY1sexD; using AGCBBj8jqgy87loSW36b; using AI2N7EjqO550SaIW8ark; using AJ0yVMjRfC6LKqK0gOUK; using AJBIrcj35qjBXm9JuiAp; using AKIWeIjCNvNkJXHowgls; using AN8raCcu21WdxSsRcTH; using ANCtBrMWKqrFVZO9eKQw; using AOXHpq2RzWtINtsTn1y7; using ARNy1m8iQLxweqKFVKjj; using ARZQOE2LuKO5xj3ZQuXT; using AUJvZZMQKI0dDeUMxAiM; using AVClMr8HqdqHNoXmFOq1; using AVjSfXjXC5hrGATpXkPD; using AYYjNDFvA22rTsjss1dT; using AcRnSb2P9iZtxSJEel59; using Aek5UN83cbD3CEFTiHgU; using Agmm4yFTZkGteJIbk7SX; using AhIy665GPiP9PMj2Pme; using AhlZMBKCEiNKHKSwDkU; using AiLe68F1nhnQM54Aqmmu; using Akbt3tFIPoBTM5HIoFgB; using AkjD1K2wIB14ykblicKu; using AmwdmcFp6ubqDGLhFZoS; using AoKEAajRMiy7d9CQWUeK; using ArBJHYFKnQh8XS0DvofR; using ArnQ4sFRBnPTXrD9iDAm; using AsJZLd29vaUpLVNmErF8; using AsRIBD2Qr0aND4ICTmXW; using AtIKiEjM5XQcUVN1XGYy; using AwuJBr8YkUCTmIqrDZVs; using B1QM9yFlJmevpF6cIloF; using B27BEN2sGD8gRNHNoudZ; using B4IU7LjpMTp4BYsYJjTF; using B4hTbE8izcoKaOmc41IN; using B5S5hB2HZ1mRuc4w1GVJ; using BB3Q9Q8FKt7xF3RL9LJI; using BBYCZmMQVvN14YuWbAAA; using BE9yc6MWs79gZxYIKaii; using BFnuxF20G8WBO62bmQGf; using BIId5n2PYyU78ac9FNLX; using BIuTaAMRhpLWhWJDOv1l; using BK5rrQ8rLO2Tmmlq1sxB; using BLbqqKighOsEdayZyZ0j; using BLgGLF2IfuHX0DG1yeqP; using BMl6WaFxLUNPD2E5XDap; using BNAaL8Myx5huMpnb07kn; using BQVfya2SEoRLNA6EmbQ6; using BTYRDB2Mnh0qxPVlYmiM; using BTv8Xb8KKofRnwqyl18u; using BV2swc8Urm7uLVXQkVBS; using BWPhXSn8CGybPLnD75A; using BWQUXX2gAiGprWoJBGyy; using Ba32VmjWHJyDeuWC7fSf; using BdB3qs8E2NQGVT7MLDaL; using BeRnJmjrrR1b7NI4KxAZ; using BepInEx; using Bf9SQwjzRqK8l0aGGVB9; using BfpdrsF6GLlflWQ5eWkv; using Bh9molMkXXm4kjNP0wrK; using BhwVlnFEai07bXD1OF3d; using Bj1BtAM5wo7rYmOeDYQc; using BjBS5g8nwuFXfbJeH5jf; using BkKcLdjTiCS9IYPilqP3; using BluKl9jHpWtgwOUDb3Ol; using BmGjLwzKmH25OWa9JGk; using BnJ0CAfCHteXme1WxkP; using BpGi7JrVOFmC74jNnPj; using BpoCSJuGyjCxJeRUvWA; using BtBcCTi7sOxTwqr8ZwiM; using BvXLi08Qew6BbbyWiSFc; using BxIGvpM8S293fjB3Z3K6; using C5FFyPFf5QQeAmx6Tplv; using C6eg8hMVUYW5pUkR532g; using C6f8GSFxJK4F1MKa3A6T; using C7V30M8MCLihF6tUOZIk; using C82NQjpKSa4NryDJH1t; using C95USVFbwRBvjRgNZhdw; using CBRytnFHAGwsVHrF4oGJ; using CBVABN2xJRDikOBSi61b; using CDALvUjbBvlXwkoqDGe6; using CHS4ibMAfFjbylX1PeMC; using CIQnS1oBTxjcGGlCTfF; using CIeK431YnrUskYQEOqT; using CJBfa9iedw9Ryhw85YNA; using COF8E1FpjOFfxeN1uVX8; using COPVc2FXPLqCBdjegqUv; using COnjL58HoBxKxEDDrl9Z; using CPFh7QckPd7yNpV5P8T; using CSn43NjzifXRFYgcKRbD; using CV4wBeFlqrp3IH2rTy3j; using CbJwDo8GzfsidXm2Pu45; using CbiJfxjDgti582ZD56C8; using CfMehNjrRUHpbRaxSVZp; using CiUXMWFdTY6MDyiWdJCw; using CmY8eeF9q6rtpxmaN0Tf; using Cmbp8CIPq2SoV6wNktq; using CmkKrkMyPS9E1Cuc0hCR; using CnBxfpMNS51TVZ8rfqWa; using Cq565Sj3Up3GsqRSm3cE; using Cqcf3h24YJvdDdgZoSVd; using CxmYnEfuFZgOFReAgvS; using CyS7aUjdUZtxAFjTcn9w; using D1sfGGFK4UDq5TIMiHOm; using D4Am0h2gdcelX6Ju28om; using D6LYaLEBhRIrEelleWR; using D6ZKMEFHfmmK7qn8V26K; using D71AYHKUALfBAo5w7Jm; using D7Cn4YFl4WgVlAEFJpYe; using D8HLhu2CeMQIyLXtc1yf; using D8SeiPkXX975RBCvYfi; using D8r6DR2oqjPl5AK6nran; using D92NrmFtZi73OOxx7Jgx; using D9xlgTjLP7JgOxiM0XqE; using DAx9veFxmsPdpHyTdhJw; using DDGNZjilVgv2uloIYj9S; using DEOfw2i3jL7kUZl9Wnao; using DEPAZOFEIFtvTt6xx74r; using DIPsPFTCnGu3p7AqU7Y; using DJ3xsv8gpalKuqPX0LbH; using DJPsRU8WjPRcbn3Dm6wH; using DJUQ59iQqtk9PqbYXhOZ; using DK0g8iMcRWTBIc5BB4Hx; using DLXpdejcqAyTl0H4BsYj; using DMNlw48ygX1pFqQJTe7Z; using DMQK9EFsGDbUZkfaqkTA; using DOIXJJ81Z80YXlCd6P1T; using DQBXPp2emWkRV8xaPVfy; using DTHmdq2t2I7B727LekmJ; using DWjPNYMEk1n4KL4J4Z2u; using DXmQ1aiEPrEyyoQXDQcV; using DYLvlbj2Cbi7SFXtEmSS; using DbfumCFSrmO2yw9Zv1OB; using Dci78G9MZ0YtNGE7gno; using Dg32qa58YlZ5BpFrgiG; using DgNAnh2dOYsLWLaJaGL3; using DhZbCBFK1vRknRRKtpnl; using DnIkxr2qKyS3msaj6j6m; using DpHRbFj2UQqnoAH7HUXj; using DrlKqL86agS88KVJeMiv; using DwRZ0k82DdtHFDqCHb40; using E9343XFJ7NL30DKFmLfH; using E9fj5n8dHApgckx0higM; using EB9gFivFE9WoUN4pnGy; using EBkTCl8GXvPr6nAsJjoY; using EDH65ccxy85YLnDRXRa; using EDasJuMOnKgHeeZjA7co; using EEqq332sgQCSt6M1Odpt; using EG6uOkFYjf9exvwmfHCC; using EHmOBHMp5V0OfJBMX21m; using EIutZRFvztNoshD4yf1V; using EJxxSDFprcdV2jtR13Ae; using EKKPyXMzWJbDSOeSMtJE; using EKrMQyiRvn4MlkWV6FZA; using EMdKYJibPbe7H2KlYUv8; using ENXABaMJv6ESIrAapKX7; using EOGP5W2b7k2iHmG1YJ1M; using EOa2oC6vnUnwLM1xYOC; using EPNhRD2uiamafxt9iEZY; using ERhxs086ww5VrJ1VuCsJ; using ET3XSGjDDNYqpsBg4N8i; using EThL6mjfK9xSO6slc656; using EU2DZ6j1GoQn39MkMKHl; using EX5KRM89wJLuFclk4NWu; using EYi9Uyg1b1g7nMSMlar; using EYk5S7iWPregblUk44ZB; using EYs6w02Ye0tjG7eSRhZN; using EbC3uY2SaD8ctal7UYuU; using Ee7nT0ib7DeBWbhVCruG; using EfKlV62NrTcCcXHT3OCY; using EhVQnwgi4L8e1KfZuIb; using EjOPL1jVwBvF39wDy2dL; using EkK6OCilTocj2WoF99Kv; using EkgguDMn7Uhyaj8jffsn; using ElnSlA2tOpRFCPdIQV9A; using EnYnS5F2lMNwx8cdFb98; using EnZtNO8U6QwqU2Sw3g9i; using Eo211mM2Is03oSKReFst; using EoT5FEiQ6yBAdv3TRoI1; using EsA3y52XRwrIKYhGxUdR; using Eu8j0YjEQCRFuuR59KeH; using EvBuxTjC0oi1dcGoGFDv; using EvaFmCM2hZcuY3Ns8bgI; using Evusbjj2JtrolwBTqXoh; using EvyrtWKdql8qs9Xl1uQ; using F0PdGkjtT7yWJjv42pJr; using F3pC4kj1EcTqAOdmOZ5l; using F4alDsje9WWvCRAce6js; using F4fNCS2HofnkpNs77aIS; using F5hQ97Kxtg7oU2LxrUv; using F7cjqhj1dojwlRJvOSQe; using F8YipopPGgnvOeWkPyq; using F8cRi28yFJ1H6mtquj74; using F8etTViRHMdtD2ZUDnuF; using FEO5GNMKfeWDpCWaTmN7; using FFJX5IF5vmeZNPVYYruG; using FFj7BZiE54TMhy3GWHVr; using FGhKAlvB9wb9w0gL5nQ; using FGmfxIFEkbQPRxPmlbeF; using FHG2AW2lHgN5WFYF8qGi; using FLL5lgHH3EAb9uVxGUv; using FR3ss08J5FqWfv376YkO; using FTEF82FRzO4MkFN0NJYr; using FTX2IQMFm5HJGHdbi8rT; using FWoHi07M7bygDvaW7kl; using FXNI09M42wIi8FGxEKCu; using FXtAQd2Eoiyursf4RAHm; using FZJFAnFkVJG11QPc08ep; using FZK769MnbJ87TnMLOMeN; using FbIlEn25FT6iYmjZjSQc; using FbVKmt284vP2BOuaosti; using Ff6OuTMc4KfPsVjOw9am; using Ff6mSO8wytTelU3cwr9R; using FgORM9iEun3EOhriV7o9; using Fh2PGQF6B9vKJhUEcZBO; using Fi2UFi86PtS0O2w4pZfR; using FjqIuH2HhsumXqvNnphV; using FkkFHW23zRjlwDOLBpTY; using FlUvPYjfuKuColZ6TWrt; using FljIwNi8fwBHTpSIk8Di; using FnDKdR8hjSTwwNlojD07; using FpJDBF9KSsUjwPSuiwS; using FpRditM2WCVf0cnmCDPt; using FqGqW6pxIepYZB4JMlB; using FrGlS1AqUFfqQA60Bv3; using FrpGueFMWP3mwFgt66q5; using FsPgZZIe9RH6WFQu6yy; using Ft0pTkiXdeCC98aaRnMq; using Fu3GILkba0DX10rC5eE; using FubJY58U9WSHwPYcPZlx; using FvyeCIF0NaCtCZVKpeok; using FxkN6IFk2M1oe2aIPrxi; using G2KZitFKgi31d2XtKEa3; using G2ymyEjcfxBYPRha9SXN; using G3MVRDFup3r2KCowJgug; using G46I4OMqg0q7S1b3xplw; using G4XAfwMvVhWfQalHNFjP; using G4dGdTjpACmkaiamTHve; using G6A95t2GJYeO99SNSOsH; using G6Safqjg5w0S5KLwR7Qn; using G7QO0NivZvCwbwvWOuvb; using G8dXu52XALVduOSt3mKm; using GBi9JQ85SAYe4Ewmlchb; using GD7DhM8fLRRtlQWsTVY7; using GEJCx7NikqktqNekmt2; using GFihLG2qyipMTxp3RaCZ; using GGtdrsR8vITDa3T2jSN; using GH2m9DA8PgjPdpafwMu; using GIFIc58fjaP8IEsFOnd; using GIgI8aF76neq8frt5Urs; using GIrv0NjYLvgF5bMEOk21; using GJW0w7FoNlXtGdXGJQE1; using GLB5eFM8tv0AUNs2sMM0; using GNEMZToN1ilPt8pOfyy; using GOKm2jF3ss3rLFHOcbsx; using GQd3RDjWVBqAQnDkrcLD; using GSZHeJMB1OfVJLYlceg8; using GUVmppbOBg2rsfcRVnM; using GWPcmmFx28b7sXkXQ16h; using GWbmqPjhyR0ta0hX9c4K; using GaC8GjjPuKXNwXZQnxDY; using GdhYTMvnZpuOj0XEvwQ; using GhRvUmiuHf9PqGkpv18P; using GijrpvjEAG93VCUANLTx; using Gm8M92M50SOroR1TmClO; using GmOP3xFDZQlfiGS8UnC3; using GoPbCi28LgaDLGM7UcmO; using GpJtf5j5O4R8gdwBRIp1; using GrJSBlMDfNa8vCcQqINs; using GvH0EF2P1jD05p8heKvJ; using GxXRlIjWCXOT1UVVpufS; using H0EQFUjqz12e0xAEd5R3; using H0Esux2w7uJke9bMgqc8; using H2HAn4MgRb1QlIRDfiIx; using H2UCNJ8Wnv62b2t3WAs3; using H3p3mXFfBIdBGbZt0Mbc; using H51aPDdg5RwjpjaeMyf; using H9aOFPFRJ8VAo7jN368p; using HA6P7apmXRarkCG2MrW; using HAps5p1UBuiDmrXV6yH; using HBQ95DilBihYo3G5YwJI; using HDQijTFRZOUIZbcjNnbt; using HEPo428ybEkaS6DeB8O7; using HFmbkujp5gCvf40sAYcU; using HILYQ72cCnvNVacuqDOY; using HJRiay52KuFdBGXtT4o; using HPfJPXjeaArIM8u0kCBZ; using HRGxPL82z5RL7pXH2Kbc; using HRdBsOMkNbGjDJdRauPb; using HVl27yba7lCCgxw2iHi; using HWKdsXFSyQ6SGX0ql185; using HY8nlGn0bPBEmLK3Lkt; using HYO1kI2KvItFGn3f0HI1; using HaGKsGFtC0pUcb4X0mN4; using HaIQTwFKOp0euvthmK3O; using HarmonyLib; using HhtUJDjP2wVFsvnFggxT; using HiDPJaMnfekkIlapjw8W; using HiaCu5oFPZNyw1eMg5f; using Hj2QbljmveedZHX973Uv; using Hk43nbK5kx6BunlfEvO; using HlKN5A2QNO5cINMqbOrK; using HllRPiF9pPefPHcA0JMR; using HmEyYoMhMQETKlGOb27; using Hntqat2JZENyDnPSylrN; using HorW6jF28D5GPpLlpvLT; using HtMsfc2QwYRQ3nI1opUF; using HxXIqHM6TB0jTegamBZN; using Hxs6sRFykZt4J21M7Q0g; using Hy7yBXMxhiMQpPsyf5NF; using HyamjAiS2UvoN3k5RxEj; using HyfDv228H0786xlHFXNU; using I5XwwVF0DceRXcg8vwi5; using I6iVymFRFQ0fHvM9Wm67; using I9Wx2DFvTYU6ssROgrqd; using IAWJLI8wM2LMZdMWxWfD; using IChL6VMHfh91Syy7CLGm; using ICkG1hivR3f5I9La6Dvf; using IE6y8XMPN6VBHVb3JgST; using IGXo4PFrKkvKQaKCRc30; using IHHkJD2gNT1uEER4s8JA; using IJsNLIXMnfMgBRopcWe; using INQ0XjFoecLgx9LtbqRr; using IOpdQYMD09FVKfZbZhuX; using IQQMJxFm8eNgq889am2R; using IQYPk48kAqXVptCZUFGZ; using IRsSgc2qs3AH6T6WBhjU; using IStPAvF8jbP46FYy6av1; using IXV9cp8fkvuOFlTWcyRx; using IY9vo689K1lOc2EZs7F0; using IYAdCH229O9ZGO6NYeUF; using IYbEh82T0gCKiGrOGRD4; using IZtRfeQMfqXLkYLI5GL; using Ia3Z4rMy7GdR4bFW8LoH; using Ibt3btiTSZj654nrYSQq; using IcCe612snC3XW9e38Seh; using IeetMEjPmd5x3EeONFww; using If3aPXildALch6udWd7u; using Io2P52Mpp59YRZILDa3n; using IoH1tSj1gHFgwSmK8Inc; using IqECXjFKyNACBoG5Wyr0; using IrmWWHC0X4M081R12Ha; using IsEfUn8Zpvmx4dJDXxt9; using IsRGlM867BVMnbMgf5CH; using IvEWGAMjbn7AS4PBFZQr; using IwLLIIjClPyO6QufaNoQ; using IxJxGTit2VkgMtZ8RKED; using J0M0dBFV4F0VOWC9EtF1; using J0hF0k2QeCPnlF8Ky9Lk; using J1XYsLjY8XZZfYsqSKkw; using J1apBlMiPDTnNcfuxXA4; using J6os7AMqAfLG29nh5pbC; using J9YcRb0BdPeSaYEQySn; using JBYTOJjVEq6D9n8KxdgX; using JCBDd9FwMbRBhu393IoP; using JChAqYF6HZ6U3bxsx0aG; using JFApLk2PvyhrGqbDBZ7A; using JMKEDqFss79F0eXNQbty; using JQcPflFpYykU08doBkR9; using JSvvZEilO4Hxw7YKh8Z1; using JW0CpOjC6ZNOegrEVQOQ; using JWoQbbFgZadK9PNXPvrA; using JZDYE92d3BvjYAEyHMO4; using JZrOhy2PXJ7fKUlrXRZf; using JbkPxE2Psd9Uwn0WdWbq; using JcLpFP2IwlGxGFRP1pmf; using JcUa6m2TkwatblS4McjW; using JeiLq68TJFXtPSPNWrOM; using JkwOp8i9K71X2jXogsUi; using Jmm21IFnRuWkvYQLfQiq; using JoxiutdDxbcAO5axFpN; using Jq9qsDCFn8WimtP7Fua; using JqfLWpFozbQrlLyNlqOt; using Jr4hp1F0xiUeJWYLRvJr; using JrMA24Apbo9mbwpNcd8; using JsJDPAFu61lYqgYR0Vf2; using JtfKjM2mCOfGP0LdJUr0; using Jw4bQ12q8WLUMJ2DxIkl; using Jx8aRBnCwW5M0tp6H4y; using K0EAmEiRzldrYcO6tLKH; using K6Y7pGiBCxTRCKw4XjNd; using K8Bq4b2UscKB9ymrWUq1; using K8h0vihyNDH3EcDQPqH; using K9G4Qyj97wGSNLIorrfT; using K9eQHlMlfNKEMNFfdt6O; using KBa5dtok54UFPhxXDJ4; using KC98GjFC07ERUVcWGvbl; using KCFg0w89BYZdVAkRrTp8; using KCWU5uTqxQTMapIZXG5; using KFJHqtbqFTJvDtAwrfF; using KFsvcSF2XUANDOdLjqhw; using KGL6vORHtmf8DZEIUyG; using KGRjLvhi5lJY924LMCy; using KGfLr20Yvf4uYOIVwCK; using KIGkKT8rRIOHqqysRn7c; using KIxTEEM6K4ILYnEwuBFj; using KJVQf1FBJXb2HiECanRo; using KOJjLc8Xut3lWHmxQGAA; using KQqMZ42H4g0gvX1nrDgA; using KW5nPy2T8NQFMJdNcGZM; using KXOH36MDlBmO0sgw9SFI; using Kbr7yMFh3rIbuApqGioQ; using KcOFC7kLr876NHXIIbO; using KdQXOZ2IjW7KhJLICn0r; using KeAD1vipJLGu5DINecY3; using KeCQ34jHSJKDqgdQNMvI; using Kf02q7jTOI7jbuMauxwM; using KfKQDWMmL6MOh0tn7xlA; using Kim0Ociv5SnkK3nRDBqS; using KkaoopFsrByIKW4jEumU; using Kl2xr38s7DeBYVMpcCYh; using Km9E7cjWfudWxQNq7OR4; using KvHefVyc0phsHFprRce; using KvO2GY2FeqYW8mM7l4QJ; using KvfeBLFRWHy5ecVVFFYH; using KyuF51iAui0FNkMvDREY; using L0NKVkFZZFWfA0WwTrgA; using L18HTd2iDLU5FlTjnMZU; using L1dwX2FiyJ6t2LgG6xsk; using L219cRFKhXKSQ4y3Og4t; using L2HtpUjNnLaE05VTmnv0; using L2R4yo2xqUruPLs3KGhF; using L8beRnjcpHxeocsRx67y; using L8gVbDSr0Z9BmSRUe8A; using L8qtEjFyFAB4KhC5WHHf; using L9GYiCiAzyAFTfdDGRoq; using LBiMtkjWRPOxflYgbfbg; using LCy0oM8m0KYpNEUARh82; using LDB20NMWT0K2W5ahdKl; using LEoQjdj9eSlqw04cwhVO; using LGFdRwg7xRoUF7UcDu2; using LHHVX3FtLb2yAD3ZSijV; using LHpts3M6xe7CmBRloRP5; using LL5np8j8TKixJ3hkgAjP; using LMJTjHAhEX9KsKYCfZ2; using LMWf9xiCo9GdIuYSAtGA; using LMxV0t2ZGpknvpJMDruW; using LNRAcS2oGatiZ7HIncXh; using LOGKkmFUCdE4p26PBqwO; using LRPFU9vUVh2srRIuY76; using LS0Vxt87yBwtDe3FyRhF; using LShulOFbEfwG50QMQEPD; using LTDCj5F0LDi9P3Cqt3YH; using LWCQCf2VpdYR9dKI1NIY; using LXWjGEg9dTRaegOyMDo; using LaJgMJG2EojjrVnvIfU; using LaODbKjgBgF8UCJa6uLG; using Law3fj84bU10r843VeHN; using LcgKQvMQibVe9uFdvHVU; using Lckhk8FTBegfEZRXJ4cp; using LeGFjY2ueJ1TOBJMJL7T; using LeUgIiis3rPMj6Mw50Fv; using LggVTb8WfVZnxWOM01XY; using Lj4G9QjjoBhLevuTaVCr; using LkALiOFiJDExD7fV5e7a; using LlW9x62kP6F3h6t5yaXW; using LpkRCVGH6WpcwrEXZJh; using LpseS12jA8gQAJ7QYt1D; using LrQjbxM1F84E4LTs2RpN; using LvrWYxiK3tOuxHcHf6Ay; using Lw2DSV20ZRMitSduHgws; using LwOTwRFTiiSYA04RUC5R; using LxJqpsiXIRbI6gjl0lNK; using LxqC1U2BCQVhd7JHCopa; using M07QGCj2dGOFCpDdUYfn; using M0IjBjFVTg5m1Yx2YFsM; using M15YEBFUOwIVnGuqmUYc; using M1v6HSFZwjSy3iMcraSA; using M32F4O2QPGOibUA0xUpn; using MBwC6t2I0W7WCRSOgXFs; using MD0Hx0FKRNB0KFE9Qu88; using MEXPGpFHjDtoCmRJ89C0; using MFkiivsgGojlNnkYa5D; using MGJOKHnmaNC6mcl7rt2; using MIPcecM6prN28g6qmAQ6; using MJOJCamu2qZppLHR3NF; using MNdX0UijSEbu845TcTbS; using MO3A2DFVI5wLH8w0Cyq2; using MPpapuwmaMDTjdI16vS; using MQekhBFIfcpkTL9Kd6VG; using MRkBdKjbWU65hV1k4Zkg; using MYTVFF8CLqXOpJNf622P; using Mal5R4M0Z3qU9pntw6tJ; using MbvxZf8nzDdVIKmnGcuJ; using McD32XMxLM890rWMiuyG; using McTGMm81Rb40yT55uRX5; using MgZSohM03ZHFUjARMxtg; using MhLrQK82B7XxTHNhTcqv; using MhNOjKigeDRGQbeArpcI; using MhvZC1b8VkIS6ljlLm9; using Mi90ffMsWmpQb4h8deRC; using Mi9arlFD7xs8mdX63NGj; using Microsoft.CodeAnalysis; using MmPCPCwePEkhD7bBWOM; using MmvygdFK8qxZRLmBJnpO; using MnugvWMAX6U1fAcrTts0; using MoZ4eBbJj90IQxwRr8n; using MpMOCTFy60TEQuXuACkW; using MprJYo8i0r9AneUeZ6yK; using Mqk8nXFQYkIBLlvvBM3h; using MrdTeDFruJLDqpYc2iV8; using Ms32WTMnkPwogJRZtabx; using MtvRWGMNWMr84OOdFZBn; using MuHaRR2ifecqkYM6w89Z; using MwGGV0Fx9RDdTokmXgGD; using MwfT0jjRVROSDUvfs5Qd; using MyUAuxFKmNxKdndOI2vC; using N0iB0C0MOJaYJSH0ukb; using N2j2hRFS4CUvlXtGvVBl; using N38RFMFhGNFITkgAVNYV; using N4HIvP2aPsjAKsliQXO6; using N5OhD9jEvOO1Vt1JcXqq; using N6AyO7EgKeS5aOp2Zny; using N73QND8GpvVF9p2gnysN; using N9ENel2WmT9EvPYGSFtZ; using NClDweFXMEQ6pNIvRuOY; using NCnh8vMXTbaMVDDq5RMA; using NEh0iyf5AQmK7tNUyOq; using NEpcJd2LrLsltFSUmKSQ; using NGgihy2ycktLT5fZsJ0O; using NHGicM23qCgXVSItt3QX; using NItvAmiS7SfxhSxT8MIg; using NJaKh7jCYQFhchTZjJyp; using NJpc7mFOl6XoUb6k6BGY; using NN0nNSibHomeokW9wA2j; using NSWSkl89x8ao7nPWP4ru; using NTFC3I265qCTIeTc9CDg; using NU0Eq4FVfsFlc3ky8aok; using NU3BEp8bxayQ35eR1UyO; using NW6qJRmvsZuujqUPKAh; using NWvE2KFASvU3J6x6M6lO; using NXFNOqjNTY4TfM0hemxU; using Nb7oR18upnwgGZRuqDpv; using NbGXQoiXMssBCuoyCLaP; using NcXDAX2TJbfhFQ5Jq104; using NcxyVviBPhZ3IafLXrSn; using NdLFKJMizeW0NDyjx1E0; using NdNC5A2ML90MCZDZfFef; using Ne1flXFojB6evsCcsVcP; using NfN15IiAvDvqZf84E2C2; using NgK5FpioBZXDo9SSvPrk; using NhJ0ckFHe56ES8mRi4IV; using Nj3qcV8GoudPbOSRvWNG; using Njuck85JDe27yBXUDUR; using Nl5Zgc8Nm48vuw1wseCW; using NlmL41Mj5QDGuTl8cu7X; using Nmtl3LjTo2hV48NvCWR3; using No2XxijhcWuMyHM9W7we; using NoioGJaQNBE6voL2JIP; using NolcUTiKkSop41ylu2nO; using Npff1tFpL3nJEWeQQu7Z; using Ns4udH8QjtBYPvrAEP45; using NsVfHT89OwmYKaDLZ9fI; using NuleA8Mj0MqW3vuxUmVK; using NvnwFpgcGd0MH0e3OGU; using O1G4VtjTG4xgR0DEgdNv; using O2L3vY2gOXOhusebLFMJ; using O2wqks2901CgGebp3M4B; using O377dZ8ikbYjA0yxnCxw; using O3QnZPFmYVq0RRjpXijq; using O6MWtxaFOe51u8BgwZl; using O6VD1EkB9FB3vaFyodl; using O7jJ3DjW70w2evvpkO9r; using O8VmMpioo64LesqJ6Uoy; using OAA7Ip8qwm0QZh2StQJl; using OArgffjMKrb2IbseTLGW; using OBRF2RNqtPj9RhgKTEM; using OEKw6ZF5weHKJ0mPht7L; using OFVyfwMfVf5xSCOM5yqR; using OGCHqfFOClU0HdDk1tVL; using OHgpdM27ame1tlqtT54F; using OIMyq9dcNuwrvgZ8lON; using OIOQoeFBrZ34PEcVMkpx; using ONlriR8koIU9KsNh1pxJ; using OOZ5fd0PtVf5mf7F5Tr; using OPipHEjJfs7ViM3CGSeU; using OPt8di2ahyiuDkevBiEN; using OPtTavFDB4KGp4NStjVG; using OQyGWK2VUxGKyCj4hMjV; using OSk6Rs8p5oVPVt1jJoKe; using OTHjxhM4YLuh0Hcv93P9; using OUGtYsMEOhN5v79UL835; using OVKNHjMCWVar29jXdQnn; using OVZNNFM5EJj9qTnDS9wU; using OXKGPBM1swUOepI3glf; using OXsJHAF2kyKoo3T6gkJ9; using OZBHpYFGfiKHw54pEuZZ; using OZbOediF9wVAnxm12j4U; using OZo4DP84fWs5uLJFEfRy; using Obw0h285JVZPVlKFkCkR; using Odinfb2XQLM9WhDoCPsm; using OeVkaqWP3rQEFjapOtK; using OeohpEjEGE2vfstBM4vE; using OfYxJB2olCCoaATNSdGf; using OfuJHNMGGu5kqJd6eQsB; using OfyE2X8viYuYqVq3typX; using OhfLt62Fq7y4ioXOrSbQ; using OhwUsk8PImDWbkMsk0Qv; using Ol1bs6iwGhEgJ7hQAlny; using On1A3wTg7mMgaklhGMR; using OnkH0v2FkqZRBt92DAMX; using Oo5KYXMznPJGHqDUoOTF; using OoJ2KW223dLe3R7Q9Uk5; using OprG73jZ5HvDIVWIZkka; using OqWnjdiZfY6pu25dTMPM; using Ov7QtJ0GH2DPTfIENv8; using Ow63W7jJpagXXwycvjIt; using OxU4omFAmRHB6YUsv3Cx; using OxhgBbF0t2vv5WABoxnI; using OyNTJwMlSI6Ex2ESaShD; using P0MefcFkhCcuFBKplGQZ; using P1wXRR2y6wNCo41aQJWy; using P3xi2mFl3jtsBnJ8LFrG; using P5aMwTFl0lEqc4a8I5q3; using P67KxkjYJ2O5DsyscZXU; using P9aio1mZ76pc5Q6amfK; using P9bQ19M5Avk9RC3T32vU; using PDQQfw4BSlD1LTdrDfP; using PDSiKXiB13h8wUrBubXO; using PEa3NPFXW6yu1okY81tq; using PEgESRMny84KRhvLgLCU; using PErIthjWvhcCxq1nnDCM; using PFk0sts1iRDZ7g6UvNY; using PGY0rtjrCscSLxQLTGvX; using PH4REMMxwNH9GstEWXKA; using PHGms7iXxIKmbfxp5XHM; using PHSbDM2Uk888KVb6Xmtv; using PIMG6WjW23q1d0dbGM3a; using PK578GNwLCOGDm0C8LD; using PKvsBQ8iuWuOl2XMLvat; using PLL18mF2iP2IhIoTBdE8; using PMDhAKjtgb9pnSLXTb6q; using PMxAQiKSx9jhvvK1rux; using PNlKffHffJIikqvNYih; using PORfF58MJiCX4HjPPSKx; using PPlq7382fso7Ro32sKOH; using PQVNnwFkCes7nCS8n70u; using PQW9HKMS7nPhrDgDZcTt; using PRUJVbM5DPWNEBdIKCIp; using PTvEU9j9LQ9CM18SleaJ; using PX1CalF6NvSiOSOgl04o; using PXVNm8MPur6Hv0xPwNZx; using PanZv6Mr7s9GJNGUI2vX; using Pbg6xK2C5HIax7NXXmGp; using PdS5ER8E351jYleWJH4y; using Pe319djNNTaQmn52003g; using Pg72gN8CqZpSl0q8CKnc; using PgvOdViIgYK86Z70dGD; using PhlNPuMna5g2oVvUinAd; using PjStiSF0BjZIy88dBOLb; using PkciIq86Gw72NpgfSpu0; using Pkmyp5iZn3EKOLNiZrSY; using PlJIuB2eJYUfLdlbmQ7W; using PmUeU5iMoOdY04AraBao; using PogVlI8hHU5845Tq91RP; using PohIRMi9VIuiyRbKIMsK; using PsmwxXjwksl66UL2D0EZ; using Pudcdi2HSUKdXRR1Dh1r; using Pw0GDjbpw2084cXJK5g; using PwDAhVMUVuiyiw4sqbgr; using PxkDFbFfdrmguU75fYfn; using Pxo2wujTScEyDtta0Kbi; using Q4rg2ei9loXGaB9GIiM7; using Q5JEncjFVvkMujJZ18ld; using Q5j1adjxR8UXouGxS5nS; using Q5nlgS8L0ZolsCNneKoV; using Q6OKuD2gZIqwEg0GJ4W1; using QAwVchFK0aJxLM54e181; using QCV3fBTPUjbo0xfU3xW; using QErm678le32bRAYjO77U; using QGbEo58F8m1TgOpurlfa; using QOCJH22P0JIe0tQ5dQ1W; using QOIBo7FR2QsCcKVE9P1X; using QPhlRt8Qs8Ciu7ek3AGY; using QR8VP5FW0jjkLom2gvIF; using QSfm3184419HHhLqRUMG; using QTKuP32i23MdJpNXgD1P; using QTw6vxMbz3pXCyxNItUy; using QVNBiOsABRRo1L7BlIP; using QW5HlwMyLBdm08xqCwJJ; using QYGTeOj397m2ZQho0Tt4; using QYJJEtFVxyBvta8BcOZH; using QZs7On8mGGpeHGkUds5y; using QdBkhb24opBqR9gp9muJ; using QeNAvrF0eHKrHKpafavt; using QfvVYbisubPj6IU3ZCuT; using QiSfSA8lRuvTsPR8en3n; using QmrT4GMdimRMTFE671Zt; using QqMee7LlAkka9wIXGIn; using QrYvNNpDxsckFZ6oMNj; using QsEDgwF59pueeu6rBTc6; using Qu6kVC2QK8Lwhw6PuKGQ; using QxrD5UF0CfXGuYYXI0Yq; using Qyrbaw2dGOmDFnE1ijE7; using R043ecjPNO7wFxGWP976; using R0KS4k8ZatlfB5XicMpM; using R0wXhT8TsObWPpxVktiT; using R3FxvC8pGVvoUteliFTx; using R44anmidigW42coVt03G; using R4yxy0jTNsvQB02kCdB7; using R5yFYIK6MkNGACKCnbL; using R7EWNX2B2XdaxRFn1q8K; using RAVxbNFOUGQAAfoO1F7y; using RB5jS92iqM4UhSG6cRhF; using RBQ1j28p10fqMXyKlU5U; using RDyUGCj981RO6VZPiTEf; using RGUlNi2Qz2RoYHIYKeFp; using RHRi8xMcDkkVhA3tkfN0; using RIFCU0JBr5LJFDHJmbS; using RIcHLvMzYQdREAFLfvcU; using RMhaMfFU7rC6dV9dxt8r; using RNEDLDj9y7NXdfxUfYha; using RQKW9LGQuqwdscSoWyM; using RQy3hnj3aZKn0jA5PYLr; using RRE0Z8FY2Cw8jVSE8MsS; using RTsLOCFSCoOLYMS02dR7; using RV6kKDjTr3oLN6c0w3tb; using RWPZv78HdMUfWly8nUVb; using ReAywf8wxjrVAoi5Nji5; using Rfb9awSCpXB1GUWPOwy; using RhbyDOSyIrjOMMkdxLf; using Rippleheart; using RlJxTTFYg38ymhoW6KQw; using RnVMdEFiaZg3JtPA6Mb5; using RoIt6UMVYWvLvZ5wpjSb; using Rooc2uX53GToThs6vKl; using RovXYVoj3JcMNNHEnId; using RrbHprjD1R3NeSPilwda; using RseSKw8hxG6RZCXSmaXw; using RuUHNAjWhIWwVYlKg6Fx; using Rv4Mko2Wbvc9403x4jTe; using Rv9fbWjYkIxLFhUIWm2H; using RvQx3qFkdWQDxOwMCAsm; using S08aWXMfrmNFtKCgnN2; using S0N2xU0Z1eUgfhT4YQn; using S1ianEFDuYobii8dr2uI; using S4ZeMN28hIEoLgFuf7kA; using S56Pco89EiWZKlp0ZVki; using S7gaixMCPVGOJWQGhFHB; using S8Jkgu2dlSRsDjpJeWX0; using S9PRVVicuZJh799UMZ50; using S9duSONAaKLvPtDKe3f; using SI2wPDiPIWV5SiApqYf; using SJ1rcDipsGRqun3Sdr24; using SQGjyAjDLngZv72sbtlc; using SQmKNvjP6hOSk5UHJVRx; using SRFxlZMWx7bswoYpyO3v; using ST12FZMUHZWXWsq65SdY; using ST7umUjucL2T6JV06YbC; using SV7eY62dST26xgAKLly1; using SWPFZbj3kw4ufHi5kbRU; using SYGfRt8TfknWeEsljuwC; using SffQtrSOjg4HehWtVsY; using Sjip0TjVynZ2SjIGTOxo; using SnVrdtFWAe4VejW337Mp; using St4MhZisK3nqSXs4nQmU; using StcDnYMfcAlMQNt1Lj1M; using SuchnQ2KHdIFx1YeOqXw; using T1UFMw2WEvNA4kbMXxuk; using T1Wgcw2dE9auwWYoaxdA; using T4Cc3sF42cW6vJRlGgIc; using T6Ibsr2wp151UG460fsK; using T7LbRniR7unVgjpmOMDI; using T8Q906960sX3RFc30Hn; using T8j3uoMZZAJOXiZ6n0B7; using TByi3hj859mnXLpTpL6C; using TDAKLEAzhCboRnJUgPS; using TDNUql8HYcJP0HAKR8Cu; using TE8MUW2Y8Yeo7svmTZxL; using TF4EXnMIkTSPhFEcD09A; using TJjXKmMVB85dVZn0vMvE; using TJl6fA8j8o5KFxtkWmwS; using TL8peCjIoTZYOBdJYqWY; using TO4mUBjWFfStv8rDKw7Q; using TO5y3u2K47IJqZH6FN4l; using TP2AjsF2cUZkaIaPlFTU; using TPhWHMyUGi3eg9UepX0; using TRbOnKjfwR2OOA9424g7; using TS7AvH2NxV0jJ1x5xVf2; using TSAIpkM0wM1b2SdkhhlB; using TSI5mmiZq4pDIqm04EGL; using TSvA6grQIySnxLu5ZWH; using TUTyMt2bKy4Q273oKs6a; using TbJrGkMB8fWSGDvwIIuh; using TbSRWXFUTmixnhqEbZZK; using TexWOb8VjC9FEqeL0qpn; using ThqSDP8dwGu6pcFlp0Oq; using TiBSvbj0y9R0G4lXM3Cj; using Tic8v1FYe3vFvX7oTJZo; using Tk7sbxigtQue0p8rE4TY; using Tk8Z3rjTTUmTcfWcEchm; using TmGnYHjHAg9Yhjm875w4; using TnmZaqM9BOEQPPFw8Dal; using TpbtdFiaxsoyh1qlZuHI; using TrTDbLisgvK1pcf8GEox; using Tu9RGA2mXuPCXt0Q5vNZ; using TuSLobMkDq2j8fBqFSZK; using Tvi1PQp9x0iu7YUDkOp; using TwHuZQjtA8O87w6Bt7Hr; using TybyCC8PrlDPgEDHfMMD; using U2nJTcFRjAkDD9WNAvO0; using U43RCQ8RNvxBUShlyHcw; using U4hxPMiE93KA0hZiZY62; using U7RvLdMaz763nMhTp6IH; using U8oRBHj2vwueXGWO7gFe; using UBaFh9jLslBkvoETdSws; using UE3ji02i0bqtqSdgfLZ3; using UK26F928PNHkAy0JrZLF; using UKVFGR2WcSUoTHr59a9C; using ULqVFXC3MRsNBNXyQSB; using UMKVuFMqcf1iA30B2oPg; using UMqMGr2FUyluhS6YNBVX; using UMrqCy2hK3VYeOM2G9yy; using UNsAkMiZZArXHlhMZ1wB; using UOTNs12iF8byxuu94NI0; using UQAg5qFEfs8ZqB5chKCd; using USV5E62HyGhAyUIsRXt5; using UV6sSriQZ4bjZpLfYUe3; using UYrDYsCE1ceNFdeY7d9; using UYwNOHjZb8fH0ylsc8fp; using UdfNyUiKZw3x4G50156d; using Udfrgc8QAJ2rPpBSOk9y; using Uhy5fsFZQKpY2lfkL9K0; using UjTmUbiFMGWsaDW4dRCg; using UnityEngine; using UobwcAFnUW6qEvRgv4tM; using UwOIRhiGVuSQioUWfKoi; using UwqpKdFrOZhOlGSHvknh; using Uxh78oMAkeEm9qMITnky; using V1La6y2X9jEBr5o9T2ZU; using V1hVhSlHILh8GLhnanL; using V4TBAWMNYL22Wm1gWV2p; using V4gVUN5EvDqamwCB941; using V4wyyFM6nTqkc3JPgTYL; using V5G8yxFRKML2Z6rTh4Ma; using V5IhwrFNJR5mSmTcoEFb; using V6uTrkFg9pSgA9DNJy6m; using V8ltdXFMsYDohQ85oIIi; using V9xU2T6L9sISHtqWiWX; using VBYgkdWje8JRFVMYHLP; using VCK9mM8KsmhsVTYO3pi9; using VCujNrk0g5gjpQsUAag; using VGbHEBRq8MHuOUTyPjc; using VIm4WhMjL09PVS6DlWKP; using VLgFPV8XAaF398eRJru2; using VMahEJFMIOynNUX3ZSvv; using VN7WtWiQKSgZrWvDycQZ; using VPlGZNFsIyGgkgvgvSK9; using VRLTisjsnrY9FkZJicg7; using VSiqad2KjXLVhkMx2rVH; using VTEi8xMsv1jFyiPhI05g; using VTu3tP2AO828HkCc4uuS; using VUSAZI8Bb6yDqrS6PbQ4; using VUuZ9oi7Kq39VWa48MPl; using VUyDKOjd0cgMWlQQbgXF; using VWB6N3iMX6m9neCO9PLy; using VWEjdeFDdCDNeeVq7nyX; using VWF4rjMiumfyXCpFqeXO; using VWRjfI2QMjAaoQelBB4I; using VXZlEBXyuj45WSZ67gh; using VaHTuHiwVjf5d7j6eebY; using VbwIDMMHoMq21bCuDwrU; using VcC51qjVo2LKOkA0cUBh; using VcbMVkiXu3Uv7Cwn8iva; using VePiEhjwsLcvZiZEli69; using VgcELi8yd40PBtQ0Pucp; using VhipXeFRU8Zdpjw5ygN8; using VjLdDQ8q5sjiCvpqUxrn; using VlfnXNjCZhyOmJry7uMU; using Vm49QoFOJT7ESMHmU2xY; using VmtLJj8nvbesmekVLTZB; using VnDAirFRHvIp9YoIN9Ri; using VnVscoiZpSQNnjegXdHp; using VnY2Wjj3nVF8ylLUlkD3; using VoT3u78fYXhmRmTgjXDs; using Vrc4V0rNukKStIOgjst; using VuLVpxFLljZwgo0JwCf8; using Vy78fojTtpUuWwugfnrc; using W2e4aRsvwhBLa8PCkTJ; using W3gWpn8VWSrZvpZKlKdw; using W4mBOnFNOBfV0I8HZJ13; using W628XhjVtt2mgD22kXnq; using W7KxplMiby3rQgcvBxVk; using W8ihT6MtBPaO2L5QBOQl; using W95lr5FYWw3li51hWkc4; using WA6dtRQ1ik8y5v2j7a4; using WAPvi2OqAfPO9dqD9rJ; using WBGaym8Ny5wKGeH0skEw; using WF2DO228UaMxTNOyQPt7; using WN4ttUlPqQrEcSGxC6M; using WNHXbr2fLndDPXSBu401; using WNQ18gSdcCECKirXvcA; using WQFiN58yWpwZEPekT7eu; using WRRlEJGwE928RQ1wDia; using WSjswH28b0t69fLdFGt3; using WW4nEcFRcaJXolk1lm4n; using WXm64AMXdKctcMWJxgb9; using WY3DXWFMQJMVuj38B8gm; using WYG4BBis8EeIB0HQj5bk; using Wd5I7M2OJgN7cY7lEaCo; using WdS8yE5bhuAQa5NYNkx; using WgFre3jWQTBGbDyqOA6i; using WhGZixjZKAsPQ6LvpjQU; using WiAWmcjrMCB7RQ3Y5CT6; using WiKp6vFExn7h5KwIm3CJ; using WiPbjl8ELGIOsi7kpTE3; using WiYKb4FZ5BHmmkLDm51s; using WjhdSm82vJ4fbpCt7xRS; using Wm2laA8pRbBsQ7JZVwyv; using WqhMm5FKElACrn8P7kU1; using Wr5Q6QkF9y4tSRihoR5; using WrZI5J83244ZL7nSxi8S; using WsTcZRiCw1RVkOIcPyK; using WsvtkdFlbSUpaBhnFj26; using WtvoeBiXvRKeRJaUEwBU; using Wu2ZjRFgHm2GjUuZWEj0; using WveppnCgrqm84T319jX; using Wy2sU5tFinDTXxRFOu7; using X1nbjl89PqtDLVTPlCSR; using X26pxgFnwY1n9jZOY8Jj; using X8NXpYjU6WGyNPuVbv0L; using XA0Yv8FaSJ2eBQ7uBqQ6; using XC80TTjmPl2tjX8sCSHE; using XCMUhZTck4QWBlPHLae; using XCX3GFiwA5KN8ejLviQm; using XJmk2RFQLuKYGvdBmrPn; using XKcBu62l6u69yOLMXB6K; using XKtvsDF1P1rPMCvofuF2; using XL4qQnjc3rPdaBFlJtN6; using XLNybZdBesQSvbEM6yQ; using XNjdq7ig088eGuCb4OEJ; using XPZWBMFpxS9fG7Zy8kiC; using XQGi1csDuvOLPZ6TTEv; using XRi68ti7tv5BtQHKr0rv; using XRiYtojPJ0OFX00bLkji; using XSA92c8qicOZF7tKCB7R; using XTZyQZibCQIooCtUBHw2; using XWjGphaCox5F4bEPHQe; using XXSD5KjGrQ7qUHxE7079; using XY7uBg2kJdsdyD5dyEh5; using XZLXk62oFuEYjvqBiAUZ; using XZrYXsjdC2A15mToD1NX; using XdDy3WFWNbAZ2iAagYG8; using Xdn5kqiCA3ZuiOXbfhxC; using XfPjJdFNxq77ljarHUbJ; using XgFTg5itUl1wcx4DcKCB; using XgthKT83pHV7MTsq2QMH; using XhXyp82FLpYCl8mw5IEX; using XhnYpQFNqk00ISlodFiX; using XkCvllcB2P6bMJ1gj69; using XklxAd2RT8IOALjxvXyC; using XmNJKAFEcYTJT0NPM6IK; using XngPIxMh0QD37LYDRNDR; using Xq96MZRmFugdQZlXHUN; using XqVaTKFXzsOSNRmh1JpK; using Xrw2sf8wkl0GCtVqLo0x; using Xsmnp7jAL6ISfJCZ7YZw; using XtSbd28cc4e7WnGJjN1Z; using Xw27w3FKftnoVjtp3k7i; using XwBwwx2hMOoVVNvfFQ8U; using XxM6xPMGB3VRPkk3a9Pd; using Y0lsudSlRBnN5Z2CGPG; using Y14l64Rl7rgFGfdmIOO; using Y19BwT8DGLIaSLjub5Z; using Y2y2ytjVFIaexcaBvcJM; using Y4oCAKF9OhXE0AE8gOpr; using Y7R16Y2KUjx0LcAQLwn5; using Y8KCYR28NPXsVSjiwX9A; using Y9RV9QFZ0yDKLYlBGha9; using YCLBCvIicBLql3pUS4O; using YF1wd0jgQXMoewQTGfE0; using YF26AcMC2RZo1fDuygnL; using YFili280j8bsjXGNrsmS; using YH1naHM0NvkmrConE65s; using YLFgO2MJn5VpVFfF5sBm; using YMQkYCFcp1dr7A1oV3wW; using YPqIknMzmITj8BvSnEpr; using YQRwMl2XZSn7DYcIPUC3; using YS4senM7w6W7muSf17oK; using YSWAcW8xbEgIqbKJ8RSj; using YSqsALjeLT3WuE3mH2Ut; using YTKjW9jGxgPbvjm0Zg0b; using YUsZCt40FaUqcLAstEQ; using YVTt4LF3PPPAsFuqTJ36; using YWGyl0G7bpvJ4V0iOyL; using YXUsP1VQqXep7J8pf33; using YXeQ6XjIusXsYsQCiA1S; using YaOY5gisO8WF3KLe3eYR; using YbKPg6iMqIrM62yl5Zr4; using YdDP68F6OXrrO3JULvxu; using Yjf3SkcXMnTYGtKiKdj; using YkoGVq2MCMQ9gbMggtZw; using YoCGiY8TtkWYDEH48dwp; using YpAUaljCF3XjrxjNySxM; using Yu6N0N8Rx52h6FD788KB; using YuILHu2TZjD5yVqZI4Py; using YvyxhO07kAaj3hXYRqy; using Yx5vsq29JZ5EHDC0wX9y; using YxP8UOMDklmNrdwCTJ4F; using YxhwmljNgga9VTGHc4TD; using a5amOs2A5rg499jRlWuv; using a5q1se8UHUdTCLskKDJ5; using a5rjsJjIwJ7bOGIw6t17; using a7OhKHFRuqEkd8TmNhMk; using a7miRCM5nJx64gOFNtGF; using a8s1Du8erDScAnbtd81L; using a9G9xQM1DMb7c6TlUbql; using a9V3utF4FsybTW8IdajH; using aAZCbRFs7BbQaha1emew; using aBvaJ0F21miw1YFqmc84; using aGNpPAFIH8Nl7Yy6ISKt; using aJT9TM2ljXh7kCxUrma9; using aKx80goTYqCGHAHFHNb; using aL3viZ8tC0O0OLfgYlX2; using aL7EZBcWZuSgte0POol; using aMdOQV2lvwQahyJjNrpf; using aMpdFY4m5vY24LC7B6G; using aNOuYsi8SbK2HCar15Vw; using aRxKX58O3tBdH3pT2w7N; using aX63hl8qoNKUpeO5VJwX; using aaYjuu8lfWFSGtomQsK0; using acmQG72RqyrBMmNlkUp8; using afFVid8PEDTfdis35ywX; using ahJ5uPFKVErgQ4Ij76UR; using akr1pOFa1WqhtiFdUtEK; using am7SUQ2TzfvQ9Z80PSPe; using amO1It2oLEhciGt3yIOa; using amOElvjf2UeeQBX44f3R; using amxSn9jNV0QaEZPutI2S; using auT8kj2vqxD0LRrVXaLR; using auscCL2X7Yr7AUKaaKvi; using auteh28glPwBJTpKFyDQ; using avmHwWF235PlNXBisIrK; using aw3dI42RykDiCL4MZ0fP; using b1qgcKFfLd6eQesxMJjS; using b2nqFbFdxLFoqTQRycot; using b4dy3d2EIBFN4YMeJNFc; using b4kpgj2ts3jO3loyE08h; using b5D2e8M3AG7TlqmQyoGP; using b5hJCy2BTgWtJyJpom0N; using b76HIHFbW1A58RXuQxmK; using b76TII8scZtCMwxm4JEM; using bA3s1AicOBNLLpjrHFql; using bEKMC3FPRyGngsc7QTYp; using bEsMr1iKKhBqYpXEnTTs; using bFoojdFxtwf4ONkecv7s; using bH6GHPHRuIxr2oIfvkC; using bHhwIZ8eN2NkShRBcHtZ; using bI7T5XM6Nr9mcDVJIdKm; using bJFGDw8K48WkmaPtwvBZ; using bLCW962v5xakbH83Y7W9; using bM5v9w2us1gbONHCvWuj; using bMkCy3j20DACchack76o; using bNPwhqFE5RHBYwnuvoKc; using bOFYWc8bXMksegN1QeOh; using bOSWj0jYNibAtG96cow9; using bPrsye2a1tR6UGDLTANi; using bQlaQI2v89L87N5CoUdt; using bV2UEjFUaQ9l2ehTe1fl; using bXF3cWjmcXa7JR50kLdW; using bZee5n4UAhhTa6Wd11k; using baf080FpAwfpjfeJ4GTa; using bhA05HjZ6lYn030e5wAx; using bl56twlwCaSoMw6Pltd; using blCkMAibIPhmc9vIsMEV; using bm6cOZjCpyavdQE2Pjic; using bsS7yJ8UBSK2HKKTnOG6; using bv7AXLF9cSNC5tMRGQIN; using bvB3Uf8kCMih3DmKGpmI; using bwSP658FpgKk3Leh7e4U; using c3B7koGejYO9J0GA5Y8; using c3HWiCjT73vPlkQT5KLr; using cA5gmOMFqQj4ZNM0reON; using cCD1cMFoLeemWW9G2snh; using cCkq3Zi3XRQNECRNlltP; using cE8KIiEnswgUeJqqL7N; using cEC6nmMbcogRPNWkJsIY; using cFI8ZkisGeIAJg0hWSkN; using cFqaMKFMUPygSxahye3U; using cHW9CN8iJ6wOHsTSosiU; using cLAeUaFRbCTCGerfeXqL; using cLhVDrjLEHAeBUMQCrar; using cOx3G9jfsO2YoWnJIQ0A; using cP0YweLbVAUmj2DZZ4U; using cPeTpmMXK3LHLUetqq9u; using cS8kgajqVxVcvlbCL1pY; using cSqXZRi4le4qVWW4hejO; using cVZefMjEhOv81fvWZ1jm; using cXN8cu2wKoevHKNSMD2a; using cYmT55i2QvG6bvXoUWDE; using cZ7sERruj7xHrXejU2b; using caITt15wNhA112y5CKI; using cbZHl721PVqkp4Lcgg74; using cbv3EbMflE432sh7Oye1; using cdkWc3jCJd1ZT070an5F; using cdyEseFuYa5uPAUZE1YE; using ce3mpk8jppsmyj3sY26b; using cfAralAJdGl6l2y2nMc; using cfGkCMFGmt6iZNNC3ycr; using cfb6hOFlo2yAHJO61JbZ; using cjgp6vwhNhB6sONT5Cv; using cnUEuliie6VVNuQP64MM; using coV87AM5JG49vjfIi2yD; using cq7Y738gK0tD8rvL7wDR; using cstPXWigODi4oAV4krbR; using cyouBdK4f68cEMr6Yr7; using d1ieU78Ufy7UfSwcaQ6O; using d3abv48hSvqbnE3Iab5X; using d4mXm4jPRuGTSrc4kkZy; using d7wYT6LAXPW3UpLPnAZ; using d9K5BSFvRTGQtFlLNOxO; using dA0aBXiHBBwEwLN3IUre; using dDvSgq8JbVpBLnDPUKGu; using dFMcetFIZXaThD3NMsx3; using dFqNssiCCdNAGGJw8aVf; using dHa7C7iolhqGrhsuc8mc; using dJ4wloFIjQZE9XU7vRVk; using dJl3t7jEuVWjRCnHlwvf; using dOpDAq2Ecpur8gpD8uOd; using dQv3lZMIbR1H65328kiY; using dRT3PIFINMy9t935aUTQ; using dSMqhc2d1BTk5ObWp5rM; using dSsh1aFYf5nu9e1mKotB; using dVnRpGjTeoZ72xtk5y5C; using dVuwb58vs1Mo0eyFC4Ax; using dX6qHlKgK5RPa4UBZ16; using dZv2PNNCvZy2msnObsx; using dbNphTMf3ykPTVItM17r; using ddlulH8bNBqaluhl6baH; using dfyneBFdtw8T2Zb0fwtT; using diXtZm6YYJK9Zn2GyvQ; using dnGb6fM86Sm2ffSKXn1U; using dnUG6R2FMBcE7HqO9rrQ; using dnhBLoigbOTY361pBSQo; using drNlgXiuWf4LK1G2bJeb; using dsG6jRFEpGHTS1pVtyIN; using dtsDCbjd2OLe7kZcl72b; using duKGWibQu8ndRAIm0bP; using dv47LVjVfb47oaBj08Lx; using dwuZ2jltYMm5pUT0cTT; using dxTiiq2FZUlhWfdomCVs; using dxhyTCI806qw3sYyxhn; using dxkB4y2Qvp0BJ1yLB5wg; using e1F4JJiqo6Cn7dfNFvEm; using e1tBAy2OYi1PThWhoyh2; using e30jovMpVKZa4uOefUXG; using e3ZtnrFWSgy2TTOJUYwP; using e5o2URF1twKl6R85VwMB; using e5y1Zf8LPSeYL9e5sXJu; using e7qc6A8iZJ68ptRDHLa5; using e9w08c5ofrpXKlPBq2c; using eD97mS8pMfjbw94M9Dac; using eELtjtDjJFDFuMHcGsj; using eGpAUWFlGCZDosJ1UUXf; using eLH3FbFaEf0yGFlNUpEh; using eLNrCgMMp4HK696TbTAr; using eLkXsR2a7QR2ywVMWNqN; using eLnEdXMwmCPUsB9DgiiJ; using eMKs5eMPi5y3Xixkk8uZ; using eNB1BDFfHQplDxLSia5Z; using eOpu2YAc85W9hbwYtTJ; using ePZUOmF068oAKtXG29G5; using eR5GcsFifySmY0WPdoUq; using eXNTNyiqSrPxCUC6Tkiu; using eaCWgXv5hjxiWThk9V1; using ead8wl2mZtJ62kHO0aCA; using ebmMHkjUm8k6KgUungpH; using ec3EG7F4WoC1L7I95oqU; using edRtPJjUNEBeLiau0uAT; using egmM8e245ZoPHhI0X0Dx; using eh2mvP2oidvu8K726HwS; using ehMS9qiSYUVpcv4NMtw0; using ehqsnVjT483pCOI5K4GM; using el4AnBF90Vy6pNxiGgmd; using el9hptMV6wliiTRSrmjE; using elRNPQMgjwAZnXSXGM2b; using eoiAmcFobmDtTFGwIqUr; using eokCItjc8IObKejXP4Kb; using ep6cGeFYEfF3dBjKBYkc; using eq5BQ7jrVW4grIsE781M; using erjcxOi4h3VpobKrE3sx; using euLDqCFAgxLjEyYha6GC; using ewG4w8VBHMqfM2Jgv5V; using exYoQIFKCdn4P9D11nJK; using f0VlBTM4EOPi8nX9llyY; using f0cvkGFPH2DclVYuG7Zk; using f0iBoXFQel07jgsnkD5n; using f5FTnZC2s8duVY06gjr; using f8fGZNMCeMQIa1gICXTn; using f90tOw2EvOV10tNSdhVr; using f9uLGsMBVwAlWVr6dZkn; using fASestF3F6JvO0iZxHhS; using fAhuZUjXT7BVGvefqw9m; using fBhbUUbSSsU5rVv8Ztu; using fCYfrVMeFg16VQqQxx42; using fFpMyM8Fu9vU5iJo3eCF; using fGZZ1XMUhN0thPS5gaMc; using fI494KjTgGEyf8l3y7nf; using fIjZjf2mJnx2b5lAMQgb; using fJYZd68gZIxwpCraDOPe; using fLdSQZieWEPnaoIyH6Pm; using fLtVy7jZBYt0tmm2Fon3; using fN3Ce32R3mFJmRhtO6bw; using fPKM288NutkaS2VyN5H; using fRMNk82XpVi3smUEKUkt; using fT8wAo2GX3eH8W47XFgb; using fVCklPu0eaCfCdX7w0D; using fVE69Y8MtghA6458Y3g4; using fXI2fWmMD99LoxftoYe; using fb5tOAFKvELUfvvJtjvk; using feJu2iFnMJBr1P9oWZc4; using fgHwsu2dWHYqoUYgMliS; using fgSM6r836fAtNpaTipKi; using fgrc5V5kbeWnWNfyBVm; using fh124uMJ0oONStbWk2oK; using fhH8xxjLt4pIMtrJiZuA; using fkMo6Op634KpW4tusxa; using fkjZMQ8PeWBdLRc4ichM; using fmXRCJiZzJOQ5JWdSCyt; using fnfvh3jrUfFuUCc28532; using fo6Lg1ER4erC4CtdQCa; using fpaVUyF4DApktoo4Vc9P; using fqb6inFRQfCWO6bkAtn7; using fvvHiU25JrDIViKRQmbp; using fyepIFFknKlBmvJdnq2o; using g22qj9jbKBrOh3MKcwuE; using g25tYqFucJfi3eAAeYAH; using g3kBAsjDExtdJDcNHX4c; using g5hG5orHT9tbbfeZL0d; using g6SWBjceuLW4ja3oGvt; using g6tKo4OeWfYvu5l5bx; using g86fbBMCVHxiBw9YjF40; using g8Lj0lFrpt9R2PbVvmsW; using gAjfs8jd8B13AEdbTiwd; using gAn1VuMQ7lDJfw36pGEP; using gCcFru2om8Rg0NZMmWkL; using gCosMt8BZ1FTrdUYlEZm; using gEOdm1fH0X46oJKQcpv; using gF4YSIMDCVvVBnDguKCr; using gFx7tvF3owx8FCtPh4Rx; using gHFUxLiBfYdtQ2Ki740; using gHfcVyiTkrN1FID7mVMl; using gIDXKyFQblBAb81SQ14h; using gJXFYDGscALoU23wWit; using gJZIKcRMUr7nfw1GRFY; using gK1yAOiCOMDx67DgVtWj; using gN6t5cjqNZgYREEhP5eD; using gNV53sFK30JRXuiJZZSh; using gNY2I88KlCf2FpBiF4pM; using gOu5oRFamVOd9oFbqjig; using gP56sn2np3XNrIfoeVp1; using gQge7pjVjaxHergUSQLH; using gQgvctbxjhPFcBBE3F8; using gSCCwQ2qXHkfZwheARRF; using gSCIYhjVnB7ybNIB9UbK; using gWiSCNLm6hYqA9dEFa4; using gWilAZ8NsRp3uHlV1XbL; using gXoesYiKmKHYYG6U5Wrb; using gYvKDXi4LUvuDSUFhCL6; using gZx1N6v3ebSC8jByTw3; using geODUEfNZWHO8Tjkerg; using gk1RxV8foiwgLRafEHXS; using gp1GhSMeoUvaPY5xhKKL; using gqiDUn2tNLQ5TgvBO7rP; using gv6MJ5jH4ExNk0YRR4wc; using gvbuIfMpdMl2DBa67LXY; using gwbjgAMD3DH4gpfSHZmu; using gxPbx4iwEZl73xMTqHAS; using h1fnbLMsiVlnwIMqlBnH; using h2IcNF2PR0j1cUCR7e4N; using h3dWFA89ALomTOWXUQMQ; using h4S52o2ovJb7Tr3ou4Lt; using h6eDn8Mynbgw8UadPlnT; using h7A4wI8x0mqQLhVX88cu; using h7BwIt8rzv6OYXpbxMjG; using h7T08qFSGcL48sIJIcV2; using h80pHpjWXYoI332XwfZg; using h9vLMXMooHEIgaSrenFs; using hEbZNZMuOjnieAF8nFO7; using hFHVvd22W6UsT4dOU7t4; using hGYA7I2LYXQ166YKb6u4; using hHjGFajjrvJDqr7jZleH; using hIEkZt8f6k6JPaGTJPRJ; using hJVHYvFaRNxsrNEVta3s; using hM85FTFXfegX7RZ7upIu; using hMZVVTMaEC8R64rrSGjF; using hOTkT3MimjeUERhKHlu2; using hSHmsbFLoKgDCbPbZMJK; using hSfT2PGPuNqfAZXYZXq; using hWB93RoKKJLTyIN3wbm; using hWkqnRjN2aJVmsCH5tJk; using hWnCrkF5bylFSqGHqkYD; using hX8puu2n78B6iLoC8GpI; using hZg2fy2lrFDJbkoVYG2h; using haeJolFho5EP4W6E0Bja; using hb98vFjXpNkSyouRX0e3; using hdg6FRF2dEG0wlC9ylXt; using hew5gxij1j2Mw4IB12WJ; using hgFB86zbvIbLDb9YRc8; using himfNKi45uhqPeUHM5n3; using hjEkYh8iH0QjKVE0bcMa; using hkZkEn2XOl8FDEoeqdKt; using hkqpnCjMuymYxvhdtIrQ; using hnWfCe2pilDD33EcU8g4; using hqFoKyj3w6No9rAoGBs9; using hsImraFX8oOT4qAOuG7V; using hsLGqHjV476VlCHHhkXA; using hsYZ4EjTfY8QjqZli9Lf; using i2c1l523epMEnhejFIqP; using i6GnDjiBAVhhDXUPBAU6; using i7E4AAFRpZFI7cgedHFb; using i7GqMsFUr8T8tA6di8Nr; using i7oBsqiZkQmBmfnB8Bow; using i963Mij3R6lpXaJ4QO7O; using i9N85C21jGjU7J0Bp0t6; using i9aEUP2o4lZqSBUATaSl; using iBpoX58Z91PvO2vkvsFf; using iDIwbT2X4uPX2FCjSKau; using iFH7A26ppSs2TID77qV; using iFyQARMBXJvKmAxhH4Ib; using iGr4I48BTjL4gt1G1uLZ; using iGxSSK2gqdlOfyWLj5eY; using iHC5u6FHgN0p69mAk4f3; using iI6Ij8jD0lpB7E7B4XLU; using iIKpZB2iSc9QegNGIQCR; using iJ6GaSjVJMOxa8Ne3X6a; using iLBiNVMtfFNiPUhgd8YN; using iM2swTFKtJUrA7X7jNgb; using iMuocpM2GOjpsfOPVvGX; using iNaBOVMagvXK2rkyecuu; using iSiv5lEyQ8WNrZyKPZn; using iTEkZmFMPbrrMFh412ts; using iVUxJO8bVnn1WUNEF3uJ; using ibrMbWyZfCJFZjAqfUb; using icrvI3jE8M3c07MAJ931; using igYg9iM8oGEEX7qmA9c1; using ihpuM28WiAErHxoldw6G; using ihvjZ18rNT5vNICmgK6X; using ik3wJLKIyvqNdjxXS4Y; using ilVKb1RD43kwKG6VEIs; using ilwjs92bUVsHOanY1pQj; using impR9RFRddR44SCBX1iY; using in4UsiWDZ5NYYXdkcXa; using ipnJVC292tdNmo579xg1; using is0geAMPGs4jNwl3MICx; using itetONpYq93qoRg8Ele; using ivMKKD8LnOURQ5BDKNu8; using j0wUAmjWe0xxXgpchYK2; using j18JNwjPoKBavl3BCLtV; using j1FEJQjw5WP8XXQSAAjW; using j2h5io8J4mdh0WJAlkfW; using j4MP6RMUmvId104dcCPZ; using j4q5xyilmvLJ1f2fSpKh; using j6h9ZKigk1hvFZrsro3L; using j7knVsM81SGlWZUl5xIf; using jAZBEMG8TCPd8ykBFtH; using jBjc34jWNo3b2W3tkkdg; using jCNOTiCfYSWLTarqlUG; using jEpfw6jUBBtHWw9PSCxD; using jF5isMM0RTG1BhsllOgt; using jFG8ylMzqoU0K7ln4GHF; using jG8o4S2dINTQB4FgCHpQ; using jGEfJYiM7nrxw6sJ1Wdi; using jIdH2HMgtmukxfuJ2FY3; using jKAqe9XJAKnUqQoyjpn; using jKwjJ8MzgyZjlmDt3b7V; using jMhSma8nF311mkHLjEbI; using jQq9nBiPNAdbusZwcFVx; using jQxx9TMPLMmBNT8NGZdD; using jSpoGM2Xs0koSYhp8K1K; using jTqBIm8i2KLB3f3DKHvx; using jUTy398eztFCBAAmXjdX; using jUWriQiS0txSTTBwrLHV; using jVFFr6jRkQjFmhluU8ax; using jVi93dFyW7l1WwFBOXsh; using jW45fpFNawM5ykDWRxDG; using jXwc0X2QioodtNGNPhwE; using jYjYusiC77LNAW7rdRK8; using jap88AFKSI7UQtGfjKvf; using jbPBYPMesBatdIHwRB4r; using jh0RH0iHIDmXUm5VjHmh; using jhLa2YFAvxGrcSpJ1HbB; using jj3dlS2W63ua78gUUIVB; using jjHhd72oNvIiOl2yCMHu; using jlQQPH2qVxNLW5wfoD3s; using jrgjYgj8gE17l6XMLkTS; using jsiLOrste6PIdRgG127; using jtnA8RGZhDV2hfKi07V; using jvxWAC8LFaQx3ghRIWpZ; using jwBYQx2QgkCPjU9OdnAu; using jwoOUWRBmlHRaCGurmQ; using jxeYtjMp0qtG4CB0y9jQ; using jyDM4xiGUNfLXGy6WEM3; using jyJ9ehGqVeWDbPnEMDh; using k0qIdrM9bRGHFUbeStaU; using k3QDFPoJlFMFJ2bV9As; using k3TOlqFNSTrBvs3VYH97; using k4ERgF8WWYmtnYxaLpIg; using k4FSiU86eT93fd9DaPV7; using k6NECnjs4kWqG3rHQdMI; using k8dkOV8cMxTs0oZOiWbj; using k9T881FkFjEHlSP4XM2R; using kBaC4viXHvNQFNcEERKj; using kCFj6yF6MoRDwTc7wvTN; using kCTtEEmDsbKfOVJvYwt; using kCjNfk2Fasoahw3KMam9; using kCwUW6FShJRofwhc06Rs; using kCxfdyiox6XAi45Ro4Rk; using kETWVs2FdAYmEXykKe0I; using kJkow3jGJYjHmf6IbGHy; using kO6bP8ijw4XpQuIdm0vU; using kOgpnikyC5fiZh4otqb; using kPFqdL8dBnTJhh3Bl2hY; using kQy8T8Vcn1T7sGwAau8; using kR1w9RopoY5VMfhetUW; using kRMEDx2BdwabeZEdWkRK; using kRffWmi8QhCgdR7PO7Rc; using kUChxnMDnaZFq6nM8LgI; using kVTcexjtuDYUnpW9ZjEB; using kYc1V6F9S4jJPgCJQfGK; using kc9tRCjWpSl2CMRGl9kf; using kesHOE2Di1AmlT9LvmtS; using kfrT592qaqsb1kELQBG9; using kmCY8bjtvijF5yOVrOvM; using kmFyqYFQ7pq50ASM0is1; using kr8369MSj8HL78q523YG; using kriJwgFTKRlkEgF8OumZ; using ktsxCI8xooPL7JTP8w0B; using kvnq5miQvobf64H6PYKq; using kwMbc3jCmRjeG8sx1rYF; using kwZxMAF1iIGQ612pO8KH; using kwuKQiFtNbcPmWVsl1W4; using l1eF7H2oEPS0kTBpIkWZ; using l2InC2Mw3ZS6XX2Te8AF; using l2jNTg8kd7AqiTf9V5RE; using l7op91CjIc5pbqAAssJ; using l8u5Yw8imIIJeXTXX3uI; using lCkxpDF05SSGSmyBvgh9; using lHNWBDMOhYe4oxlsqpXv; using lIiVPZjh73DukcQiINjJ; using lJVKFqRdrSVI1t74lhA; using lMe2ag8yKoll6EbHPsVa; using lObrqm2ArEIwpKY8AlIV; using lRXrbIiFkJQujNgkaD2r; using lSd1E183bebmuX1tGrM1; using lSyDGRFXO3HgUNUunJgF; using lYYwnq2QoKwoVEr2MtG4; using lZFao9F0uHJ3MTiMBfR0; using lbLyXpFYhbt9uNJ0EsgB; using lduNOwFSADsmBKLs4Bh7; using le4YWX2tEOXx2fGu9g0F; using le9qfvF0otD3G4yETJZc; using lfBteSFIItFBLxQXMBWr; using lg0sYYMlAx737lqN6LIQ; using ll4tOdFtjKe9LQ9rbQ2d; using lmOy3gMZeAeJVKMLJprF; using lrhlt8FNQaLMjSx2QKUp; using ltnNMVMi0QLbSqcIKXRO; using luDVZRiRhF2I9FGBdcmB; using luYxf3iGSdsLLpy95yBu; using lxXu6RgaJM2DugDbqFa; using lyEDqsFqNes2Heb61JjY; using lympuYKEkqrMMSldif4; using m1VdfNvQWqMKGhrZUJW; using m1dJJEjC1BkT4Zdtm3Gy; using m3gkZtFmwE6emjSsbocC; using m3wsh42ge2FM4933I6RT; using m78IVTMOzxEaumSDBGLs; using m7xpS4b2uOUyQ0jiJSZ; using m8QlWoFKdsX3hAgSRMJq; using m8WrC8EupK4VuCUS75R; using m8ajIBF0RVRpRIK0GSdd; using m9jS62ioGn3ZStu8cPGT; using mAKgWs8SrsfanMEapFx7; using mDYZMBjrS0n8TnyWN1L8; using mFnDgNMccCUICkBZUAwJ; using mGOXjlFFTAxBLyj8U8gZ; using mH8XrFMfdISY0U4lDsDO; using mJ1DJwlBY9I6H3YxHKL; using mKVgEe87wAdL7W0vhiwO; using mLbCB02UuQUGa74rplG0; using mM1hvV8SfpeS1KNnm8oK; using mNu6E1jVbXbTZUQMktdN; using mP8Yd3jC3q0rhD4gRQWf; using mPly1ksrZusTBuVPvGN; using mU1bhSFGxBME0gPouuxt; using mUNDYo9PA8JdUlCxbcC; using mVngjniJOb0djgWnNKSf; using mW3M4i8NEN79qboKLu8X; using mWRnOAjZWnSZPYwuppDN; using mZX2hdMp6NYFeHVdDCS2; using mZgomJjxZJNUOHcCoaPj; using mcdlcS5VH82E3qhXa47; using mcr6Fx8lQiBxQ08cFjqv; using mfE2MhF8xF0FO6oHpGG2; using miUhQ7jDRGl9JHm9DqID; using mm3mVH2K9KkQYtMfZ4Xx; using mpwXeOkdCYnomKaeVJD; using mtmb1UMygmCTjqE0iNwA; using mvil24jVTX2iDHRPDiFM; using myxlkCji1i6so31Q5Lnd; using n1ZRDM2NiJjxKVrwSCGO; using n2jATbMvZ4SYnWhtxZ0M; using n3RhTeGaWQDSq0x569U; using n8KMRX2NvwPWxsCHmyky; using n907dvigBs9lV6wDEZBo; using n9VZsOitkfqvkmjbBZFx; using n9X6opMcUkDWnk69GefZ; using n9pOwwMzcMfmBnBSMs47; using nDh7jMjto6KfrKLo7ImS; using nEwMGO88nsDMldR5SSAp; using nF1MrrjWsA3WB41epCcA; using nFIlCg2GUif4IlnXH2yc; using nJWULZilihQrYcWutwGS; using nKgsPNTA2KQSRPhCHq7; using nNXUTZMAaHZ53G3xOOo1; using nNsOH7Mut5kioLIHugXv; using nOOOfCFHzPPCGNuNnHI2; using nQ1t93jEOnjMOuHJBBda; using nQRfurFpv5jJS6FRXqNT; using nRBU5QgZ6ZrLpPhdU5q; using nRuUp9WCoPxkneqYZFJ; using nTCU7D82PCvMNdP684bM; using nTCWNlsKgkOoJmTij60; using nUs3HuFsYUMe60X3xxwa; using nVhnfDFsPoJcypL79pu3; using nY6QLiMaWZDEglj9fAig; using nYJqm1jWlPnx5wsOH8xZ; using nac2y32FuMbFYOBnAgWS; using ncjC0ViqlYh75Au5lQOA; using ncoiCF8JVgQHLLXdrOpn; using neAmk4MBfya7ZL4XrEQp; using neCt2l8UW0LkVS0aHE8B; using ngueup2iJTvKDBlNSvCn; using nievg9jC2OQbURXRBZ2s; using njgvKfiUANtvcEPxqdH; using nk1V3ZibpsPgLyqbk2hY; using nl1xQKjp4oa38hCNUyFw; using nnOVIJii81FCybIA1TsZ; using nnb7ZCXGj1lPN6WAUES; using nsZC82MCmHXelSMMttwD; using nsqZ3rFpIs0BwTkIpyf9; using nuS2bW226sktYAdeTYlu; using nv9YsCQpT7vMrPn1spd; using nvXxcosT1iYqaSifULH; using nvqJJhFxDE3PBqhtmpEx; using nvvwRf2Hes57JmIAXSNp; using nxJJsgjMqv8M6ArmELsD; using nyNLR9FyxCO64x1Iag7P; using o32QntjEZApG5ORTCwmC; using o5qTkGien09xnlLlaTUQ; using oAeNXjFRgYMk8Y35JH93; using oC2fe52WLRWUCIZX9BeM; using oCtcCOMYUSVdwv5HKG5P; using oD1sANCdRe3M1p2CJ4g; using oExZc0v2yu5ewWt2cZo; using oFwXZoiaitTDVNyNxi4h; using oG2jyl8EnUji5gctmHfY; using oHN97i2KZ0xt7D0y0plQ; using oHfkBe2mrgb4P883Jajp; using oIAXwQl7abEaucwlqVT; using oL3wkr2j9rMi23lCIwKj; using oLLAvgMdsb2FpyG90J2h; using oMQCv7M0MCnghRmJBlZB; using oMwwrOiqLJSKephqTE4L; using oNGJACjVOLvlikKto8UQ; using oNOS28jDdva6tA9RnX4V; using oNiPR72QTvixerANDcnq; using oO4jfXic17xmQgFBhfNt; using oSw9FGbCDOs1q1fZr1m; using oTcvwNx0whQJG34gEfy; using oUydZ4jMbM7aLLirfEv1; using oV8CBXF6wHts6Td3IsDp; using oaBgUZ81qpwW0TOqScaA; using obZWTibzraqglGdvTuS; using obdaCjW7m6TGxbW1cZ3; using ocOsDjFuVgkEYhe9XtIp; using occ1cfMP1DCDhhqJdJYc; using oe5uItjt711UwQuKx6jy; using ojwhJ92vaWM781mwoYOr; using okSjW9gCO6MYVe8ICRi; using okUOwaVgEsqlCDlfEJ0; using okYiAZC1QOhUl5ph5Jb; using omHMJYa4o2dHg5y466e; using ooBe1JMps0CggqNEhRd2; using ooFYe42sy348pqAejTPP; using oqK9IGFdLdU4MPmsMqNL; using oqvUe9MZmRLVGoBfTKf4; using ouX3TtFKNJa0SVBaRhnu; using ovZo7yMgOivWTdt1I6y7; using p0HQf02WdtChQOJKfuMJ; using p1DB7VF3bMsrUXdtcos5; using p3vR2QjcB3PVccjlZVIS; using p8eyUOFAT6S0sMMYRrWY; using pBAK4d2qhjMIeMMCWvUl; using pCsh1FMzBZdA6KDqqPh2; using pEEToN8SdcWq4il5FGmx; using pJNmeil1WafjURc2hnL; using pMPguEFVAuqAZN5Sctiq; using pObV0oMgNtNVGiiPB70C; using pPf15DiR2TJ6cP57g6Ib; using pQLI1WiPzWGfGVnlx39Z; using pUKMD7rbEXY7NiK9Hfp; using pUhdovwGnJkrCufdR1j; using pUqM1t22FlmFbFMssPn0; using pYEHOA8XpGDudO7Eh1PZ; using pZ99OGR9dYm8RHpfygD; using pb8iOS2dqywEZ1wfUqMp; using pdDX89F2JTWQF9BTN42R; using peeb2fF4xehqwiM1rtRM; using pelg5xiMesqagBH2AgUm; using pev9B9jawUObx9cwqoTC; using pgX0qEFLiFqsPMhY7hTT; using phk7A7jOnaNYPucesFZF; using piQ5Bt8YHqUFj6maYMj; using pihT1WMz2kIE2l3VWutl; using plSjmwMvKdLimEIpNhqf; using pndcBsa2tJxmpoJkKfa; using pocRJRFRYEnggfSqsO4u; using pronlS6RQ15UPoCwvCd; using psK636dfIoLET0P1Yid; using psqm2yHsip2uYdFMMxP; using pvdADHjfjw8Rt9RKTLCO; using pweQn1jmRcwuQuEmjdyF; using pyf3IwjhlNSmbZX9hnTF; using q2MoE1FnJq9E6hMeUoGQ; using q3MUvNFbAGPUIpPQtmMt; using q5rho224DEeD1gZGGrIy; using q71wT2jFhL29CIo5HZWq; using q9fmnk2sfSO1gPbjFLoI; using qCCpJ9F1k104SkvNJD6a; using qCaMSaZffRjqePFlBGQ; using qDdXekj9N97OMyeKqofW; using qDrtwpFWYlCVSti7v4Aa; using qFuUgy8HJCMKc8Qt2B5j; using qHTrXQ8FDHx6SwsACIfW; using qKWrJv5skE9q9TtoLO7; using qNaSeekjH0B4jSWRMS6; using qOvOo68PA7G9hnpTdLPr; using qPG2RMMm43xmS5T5fPCl; using qRuUMKjVG31RJ3ytspEb; using qSIjfKFRvYEok2hHaL1N; using qUYubuFtYjEuUVbZwrQI; using qV5FfL24b2vb9HyQXKMh; using qXn9D3iEs2792j6C3nPy; using qYoutPRfJGs3LO3SHcD; using qYppu62XDBp1x7HLplVD; using qZv0b7jcTvKcDEQmRXkP; using qaQQeVMNhTgyG3LJivfh; using qo7KWK8YCaStxBbRENP4; using qp424V2qkajRryHxZb50; using qpf2Yi2auRiFGdSA4x15; using qsCMAbFbi0BhwwHstu03; using qtuvUaM2XNa0KeTZEa3y; using qv5yhe28EiL5eLsWPtmO; using qw0AhXjG5TwR52XEjpYb; using qwHnM6iZW2BAfLZLI0dU; using qwg5Za8VRdmV3qaIA0VD; using r27AGPjWuImP29FuyQMG; using r3rwTiiM0BQDKWfOpjbN; using r6AHJOFQNIovI4pWZRNG; using r6pH4kFKTtP02PRWieAW; using r7ZCqvMeAB14D5pXFlrR; using rAC9f226XGplCnZlYE1S; using rAKF6RjVxnckC6290pGg; using rArTGJMzbkmk1ZyXBBMw; using rCo2rR5BetQWdC8EvKw; using rEBOwXFT5EYj3ZPp1Xym; using rFKsHqi2PfdZyGCoWt1b; using rGeg0TmlJ5wsPbrBcuM; using rGg2rig5celCSOGWias; using rH1YMB2ELg2dZ3vVRFOW; using rHHfJ3j7RKanl911b6Zg; using rJHMoFigqdNrNa6eeuAl; using rLD83lFoY7XadbGFWqwY; using rLW2rD84so5rtLSPdfCJ; using rP7KqBFdEVOIYVvA44vq; using rSRTU1FpFJTPYnHgh72n; using rSSdktjvkdBYJl2hfL2s; using rTYUQTjhMq5VhC7EYkA2; using rYf8TuiFYZo6SSr3iwkQ; using raTVPBFuWonWNtyupXOB; using rfe6jw8qIpr6rdHK2uW5; using rgfJ8c8K2j3BQ7mNLMGT; using rh3fEsMkSq3Yuf02YEiU; using rhaPQZjrESAj9vJSgj15; using rlSF2uFvoo2F594IfgTh; using rlwubJFZv3USNsrmMf90; using roGU0hFd6E0v04hOrkGc; using roSAHXMrjuD3qRyTiiYp; using roXISCjPDlbloXTYlO9U; using rq7LMFMDmwOoylMG6E9D; using rriLNppbOSEGo6EtXVM; using rtiERY8dsCSRp3QmUAuu; using rxKDU9jWPdACc9q38rW4; using rxXwop8kYfPmSE5FRri0; using rxZDVD89pdrU8n97Q7uy; using ry3fwFj6gevg5WYFxG40; using ryFqcbFpUE7HyVRA94Uf; using ryGoIJjupRKZ4aHgL2F4; using s0Z06n2U6F6ZRqvaodL5; using s36mRA2CrlHHjakNTKR2; using s3BrIgiKT8kNemvl1b52; using s3J9gA29dclVAPdywyvB; using s4YFNyjYZ5ZrQgFCqn6L; using s6KbDFjDF3aFyArwBxnj; using s871qwswUPJMFEtrlV9; using s8oO3oFigBH7tk175I1k; using s93WXZ89NwMUI9O81Fl3; using sBKLNDMFGSQD2GHEpfsM; using sCCIdlFm9pNwTtPs5Mu7; using sDPF49M8FuaRO76TmsiN; using sEUXL1MDePmHpt1Id4wK; using sEdITVMEc2EwnPXIqyky; using sEyW4IMtJUncWpu2PDnh; using sFNILDMvcJxRNwD0AktK; using sG0J958rANjdpPjHGJnl; using sHWBMdukEIuvNLnK6lI; using sI2F8LiAUdPry0XrwZ3T; using sJ30mWfR5YkGe86idRk; using sJ3PMwm5lstVL363j62; using sKP1saFl9GE4sKocQ7wE; using sKuRS8jREvhlidPbNvw5; using sLPRsWjWrmMWcANhYAfI; using sOOn4vKrpbAcuECQwSy; using sRUA6pMwpvMOlULbSBMQ; using sTeW8WFtorhsPSb6dpsV; using sV1BRB2jPLmaAhKZt4Ir; using sVr4El0vFKGTwYOMfeB; using sVsJyClnsxJm2dy4MeA; using sVyjehMy6Wtoddb21rA; using sXUDw8Gkj5nYFDHD9MP; using sZGjG52PQ9paI1vk5M2r; using sdf00O8UbH62ArJ12i4X; using siAwHeMAjVYZ8nBr7UNI; using sjlF4ujcZBRvY5bA8Pfe; using sm7ftlF0GUHfatRtQNNv; using snX267itZ6cT1EPW47hb; using sqWWUaFryoL5718XU4Fh; using sql6IJjr41gVsUbx4aaJ; using sr6BS5jmMV3u3IdvqvTc; using srkrUXjDqeLxh7Ff9NCk; using ssXVMY8AihCZr8QxSDJj; using st9lhsFWxvF0iURi4XaL; using suTR4dFKoRTdOaKJNUlN; using sx1urY8lrZbvUVDrR5ir; using t0CdQ5MaybLjBf6FJDna; using t1ifab8RZdvg5NqV4hUh; using t3ENr9Mj8HX8Iw14tyfJ; using t3gdwmpU4KsFl9ieI3f; using t4heeA2lVi6SQ9YwMTM8; using t72OWWFDoUtGfro0GMeL; using tBvyDhkmH28Oe5AB25j; using tEFX6G8EKdZlROMOTiSQ; using tGE2bLFwikVJm9l77B7w; using tGQE7t8bKxwbblTruHlO; using tGfq06icB1oShgaUIPmk; using tHEwrbMNzofLYaGUI6VX; using tJEPFN2kFRatUlaqx1tL; using tJbVFYvDnTE2oFHutYl; using tMLDjSFQjfXY6Ramp2WS; using tOav2siBnIWFTkwT2cCY; using tQmru9jV0OkSSpf1YoSc; using tRvcNxKRu8HJiuOuSvY; using tYfMsMFIwuVyQc3n72xV; using tZbOhVjHQpeq8aOdZHVl; using taE78KMn2vmsr5G2EUn5; using tayHbe20OXNNSD0pU2b0; using tbN47biuUNCJPOY4YPGQ; using tbYiSgMMyUXBZFQsDjBn; using teqfP1RvsgvUPiX7kd9; using tiEWaaMzZTKDLFlPWqkl; using tiuDVc8BJfjVUyYoD6NL; using tj624S2OFhM8CJu1NiTP; using tj7SgQaLLnToXOmjnB2; using tjC2f5FWcnpnyn730Vxf; using tjRW99MKvDvOCwYGkmwh; using tkWLUyFdKOmWbX7LjtuR; using tniw80jDt863UTBS4QJd; using tpfFIS8hFe23h1syeOZ0; using tsvYaT2VRNlEEWifBKAt; using tt5qc7FH7QlbG8qITWZ9; using tu67CyjDNhuQYAej3abV; using tu9l1J2rBBTyWVkOV7ub; using tvivHpF6mmR8XAKqSAeZ; using txh4XujEiL23bSIDGbr0; using txrLUv2QO1sQKCe9K6SC; using tyxxJxFKzZipZpebKXgO; using u1hlZEMp8p5ceAcMBUZZ; using u1t0oaFrVXLmOmjKhYvw; using u3Cys8Fl12HARhnG67Nk; using u46FZ3E0783T2NUpQvD; using u46SP5p06u3kaaOs7Aj; using u4xGBJ8XHrWt0C4fdsJG; using u5Lp2mjtBHlOknRZFDHt; using u5evJR2L1kxWZItBPqAU; using u7LuFhiHJIpJaxhHLAOI; using uA03yTMVKmbX55w45OvC; using uCrPnuGGlnb8aweTZS0; using uEtNx3F1LqGqcmIRUZ5p; using uEyrnUj9IpDD0u6JsiOw; using uF4ZMW8yIRua8Z2djWXi; using uFOLGoMmYMBSwOXAP8co; using uGJNDqMzvbuIGHcJDTCh; using uJOdjqMN0nhlFEVpNrnB; using uRbDt4KpctQoJr9cobd; using uTWGnWFOi0LF6yVsNE39; using uVpxdt8Fzv1mb2LjKnXa; using uWxIqJLxLHfIYksEMxP; using uYdKVdFIXtNqPUHWna9C; using udaoDdFRAkZXhcWKjQqE; using uesalRMIFwH0p5KXoacQ; using uj2Vfp8aRYnkZ977IThD; using unN1wZ2vookebGESfQDs; using unvc8D2JCZL5FNjFLucG; using uojFw1FllenrFM7SXUIs; using upA4jr4xXJSln67txkC; using uqCUtWjshtClrQgoPxIq; using uqv1mbF0kKQYerDHfdUu; using ut4W8rFKATeJkqFhVYsW; using utgMNV8g7wCNFsIjlKmS; using uuPnhRJoB8iEVfXwVoF; using uugjmkiXc7wajppqGVFg; using uw4eji8wKVxxKwUBxn0O; using uw68o38pjTyw0LHt6sFl; using uwsi9x89VXkbSMAQV53h; using v1dGQ88mfxnsy1JdF4r0; using v1yIna2sMmF8wiqlcMyW; using v3RWIS2dAob8g25iciBF; using v3byUP8pOSbP8Z5V30Zg; using v3lHr8F0jIfkoa6Lqup6; using v4S8RJILC9CZskX4Hcw; using v9J1goMFxRd8PyLdf7dZ; using vDkoxbMzFQxwD6ZlaOsm; using vFHeKYMBNp8PIqFjwq7u; using vFwcftsoQpcgEmIJiYN; using vHveJK2RKqXO1vqObwVD; using vIjBkE2YZmn6fXmFJ6oI; using vJlDY3ITX25atirrp1l; using vLrrJMFSUoVN2GemKMEi; using vNENQKCzqOiUfjbRSEY; using vOF8guaXZbBt3BxlZ8y; using vPpNH1MnO1q6TvsyLgWp; using vVJsubapEDVx7AQceIQ; using vVhyigFwagMVQL5VUnHQ; using vWDBavMC8JKPQqhaO6Jc; using vWWamFMMQUfybgkmGLJS; using vZE0u1EoBhVgDr2hlpN; using vbKIK3F4dpGQkj4CrUFT; using vbl0fT2DtZ6586GuRHGh; using vcLXNbGBIXcjPjtXUHd; using vfd2GkFNIpHBWLc30ERr; using vfkgnE2PcHUZiq13Sqwp; using vgrACM2x8f8Arm2QaF5h; using vhBQtRjhkQxCTxRhZAsk; using vhmy4e2Hr1hCKEHGemHE; using vhpMrEiMRfZyHs1VsJuv; using viWDBEFI231aYsDA7OuB; using vjPOfMnnQxIkR2YLhMc; using vjxs4CjeWNu8q5flO4VH; using vklXqFFhCdh0ViDY7kp6; using vm5YkmKodt3hMF0JhuH; using vmo94hMVL48VpWNPuXbj; using vnDQCtF1z3QG1wMpQWkm; using vnyEQjFIznhsiXIJi0Zw; using volpcEiPfPh5ALwcZ3ZD; using vu2YZ8AZdVLcvl7jCQb; using vuoiKF86i6dDw7o96Wic; using vwKkn7jiCVf5WpUTgYwv; using vx7b9g2QAhiq0X1Z0EJe; using vxC6mfisavuGgyIZbBFu; using vxEdq2MXzP29SymR40GF; using w2ENQS28VpBnVMQm87IP; using w4GZZ0FntyqiWDcgmVFP; using w6GG7eNhFxUroLX5t1n; using w6UCPxjTMjbQglqQxBQC; using w7oVFj2SNirem9u54RMS; using w9akVviH933LJCOj5dQV; using wALh6v8KQBGPKoe4AHdI; using wBv5Vb20Crthj1Bmc4Gd; using wCmMEiMjEofYcyJ6UAB1; using wCqtIpMPrHksAH81lvYX; using wCtJ64FrTiARqMNW58gD; using wD8xbOFLxaiUcJo4QSEf; using wERlAxM5aqHdkMuWJn30; using wG81W32mcdcQM5uSWT33; using wGHu4qFiOKbrpXZCPTdc; using wH6mWDFnAfCulIL7qm6Z; using wIQYnXFRl5RlppPtqI5o; using wIV0PaFIyyVWpPgZmGkH; using wJnsqrjtwf9sQu2UwZVl; using wNLL70jzjikZfu7FtZqk; using wNfd5cFR3N1yUZvqTdPy; using wOnmfa2jWZWLcePiVLdL; using wQ0Hf5CmEc64SnA0GF9; using wQjoC1i4chZFASqXF7Me; using wQx43UMeb9CFOecLsX22; using wVRgATFm2E2PHSlaTuJT; using wWHtlEF95r4dLN1Fx0RA; using wWTj32Y9CjHTgxsl9fW; using wX67JIjMGUKrygIL1EKY; using wYcgu9X8voDLKRm6o4A; using wZbT7UjGXMld6m8bbwm3; using wcalyiMRlE9nx5j6ylFb; using wdCBT487i8poQ0A56QoX; using wdfMJn8vthK9YPjrOfoD; using wfBDwQFo74JqhoVP8tyH; using wiIKFoiCj63Dit1BiyPE; using wnXpeB2IZCVVJ9b96gEM; using ws9cBokeyWt1wr0ceEP; using wv1fZXi21XFEmElZ26Ct; using wwRhFVMqvwnHJiEG0np4; using wyir8oFSZJljZk7ZuILv; using x19jICFHYyv0TkmncDn8; using x432hqivAH6IQUvmOY4d; using x4KrJcjz9tdpVJiPX1tM; using x5yPdLFLbsTcp32Da1aF; using x7JxNK2mqvr18bjpSXW5; using x9CCTcjM9TetOt2inw58; using xBb0vf2doJwDsayuSqYL; using xC2uT1FdYJUbDePPnpls; using xFPklijz1E3ea2lMLy9g; using xHp5HSF5sKCFnWouVjO; using xI5uhS20x4yht17ChUcc; using xIXZ3m8qubxKPBo5HO3S; using xJ3KY48piFfu7CxwYqK8; using xOUX4SjWZMKbdPa1hu21; using xQ18sGQdoi6g2kdCuIW; using xQ8Hda2FToBij7mgel80; using xQQtZKNGVKamehbLqT0; using xRoSHk2wbx348nKAQJ9J; using xUmUYh8gVlsUMNc0slYC; using xVGq48sqHJCgK9V3uNT; using xXVgb7FQzK0bekyOENcK; using xcyiGfjXwpBrn0lB0umm; using xfUGMA2L9ooABvGdGBBX; using xgA54n2ozbplZyCn3sUF; using xiB3LM26hlT9hwxHdNQt; using xjivoL28KlPjwQrHYirY; using xkQyMGQDyjdg90ErOKx; using xklWuqibxGIg2FtC9vuM; using xkpbC82l4sxLdpQP945C; using xnSSA5r7G7WWTcRqNkA; using xp1DTZ2vrnkwK8b3t0VK; using xq3bFsFdorQIOsuvHDXM; using xqLB9R2FiU7YmKDZL3RL; using xwh0bCsEhjXlV0EMTxB; using y2jjcgMzuyMtBkiSZ0Z8; using y2ns1r8rJNay262Hf27O; using y4Lngk2ICCf89Li1ul8w; using y4SGufXt7QwtYLIdkuK; using y4Uhe82D9dKt1v7q3lEZ; using y5Bgo72uv9B0W3dUampx; using y5wx0OjDkMwsvdyNoP8s; using y7UguhigdKTm25n0TDFw; using yGyc02juMf9GbFnY0SKy; using yHuTILFyzjQjMcBb7CNq; using yIJAKA2gMi6kIoPeFfPF; using yPKE6Jkn4kUm1Jr0EEn; using yReCxm81pQUBlWtRfQYs; using yTckQRsfxDAbQTtpmY3; using yWjTkg2XCHYidSd3cbIC; using ydBYE2MtEdcYmc4qUp5u; using yfmZr62kCfGnW1pPoUli; using yhEMlwFa22PAb414WVXf; using yiwQyb8OdUUfhHfq4L67; using yjNPi5FLYRyKqkqiD5pH; using ykHxmtFLIylhqlSAuB3T; using ylaFREFfngD77MjhbIy2; using yoB4oNFmHWraJsnEJvRw; using yqU2o4iBoHZakoVfUxps; using yqmcVLjttkw0UxlvoxMn; using yr1URr8fiBN5mEOYfdKp; using yrDC43jchd4mcGuKrfha; using ys7ELpikHW30YZgluIKI; using ytaAsg2QUQQWKAhkR9rp; using yvdEBoM0S0SCuUNukpn3; using ywDmLs8oXAkS4RPYVUKF; using yy4yGiiBcFkIQi19qKWh; using z29asa8YJLB1i71q1doR; using z2HnKuM5UpOrkw0ah53B; using z4plUWFRLhWEfF5YpdJe; using z6fBwHiQhD6AQJ7Zc8A8; using z6idyVjF0jN0922eMwg8; using z6wcDs8bYUT8VwEV5fi2; using z73SY2jEHivGYFTb73jW; using z7DqEDFguXaQADGmGdgN; using z7iMhpFSoaKTxJCKYbro; using z8gWKqFafwDeldMvHZIn; using z9HBQx2MYNU9nLRjKtMd; using zB99xMjDitO89601I3nn; using zCihXA87hrBFnFG8ZfRr; using zFLFEOKLJVOTaGlwbQp; using zGouwijHwcRK4kRsAM3r; using zHUY5K2w2sZPqSEuCmvD; using zIS4Oe2YCsnt91OHkgEv; using zJLFIBM7zhVjuImADBBY; using zLZKN0GXe56fALPlFqW; using zLo6sbjEqv3xlQqnnhcW; using zM7Qe1fJ0MdqTqXuAGA; using zQutlF8nA4jwL2kstvZm; using zRbrgNFitVdjFtIuPeHO; using zU7YIf8H056Abaa2k4LD; using zVSWVwj7DQJxUBZskkSE; using zWrQ7g8Szrqf0W4SsBy6; using zXqKhxMUzKYvO1SBxc6L; using zYJ1BSFUDv7xHxZEEvau; using zYVVkb8ZgquykFIrtMR9; using zZ864iMNFcTRMm456X9r; using zZDqMuLdca8TpiAHh2M; using zZMgObjZuGH9sXO7nbHP; using zaF0vNps2qVLMrta6Gn; using zb4LKuM6eVawLYcYQL9M; using zbAS89jaHtMRmpCbdA4H; using zbZnZy8ZmPSq91H9dAK4; using zcYJfuMCRVYHWdi3UnPc; using zcapyVnM3vGVnGkhTpZ; using zd5lMcjl6q4nHw0yaB3q; using zeTTH1pWZO1XqATQsHW; using zflQHLpHMUAm6riFHke; using zhSH7dETnIwQXd2Vu3s; using zlSPWIFOZx9pGnsymdgY; using zllfoMjDHE8mc97RLO6V; using zprYLl8SS4dwpHBG9Epx; using zpwS458YcHyCsavtiX4J; using zqU12FiRlFEXk7ylbeJn; using zrHq1uFIcuWZAYpVGIaD; using zrbKfDFjTfHkhUa71iBn; using zskafwMLxuQ7v8RSfIqY; using ztK2Y78H5knKg38FyWiT; using ztYDn4icKpMhAmGvdf9f; using zuoA03T6s0gqdsaGyjD; using zwyQlGMvvriJuBV3uaLp; [assembly: AssemblyProduct("Rippleheart")] [assembly: AssemblyInformationalVersion("0.1.4+509dfd587e33e243349fd5d29118de2c7cd2436d")] [assembly: SuppressIldasm] [assembly: AssemblyTitle("Rippleheart")] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: CompilationRelaxations(8)] [assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")] [assembly: AssemblyFileVersion("0.1.4.0")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyCompany("Rippleheart")] [assembly: AssemblyVersion("0.1.4.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] [Microsoft.CodeAnalysis.Embedded] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] [CompilerGenerated] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] [Microsoft.CodeAnalysis.Embedded] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Rippleheart { public class MTHC { internal static ConcurrentDictionary<string, string> rgJ3fWOxI(string folderPath, StringBuilder logBuilder, bool isServer = true) { string path = Path.GetDirectoryName(folderPath) ?? string.Empty; string fileName = Path.GetFileName(folderPath); string[] array = fileName.Split(new char[1] { ',' }); List<string> list = new List<string>(); string[] value = (from p in array where p.Length > 2 select p.Substring(2)).ToArray(); logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x131F4D4F ^ 0x131F4D4F)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-340993411 ^ -340993459), isServer ? vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1394395626 ^ -1394395556) : vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1528009292 ^ -1528009330))); logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x759DC857 ^ 0x759DC80D)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x617915C2), string.Join(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1356308803 ^ -1356308943), value))); string[] array2 = array; foreach (string text in array2) { list.AddRange(Directory.GetFiles(path, text.Trim(), SearchOption.AllDirectories)); } ConcurrentDictionary<string, string> aTHgBbhw1 = new ConcurrentDictionary<string, string>(); DateTime now = DateTime.Now; int initialCount = Environment.ProcessorCount / 2; SemaphoreSlim BPKsbKuVX = new SemaphoreSlim(initialCount); List<Task> list2 = new List<Task>(); foreach (string qZ9HTS5v3 in list) { BPKsbKuVX.Wait(); list2.Add(Task.Run(delegate { c33dZsfbv(qZ9HTS5v3, aTHgBbhw1, BPKsbKuVX, ConfigKeys.cAUjAYx0W7() ?? string.Empty, useRelativePath: true); })); } Task.WaitAll(list2.ToArray()); DateTime now2 = DateTime.Now; TimeSpan timeSpan = now2 - now; logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7773BD6D ^ 0x7773BDF9)); logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x617914F4)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-896128074 ^ -896128122), list.Count.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF622B), timeSpan.ToString())); logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-453480580 ^ -453480472)); logBuilder.AppendLine(""); return aTHgBbhw1; } internal static ConcurrentDictionary<string, string> SMcPLmtXD() { string[] files = Directory.GetFiles(zvDMX7LmQumenl0slt.EvtjiqojOc(), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-403316567 ^ -403316253), SearchOption.AllDirectories); List<string> list = new List<string>(files.Length); list.AddRange(files); List<string> list2 = list; ConcurrentDictionary<string, string> OrpQQDmSY = new ConcurrentDictionary<string, string>(); DateTime now = DateTime.Now; int location = 0; int initialCount = Environment.ProcessorCount / 2; SemaphoreSlim ulrtb1nfV = new SemaphoreSlim(initialCount); List<Task> list3 = new List<Task>(); foreach (string eHoE7ON0r in list2) { ulrtb1nfV.Wait(); list3.Add(Task.Run(delegate { c33dZsfbv(eHoE7ON0r, OrpQQDmSY, ulrtb1nfV); })); Interlocked.Increment(ref location); } Task.WaitAll(list3.ToArray()); DateTime now2 = DateTime.Now; TimeSpan timeSpan = now2 - now; return OrpQQDmSY; } private static void c33dZsfbv(string file, ConcurrentDictionary<string, string> fileHashes, SemaphoreSlim semaphore, string value = "", bool useRelativePath = false) { try { string value2 = k3ilZ0v7J(file); string key = (useRelativePath ? Ew7wEcho2(file, value) : Path.GetFileName(file)); fileHashes.TryAdd(key, value2); } finally { semaphore.Release(); } } public static string GetCurrentAssemblyHash() { string location = Assembly.GetExecutingAssembly().Location; string text = k3ilZ0v7J(location); string text2 = Ew7wEcho2(location, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF60F0)); return text2 + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x3DEE06BC ^ 0x3DEE07DE) + text; } private static string Ew7wEcho2(string fullPath, string breakpoint) { int num = fullPath.IndexOf(breakpoint); return fullPath.Substring(num + breakpoint.Length); } internal static string k3ilZ0v7J(string filePath) { kAyDLDMB96wHGoX1l9GR kAyDLDMB96wHGoX1l9GR = new kAyDLDMB96wHGoX1l9GR(512); using FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.SequentialScan); byte[] array = new byte[512]; int len; while ((len = fileStream.Read(array, 0, array.Length)) > 0) { kAyDLDMB96wHGoX1l9GR.svYi0EDt8PA(array, 0, len); } byte[] array2 = new byte[kAyDLDMB96wHGoX1l9GR.JNHi0tYX6lV()]; kAyDLDMB96wHGoX1l9GR.okqinYPYBxy(array2, 0); StringBuilder stringBuilder = new StringBuilder(); byte[] array3 = array2; foreach (byte b in array3) { stringBuilder.Append(b.ToString(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1228969872 ^ 0x494096FC))); } return stringBuilder.ToString(); } } public class DB { internal static bool SYD4uLsV5(ConcurrentDictionary<string, string> clientHashes, ConcurrentDictionary<string, string> serverHashes, ConcurrentDictionary<string, string> greylistHashes, StringBuilder logBuilder) { ConcurrentDictionary<string, string> concurrentDictionary = bLsBsQXFu(clientHashes, greylistHashes); ConcurrentDictionary<string, string> concurrentDictionary2 = bLsBsQXFu(serverHashes, greylistHashes); if (concurrentDictionary.Count != concurrentDictionary2.Count) { List<KeyValuePair<string, string>> list = concurrentDictionary2.Except(concurrentDictionary).ToList(); List<KeyValuePair<string, string>> list2 = concurrentDictionary.Except(concurrentDictionary2).ToList(); if (list.Any()) { logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1545155712 ^ 0x5C1935F4))); int num = 1; foreach (KeyValuePair<string, string> item in list) { logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1719705273 ^ -1719705371)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2050834694 ^ -2050834742), num++.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1749150600 ^ -1749150408), item.Key)); } } if (list2.Any()) { logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x22C7AF3A ^ 0x22C7AEF4))); int num2 = 1; foreach (KeyValuePair<string, string> item2 in list2) { logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1356308803 ^ -1356308667)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A98A2), num2++.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7CDEE713 ^ 0x7CDEE653), item2.Key)); } } logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-922545264 ^ -922545744)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1461454712 ^ -1461454664), concurrentDictionary.Count.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-927698122 ^ -927698314), concurrentDictionary2.Count.ToString())); return false; } List<string> list3 = new List<string>(); foreach (KeyValuePair<string, string> item3 in concurrentDictionary) { if (!concurrentDictionary2.TryGetValue(item3.Key, out var value) || value != item3.Value) { list3.Add(item3.Key); logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4DE3A3E ^ 0x4DE3864)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6D0D07F8 ^ 0x6D0D07C8), item3.Key)); logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1536463877 ^ -1536464525)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6050B640 ^ 0x6050B670), item3.Value)); logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1356308803 ^ -1356309495)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1888877326 ^ -1888877374), value)); } } if (list3.Any()) { logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1888877326 ^ -1888877038))); return false; } logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-5581979 ^ -5582725))); return true; } internal static ConcurrentDictionary<string, string> bLsBsQXFu(ConcurrentDictionary<string, string> Hashes, ConcurrentDictionary<string, string> greylist) { HashSet<string> hashSet = new HashSet<string>(greylist.Values); ConcurrentDictionary<string, string> concurrentDictionary = new ConcurrentDictionary<string, string>(); foreach (KeyValuePair<string, string> Hash in Hashes) { if (!hashSet.Contains(Hash.Value)) { concurrentDictionary.TryAdd(Hash.Key, Hash.Value); } } return concurrentDictionary; } internal static bool DliSvNbcp(string value, ConcurrentDictionary<string, string> greylist) { HashSet<string> hashSet = new HashSet<string>(greylist.Values); return hashSet.Contains(value); } } [BepInPlugin("HsgtLgt.Rippleheart", "Rippleheart", "0.1.4")] public class Rippleheart : BaseUnityPlugin { internal readonly Harmony XtAKEuNuw = new Harmony(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6449AB ^ 0x644A6F)); internal static readonly RippleheartLogger VGVRlWvKG = RippleheartLogger.POt8EnQvfp(); public void Awake() { zvDMX7LmQumenl0slt.dUbIVU96t(); ((BaseUnityPlugin)this).Logger.LogInfo((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x13C317FC ^ 0x13C314AC)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x31EF5040 ^ 0x31EF5070), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF62CC)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x29BD899C ^ 0x29BD88DC), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1247458479 ^ -1247459113))); VGVRlWvKG.LogInfo(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x23B8B636 ^ 0x23B8B5A2)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x13B31B70 ^ 0x13B31B40), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40F6822C ^ 0x40F68140))); XtAKEuNuw.PatchAll(); } public void Update() { try { UpdateTimer(); } catch (Exception ex) { VGVRlWvKG.LogError(ex.Message); RippleheartCore.Client.Vwu8M5I3EN(); } } public void UpdateTimer() { if (!Modinfo.w5RNlrr5d() || ZNet.instance.IsServer() || ZNet.instance.IsDedicated() || ZRoutedRpc.instance == null || ZNet.instance.GetServerPeer() == null) { return; } if (Game.instance.IsShuttingDown()) { Modinfo.eIl9gNZnH(value: false); return; } Modinfo.zosCEWjUM(Modinfo.KBeb6GAtR() + Time.deltaTime); if (Modinfo.KBeb6GAtR() >= (float)ConfigKeys.L4rjaHrWSS()) { RippleheartCore.Client.iiq8F2YRC1(); Modinfo.zosCEWjUM(0f); Modinfo.eIl9gNZnH(value: false); } if (Modinfo.w5RNlrr5d() && Input.GetKeyDown((KeyCode)287) && !ZNet.instance.IsServer() && ZRoutedRpc.instance != null) { RippleheartCore.Client.iiq8F2YRC1(); } } } public class Modinfo { internal static List<ZRpc> KR8x1PPGG = new List<ZRpc>(); [CompilerGenerated] [DebuggerBrowsable(DebuggerBrowsableState.Never)] private static float gW41X6UP3 = 0f; [CompilerGenerated] [DebuggerBrowsable(DebuggerBrowsableState.Never)] private static bool NxTUhro2N = false; [CompilerGenerated] [DebuggerBrowsable(DebuggerBrowsableState.Never)] private static int a5kfxqWO0 = 1; internal static int a { [CompilerGenerated] get { return a5kfxqWO0; } [CompilerGenerated] set { a5kfxqWO0 = value; } } [SpecialName] [CompilerGenerated] internal static float KBeb6GAtR() { return gW41X6UP3; } [SpecialName] [CompilerGenerated] internal static void zosCEWjUM(float value) { gW41X6UP3 = value; } [SpecialName] [CompilerGenerated] internal static bool w5RNlrr5d() { return NxTUhro2N; } [SpecialName] [CompilerGenerated] internal static void eIl9gNZnH(bool value) { NxTUhro2N = value; } } } namespace g6tKo4OeWfYvu5l5bx { internal class zvDMX7LmQumenl0slt { internal static Dictionary<string, string> fR8jeuBuXL = new Dictionary<string, string>(); internal static Dictionary<string, object> e1jjJj5mgP = new Dictionary<string, object>(); [SpecialName] internal static string gj3j8qOb7O() { return Path.Combine(Paths.ConfigPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-5581979 ^ -5582709) + eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xDBC0790 ^ 0xDBC038A)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x50DB58AB ^ 0x50DB5C81)); } [SpecialName] internal static string byIjM3VU7J() { return vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x48C90B08 ^ 0x48C908CC) + eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-927698122 ^ -927697138)); } [SpecialName] internal static string EvtjiqojOc() { return Path.Combine(Paths.ConfigPath, byIjM3VU7J()); } [SpecialName] internal static string i3OjGB9sun() { return vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x617911A8); } internal static T notY6gdh0<T>(string key) { if (e1jjJj5mgP.TryGetValue(key, out object value)) { if (value is T result) { return result; } try { if (typeof(T) == typeof(bool) && value is string text) { if (bool.TryParse(text, out var result2)) { return (T)(object)result2; } throw new FormatException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1783300021 ^ -1783298851) + text + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x3DEE06BC ^ 0x3DEE020C) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x131F4D4F ^ 0x131F499D)); } return (T)Convert.ChangeType(value, typeof(T)); } catch (InvalidCastException) { throw new InvalidCastException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5A21B26E ^ 0x5A21B77A) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-967973687 ^ -967974483) + typeof(T).Name + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1062172002 ^ -1062170654)); } catch (FormatException ex2) { throw new FormatException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x28A96030 ^ 0x28A965B2) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x1DA21CD9 ^ 0x1DA21923) + ex2.Message); } } throw new KeyNotFoundException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xC59AF04 ^ 0xC59A900) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x676D2F45 ^ 0x676D295F)); } internal static void TCXyOS1il() { if (!File.Exists(gj3j8qOb7O())) { iaQrtr6RI(gj3j8qOb7O()); e1jjJj5mgP.Clear(); } vxQnRE0tb(gj3j8qOb7O()); Directory.CreateDirectory(EvtjiqojOc()); } internal static void VL16sK0bf() { DpTjj2RsLg(); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1624317728 ^ -1624316286), ConfigKeysEnum.ServerValidation)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6050B640 ^ 0x6050B036) + ConfigKeys.eLqj7vQ90l()); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x1DA21CD9 ^ 0x1DA21ABB), ConfigKeysEnum.ClientValidation)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x48C90B08 ^ 0x48C90D7E) + ConfigKeys.QtYjdEHQMu()); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4948D6E8 ^ 0x4948D096), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4948D6E8 ^ 0x4948D08A), ConfigKeysEnum.PeriodicCheck)), ConfigKeys.L4rjaHrWSS())); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7388AABE ^ 0x7388ACDC), ConfigKeysEnum.CustomRelativePoint)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1545155712 ^ 0x5C1932F6) + ConfigKeys.cAUjAYx0W7()); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6050B640 ^ 0x6050B03E), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x56757B86 ^ 0x56757DE4), ConfigKeysEnum.LogSwitch)), ConfigKeys.rXajskL3iw())); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1228969872 ^ 0x494091EE), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6D0D07F8 ^ 0x6D0D019A), ConfigKeysEnum.DebugSwitch)), ConfigKeys.f5kjocgsNL())); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72015CC8 ^ 0x72015AB6), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1172631997 ^ -1172633567), ConfigKeysEnum.ResetLogSwitch)), ConfigKeys.LdGjZktdmp())); global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1395870666 ^ -1395871160), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5B89C4A6 ^ 0x5B89C2C4), ConfigKeysEnum.ResetLogTime)), ConfigKeys.cdYj4rqtO5())); } internal static void vxQnRE0tb(string configPath) { try { string input = File.ReadAllText(configPath); WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h(); e1jjJj5mgP = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, object>>(input) ?? new Dictionary<string, object>(); ZLog.Log((object)string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1624317728 ^ -1624316302), e1jjJj5mgP.Count)); } catch (Exception ex) { ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xEB79778 ^ 0xEB791A6) + ex.Message)); } } internal static void iaQrtr6RI(string configPath) { string value = Path.Combine(Paths.PluginPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x22C7AF3A ^ 0x22C7AE70)); string value2 = vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-522430133 ^ -522428847); using StreamWriter streamWriter = File.CreateText(configPath); streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-32524488 ^ -32526214) + eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-773114212 ^ -773115416))); streamWriter.WriteLine(); Dictionary<ConfigKeysEnum, string> dictionary = new Dictionary<ConfigKeysEnum, string> { { ConfigKeysEnum.ServerValidation, value }, { ConfigKeysEnum.ClientValidation, value2 }, { ConfigKeysEnum.PeriodicCheck, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40558DA6 ^ 0x40558A3E) }, { ConfigKeysEnum.CustomRelativePoint, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1533293849 ^ -1533293641) }, { ConfigKeysEnum.LogSwitch, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF6604) }, { ConfigKeysEnum.DebugSwitch, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF64CF) }, { ConfigKeysEnum.ResetLogSwitch, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1783300021 ^ -1783298065) }, { ConfigKeysEnum.ResetLogTime, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x50DB58AB ^ 0x50DB5F1B) } }; foreach (KeyValuePair<ConfigKeysEnum, string> item in dictionary) { streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1573519064 ^ -1573517680) + eAk0mC6O1(item.Key.ToString())); streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xBD77B97 ^ 0xBD77C55) + eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35263198 ^ 0x35263652))); if (eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1749150600 ^ -1749150820)) != item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1297663721 ^ -1297662221)) { streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x131F4D4F ^ 0x131F4A8D) + eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120037298))); } streamWriter.WriteLine(eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-522430133 ^ -522428739)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40558DA6 ^ 0x40558BD0) + item.Value); streamWriter.WriteLine(); } } internal static string eAk0mC6O1(string key) { string value; return fR8jeuBuXL.TryGetValue(key, out value) ? value : key; } internal static void dUbIVU96t() { string selectedLanguage = Localization.instance.GetSelectedLanguage(); string text = Path.Combine(Paths.PluginPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1395870666 ^ -1395868622), i3OjGB9sun()); try { if (File.Exists(text) && selectedLanguage != vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x31D4BCE ^ 0x31D43EE)) { RKKzRRAxA(text); return; } aov5OM1nl(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x265F44E0 ^ 0x265F4CD2)); Debug.Log((object)eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x759DC857 ^ 0x759DC0F9)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x676D2F45 ^ 0x676D2F75), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x23541B87 ^ 0x235418EB)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x676D2F45 ^ 0x676D2E05), selectedLanguage)); tZNmTlRV4(selectedLanguage, text); } catch (Exception ex) { Debug.LogError((object)(ex.Message ?? "")); Debug.Log((object)eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-491850913 ^ -491848771))); tZNmTlRV4(selectedLanguage); } } internal static void tZNmTlRV4(string language, string languageFilePath = "") { if (language == vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D3FAAA6 ^ 0x4D3FA286)) { JE2jqYSX2M(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-212927946 ^ -212929762)); } else { JE2jqYSX2M(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5B89C4A6 ^ 0x5B89CC94)); } } internal static void aov5OM1nl(string resourceName) { try { Assembly executingAssembly = Assembly.GetExecutingAssembly(); using Stream stream = executingAssembly.GetManifestResourceStream(resourceName); if (stream == null) { throw new FileNotFoundException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1233423129 ^ -1233420929) + resourceName + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x54B071 ^ 0x54B9C1)); } using StreamReader streamReader = new StreamReader(stream); string input = streamReader.ReadToEnd(); WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h(); Dictionary<string, string> graph = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, string>>(input) ?? new Dictionary<string, string>(); string path = Path.Combine(Paths.PluginPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x38E1388 ^ 0x38E1B8C), i3OjGB9sun()); string directoryName = Path.GetDirectoryName(path); if (!string.IsNullOrEmpty(directoryName) && !Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } using StreamWriter writer = new StreamWriter(path); TAo4o9Gc1mCtwNx0Px8 tAo4o9Gc1mCtwNx0Px = new M43S9Rch3loupwoQiNc().jp6el8vBDA(); tAo4o9Gc1mCtwNx0Px.snoihO4J9oi(writer, graph); } catch (Exception ex) { ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-212927946 ^ -212929542) + ex.Message)); ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-177006131 ^ -177007657) + ex.StackTrace)); } } internal static void RKKzRRAxA(string languageFilePath) { try { using StreamReader streamReader = new StreamReader(languageFilePath); string input = streamReader.ReadToEnd(); WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h(); fR8jeuBuXL = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, string>>(input) ?? new Dictionary<string, string>(); } catch (Exception ex) { ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-858716293 ^ -858714817) + ex.Message)); ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x674B8EC1 ^ 0x674B84DB) + ex.StackTrace)); } } internal static void JE2jqYSX2M(string resourceName) { try { Assembly executingAssembly = Assembly.GetExecutingAssembly(); using Stream stream = executingAssembly.GetManifestResourceStream(resourceName); if (stream == null) { throw new FileNotFoundException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xBD77B97 ^ 0xBD7720F) + resourceName + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x12447BD4 ^ 0x12447264)); } using StreamReader streamReader = new StreamReader(stream); string input = streamReader.ReadToEnd(); WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h(); fR8jeuBuXL = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, string>>(input) ?? new Dictionary<string, string>(); } catch (Exception ex) { ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40558DA6 ^ 0x40558724) + ex.Message)); ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x58DF2A61 ^ 0x58DF207B) + ex.StackTrace)); } } internal static void DpTjj2RsLg() { ConfigKeys.Bu3j35AdIZ(notY6gdh0<string>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-343094924 ^ -343093482), ConfigKeysEnum.ServerValidation)))); ConfigKeys.QSpjwch8vu(notY6gdh0<string>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-773114212 ^ -773115650), ConfigKeysEnum.ClientValidation)))); ConfigKeys.RoIjvFLhGX(notY6gdh0<int>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x2C986D1 ^ 0x2C980B3), ConfigKeysEnum.PeriodicCheck)))); ConfigKeys.TL1jX6GcWU(notY6gdh0<string>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1528009292 ^ -1528009770), ConfigKeysEnum.CustomRelativePoint)))); ConfigKeys.BE7jTCuZvu(notY6gdh0<bool>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x58DF2A61 ^ 0x58DF2C03), ConfigKeysEnum.LogSwitch)))); ConfigKeys.bMgjQiZRBC(notY6gdh0<bool>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2061140430 ^ -2061141936), ConfigKeysEnum.DebugSwitch)))); ConfigKeys.W5njEh91Ub(notY6gdh0<bool>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1817480036 ^ -1817480450), ConfigKeysEnum.ResetLogSwitch)))); ConfigKeys.EBnjBeOSc8(notY6gdh0<float>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF6509), ConfigKeysEnum.ResetLogTime)))); } } } namespace Rippleheart { [Serializable] public class ConfigKeys { [CompilerGenerated] [DebuggerBrowsable(DebuggerBrowsableState.Never)] private static string vy3jKw0Y9C; [DebuggerBrowsable(DebuggerBrowsableState.Never)] [CompilerGenerated] private static string J4kjRxAhcp; [DebuggerBrowsable(DebuggerBrowsableState.Never)] [CompilerGenerated] private static int dPCjbKYtp8; [DebuggerBrowsable(DebuggerBrowsableState.Never)] [CompilerGenerated] private static string Io5jC7CqKA; [DebuggerBrowsable(DebuggerBrowsableState.Never)] [CompilerGenerated] private static bool m2NjWutMRE; [DebuggerBrowsable(DebuggerBrowsableState.Never)] [CompilerGenerated] private static bool GyCjNC1bZw; [DebuggerBrowsable(DebuggerBrowsableState.Never)] [CompilerGenerated] private static bool F11j9X7AkS; [DebuggerBrowsable(DebuggerBrowsableState.Never)] [CompilerGenerated] private static float V8sjVOkPnG; [SpecialName] [CompilerGenerated] internal static string eLqj7vQ90l() { return vy3jKw0Y9C; } [SpecialName] [CompilerGenerated] internal static void Bu3j35AdIZ(string value) { vy3jKw0Y9C = value; } [SpecialName] [CompilerGenerated] internal static string QtYjdEHQMu() { return J4kjRxAhcp; } [SpecialName] [CompilerGenerated] internal static void QSpjwch8vu(string value) { J4kjRxAhcp = value; } [SpecialName] [CompilerGenerated] internal static int L4rjaHrWSS() { return dPCjbKYtp8; } [SpecialName] [CompilerGenerated] internal static void RoIjvFLhGX(int value) { dPCjbKYtp8 = value; } [SpecialName] [CompilerGenerated] internal static string cAUjAYx0W7() { return Io5jC7CqKA; } [SpecialName] [CompilerGenerated] internal static void TL1jX6GcWU(string value) { Io5jC7CqKA = value; } [SpecialName] [CompilerGenerated] internal static bool rXajskL3iw() { return m2NjWutMRE; } [SpecialName] [CompilerGenerated] internal static void BE7jTCuZvu(bool value) { m2NjWutMRE = value; } [SpecialName] [CompilerGenerated] internal static bool f5kjocgsNL() { return GyCjNC1bZw; } [SpecialName] [CompilerGenerated] internal static void bMgjQiZRBC(bool value) { GyCjNC1bZw = value; } [SpecialName] [CompilerGenerated] internal static bool LdGjZktdmp() { return F11j9X7AkS; } [SpecialName] [CompilerGenerated] internal static void W5njEh91Ub(bool value) { F11j9X7AkS = value; } [SpecialName] [CompilerGenerated] internal static float cdYj4rqtO5() { return V8sjVOkPnG; } [SpecialName] [CompilerGenerated] internal static void EBnjBeOSc8(float value) { V8sjVOkPnG = value; } } public enum ConfigKeysEnum { ServerValidation, ClientValidation, PeriodicCheck, CustomRelativePoint, LogSwitch, DebugSwitch, ResetLogSwitch, ResetLogTime } public class RippleheartCore { public class RpcMessageHandler { internal static async void sCPjUwQ2Gv(ZRpc rpc, ZPackage package) { if (ZNet.instance.IsServer() || ZNet.instance.IsDedicated()) { await SyCjfCotr0(rpc, package); } else { await r5DjLF4YRt(rpc, package); } } internal static async Task SyCjfCotr0(ZRpc rpc, ZPackage pkg) { int flag = pkg.ReadInt(); switch (flag) { case 0: { string version = pkg.ReadString(); if (c5ujhLwUbS(rpc, version)) { ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-671560037 ^ -671563083)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x31EF5040 ^ 0x31EF5070), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-522430133 ^ -522429913))); Server.t4JjOMwK01(rpc, 1); } break; } case 1: { if (!pkg.ReadBool()) { ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-896128074 ^ -896129046)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1573519064 ^ -1573519080), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF62CC))); rpc.GetSocket().Dispose(); break; } ZNetPeer peer = Tools.fT98704P3V(rpc); if (!ZNet.instance.IsAdmin(peer.m_socket.GetHostName())) { Tools.Sg08cMuPUf(rpc, 2, isCritical: true); } else { ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4E685CE8 ^ 0x4E685070)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x126727B8 ^ 0x12672788), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1233423129 ^ -1233422453)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1373249349 ^ -1373249029), peer.m_socket.GetHostName())); } break; } case 2: { StringBuilder logBuilder = new StringBuilder(); logBuilder.AppendLine(""); logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x567A1955 ^ 0x567A19C1)); if (Modinfo.a == 1) { logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-573479684 ^ -573478860)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x67065854 ^ 0x67065864), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4DE3A3E ^ 0x4DE3952)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x66CD65D2 ^ 0x66CD6492), Tools.fT98704P3V(rpc).m_socket.GetHostName()) .Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-797989608 ^ -797987114), Modinfo.a++.ToString())); } else { logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7CDEE713 ^ 0x7CDEEBE7)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x45759294 ^ 0x457592A4), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A9BFE)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-967973687 ^ -967973495), Tools.fT98704P3V(rpc).m_playerName) .Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-220351450 ^ -220348440), Modinfo.a++.ToString())); } Task<bool> task = Server.bFFjyiEly8(pkg, logBuilder); if (await task) { Tools.Sg08cMuPUf(rpc, 2, isCritical: true); } else { rpc.GetSocket().Dispose(); Modinfo.a = 1; logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xEB79778 ^ 0xEB79A56))); } logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6F17A26D ^ 0x6F17A2F9)); Rippleheart.VGVRlWvKG.LogInfo(logBuilder.ToString()); break; } case 3: if (!pkg.ReadBool()) { rpc.GetSocket().Dispose(); Rippleheart.VGVRlWvKG.LogError(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1545155712 ^ 0x5C1939E2))); } break; default: throw new NotImplementedException(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1314171080 ^ -1314170202)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5A21B26E ^ 0x5A21B25E), flag.ToString())); } } internal static async Task r5DjLF4YRt(ZRpc rpc, ZPackage pkg) { switch (pkg.ReadInt()) { case 0: { string version = pkg.ReadString(); c5ujhLwUbS(rpc, version); break; } case 1: { if (!Client.jmp88qBrni(pkg)) { Tools.Sg08cMuPUf(rpc, 1, isCritical: false); break; } StringBuilder logBuilder = new StringBuilder(); await Client.Ls182WH9YK(rpc, 2, new StringBuilder()); Rippleheart.VGVRlWvKG.LogInfo(logBuilder.ToString()); break; } case 2: Modinfo.eIl9gNZnH(pkg.ReadBool()); break; default: throw new NotImplementedException(); } } } public static class Server { internal static void t4JjOMwK01(ZRpc rpc, int messageTag) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown ZPackage val = new ZPackage(); val.Write(messageTag); byte[] array; using (MemoryStream memoryStream = new MemoryStream()) { BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, zvDMX7LmQumenl0slt.e1jjJj5mgP); array = memoryStream.ToArray(); } val.Write(array); rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2044712085 ^ -2044714973), new object[1] { val }); } internal static void I84jYJNqHG(string server, StringBuilder logBuilder) { string Qmf8q1g7P8 = server; StringBuilder DSt8jJaghx = logBuilder; Task.Run(delegate { joMjxNPvj2 = MTHC.rgJ3fWOxI(Qmf8q1g7P8, DSt8jJaghx); }); Task.Run(delegate { sCpj1ggOUx = MTHC.SMcPLmtXD(); }); } internal static Task<bool> bFFjyiEly8(ZPackage pkg, StringBuilder logBuilder) { byte[] serializedData = pkg.ReadByteArray(); ConcurrentDictionary<string, string> clientHashes = Tools.Ex38etqqFu<ConcurrentDictionary<string, string>>(serializedData); if (joMjxNPvj2 != null && sCpj1ggOUx != null) { string[] value = (from p in Path.GetFileName(ConfigKeys.QtYjdEHQMu()).Split(new char[1] { ',' }) where p.Length > 2 select p.Substring(2)).ToArray(); logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-773114212 ^ -773113014)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x45759294 ^ 0x457592A4), string.Join(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120038618), value))); bool result = DB.SYD4uLsV5(clientHashes, joMjxNPvj2, sCpj1ggOUx, logBuilder); return Task.FromResult(result); } logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x2C986D1 ^ 0x2C988DF))); return Task.FromResult(result: false); } } public static class Client { internal static bool jmp88qBrni(ZPackage zpackage) { byte[] buffer = zpackage.ReadByteArray(); try { using MemoryStream serializationStream = new MemoryStream(buffer); BinaryFormatter binaryFormatter = new BinaryFormatter(); if (binaryFormatter.Deserialize(serializationStream) is Dictionary<string, object> e1jjJj5mgP) { zvDMX7LmQumenl0slt.e1jjJj5mgP = e1jjJj5mgP; ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5B89C4A6 ^ 0x5B89CA92))); foreach (KeyValuePair<string, object> item in zvDMX7LmQumenl0slt.e1jjJj5mgP) { ZLog.Log((object)string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-73906972 ^ -73905526), item.Key, item.Value)); } zvDMX7LmQumenl0slt.VL16sK0bf(); RippleheartLogger.LL88dg54lq(Path.Combine(Paths.ConfigPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x61791B76)), a: false); return true; } ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2061140430 ^ -2061143932))); return false; } catch (Exception ex) { ZLog.LogError((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A9662)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF6190), ex.Message)); return false; } } internal static async void iiq8F2YRC1() { StringBuilder logBuilder = new StringBuilder(); ZNetPeer peer = Tools.TWx83sfVBU(ZNet.instance.GetServerPeer().m_uid, a: false); if (peer != null) { await Ls182WH9YK(peer, 2, logBuilder); } else { ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x61791ADC))); } Rippleheart.VGVRlWvKG.LogInfo(logBuilder.ToString()); } internal static void Vwu8M5I3EN() { StringBuilder stringBuilder = new StringBuilder(); ZNetPeer val = Tools.TWx83sfVBU(ZNet.instance.GetServerPeer().m_uid, a: false); if (val != null) { Tools.Sg08cMuPUf(val, 3, isCritical: false); } else { ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-866810000 ^ -866809762))); } Rippleheart.VGVRlWvKG.LogInfo(stringBuilder.ToString()); } internal static async Task Ls182WH9YK(object peerOrRpc, int logo, StringBuilder logBuilder) { byte[] bytes = await E998iOPw80(logBuilder); ZPackage package = new ZPackage(); package.Write(logo); package.Write(bytes); ZNetPeer peer = (ZNetPeer)((peerOrRpc is ZNetPeer) ? peerOrRpc : null); if (peer != null) { peer.m_rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x28A96030 ^ 0x28A96B78), new object[1] { package }); return; } ZRpc rpc = (ZRpc)((peerOrRpc is ZRpc) ? peerOrRpc : null); if (rpc != null) { rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5A21B26E ^ 0x5A21B926), new object[1] { package }); return; } throw new ArgumentException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1297663721 ^ -1297664387)); } internal static async Task<byte[]> E998iOPw80(StringBuilder logBuilder) { StringBuilder M728G76UD7 = logBuilder; return await Task.Run(() => Tools.zxJ8JxSM5h(MTHC.rgJ3fWOxI(Path.Combine(Paths.GameRootPath) + ConfigKeys.QtYjdEHQMu(), M728G76UD7, isServer: false))); } } public static class Tools { internal static void Sg08cMuPUf(object peerOrRpc, int messageTag, bool isCritical) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown ZPackage val = new ZPackage(); val.Write(messageTag); val.Write(isCritical); ZNetPeer val2 = (ZNetPeer)((peerOrRpc is ZNetPeer) ? peerOrRpc : null); if (val2 != null) { val2.m_rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x48C90B08 ^ 0x48C90040), new object[1] { val }); return; } ZRpc val3 = (ZRpc)((peerOrRpc is ZRpc) ? peerOrRpc : null); if (val3 != null) { val3.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-671560037 ^ -671562285), new object[1] { val }); return; } throw new ArgumentException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120035136)); } internal static T Ex38etqqFu<T>(byte[] serializedData) { using MemoryStream serializationStream = new MemoryStream(serializedData); BinaryFormatter binaryFormatter = new BinaryFormatter(); return (T)binaryFormatter.Deserialize(serializationStream); } internal static byte[] zxJ8JxSM5h<T>(T objectToSerialize) { using MemoryStream memoryStream = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, objectToSerialize); return memoryStream.ToArray(); } internal static ZNetPeer fT98704P3V(ZRpc rpc) { foreach (ZNetPeer connectedPeer in ZNet.instance.GetConnectedPeers()) { if (connectedPeer.m_rpc == rpc) { return connectedPeer; } } return null; } internal static ZNetPeer TWx83sfVBU(long uid, bool a) { List<ZNetPeer> list = new List<ZNetPeer>(); list = (List<ZNetPeer>)(a ? ((IList)swY8PJGVa7()) : ((IList)ZNet.instance.GetConnectedPeers())); foreach (ZNetPeer item in list) { if (item.m_uid == uid) { return item; } } return null; } internal static List<ZNetPeer> swY8PJGVa7() { FieldInfo fieldInfo = AccessTools.Field(typeof(ZRoutedRpc), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1573519064 ^ -1573515598)); return (List<ZNetPeer>)fieldInfo.GetValue(ZRoutedRpc.instance); } } internal static ConcurrentDictionary<string, string>? joMjxNPvj2; internal static ConcurrentDictionary<string, string>? sCpj1ggOUx; internal static void adgjDFm0wN(ZNetPeer peer) { //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Expected O, but got Unknown if (ZNet.instance.IsServer() || ZNet.instance.IsDedicated()) { ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1983369307 ^ -1983371913)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1783300021 ^ -1783299973), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF6007)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120038678), peer.m_socket.GetHostName())); } else { ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-967973687 ^ -967970875)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A98A2), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1247458479 ^ -1247459267))); } ZPackage val = new ZPackage(); val.Write(0); val.Write(MTHC.GetCurrentAssemblyHash()); peer.m_rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-754245056 ^ -754243320), new object[1] { val }); } internal static bool c5ujhLwUbS(ZRpc rpc, string version) { if (version != MTHC.GetCurrentAssemblyHash()) { string newValue = vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x15A37FBE ^ 0x15A374C4) + version; string newValue2 = vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1901140752 ^ -1901138038) + MTHC.GetCurrentAssemblyHash(); s