From 20680a57f1526960cf1ba68357dd5402a84adec1 Mon Sep 17 00:00:00 2001 From: Half People <56476339+Half-People@users.noreply.github.com> Date: Sun, 5 Nov 2023 05:42:13 +0800 Subject: [PATCH] Add files via upload --- HPCS2/HPCS2.sln | 31 + HPCS2/HPCS2/HPCS2.vcxproj | 172 + HPCS2/HPCS2/HPCS2.vcxproj.filters | 87 + HPCS2/HPCS2/HPCS2.vcxproj.user | 4 + HPCS2/HPCS2/Source.cpp | 1003 +++ HPCS2/HPCS2/handle_hijack.hpp | 287 + HPCS2/HPCS2/memory.cpp | 255 + HPCS2/HPCS2/memory.hpp | 124 + HPCS2/HPCS2/offset/animationsystem.dll.hpp | 2579 ++++++ HPCS2/HPCS2/offset/client.dll.hpp | 4159 ++++++++++ HPCS2/HPCS2/offset/engine2.dll.hpp | 244 + HPCS2/HPCS2/offset/host.dll.hpp | 16 + HPCS2/HPCS2/offset/interfaces.hpp | 244 + HPCS2/HPCS2/offset/materialsystem2.dll.hpp | 115 + HPCS2/HPCS2/offset/networksystem.dll.hpp | 12 + HPCS2/HPCS2/offset/offsets.hpp | 49 + HPCS2/HPCS2/offset/particles.dll.hpp | 4037 ++++++++++ HPCS2/HPCS2/offset/pulse_system.dll.hpp | 352 + HPCS2/HPCS2/offset/rendersystemdx11.dll.hpp | 29 + HPCS2/HPCS2/offset/resourcesystem.dll.hpp | 213 + HPCS2/HPCS2/offset/scenesystem.dll.hpp | 61 + HPCS2/HPCS2/offset/schemasystem.dll.hpp | 57 + HPCS2/HPCS2/offset/server.dll.hpp | 7168 +++++++++++++++++ HPCS2/HPCS2/offset/soundsystem.dll.hpp | 313 + HPCS2/HPCS2/offset/vphysics2.dll.hpp | 755 ++ HPCS2/HPCS2/offset/worldrenderer.dll.hpp | 233 + .../x64/Release/HPCS2.Build.CppClean.log | 13 + HPCS2/HPCS2/x64/Release/HPCS2.exe.recipe | 11 + HPCS2/HPCS2/x64/Release/HPCS2.iobj | Bin 0 -> 990789 bytes HPCS2/HPCS2/x64/Release/HPCS2.ipdb | Bin 0 -> 323296 bytes HPCS2/HPCS2/x64/Release/HPCS2.log | 41 + .../x64/Release/HPCS2.tlog/CL.command.1.tlog | Bin 0 -> 1534 bytes .../x64/Release/HPCS2.tlog/CL.read.1.tlog | Bin 0 -> 73830 bytes .../x64/Release/HPCS2.tlog/CL.write.1.tlog | Bin 0 -> 1244 bytes .../Release/HPCS2.tlog/HPCS2.lastbuildstate | 2 + .../Release/HPCS2.tlog/link.command.1.tlog | 1 + .../x64/Release/HPCS2.tlog/link.read.1.tlog | 1 + .../x64/Release/HPCS2.tlog/link.write.1.tlog | 1 + .../x64/Release/HPCS2.tlog/unsuccessfulbuild | 0 .../HPCS2.vcxproj.FileListAbsolute.txt | 0 HPCS2/HPCS2/x64/Release/Source.obj | Bin 0 -> 2666533 bytes HPCS2/HPCS2/x64/Release/memory.obj | Bin 0 -> 1379325 bytes HPCS2/HPCS2/x64/Release/vc142.pdb | Bin 0 -> 905216 bytes HPCS2/x64/Release/HPCS2.exe | Bin 0 -> 46592 bytes HPCS2/x64/Release/HPCS2.pdb | Bin 0 -> 1601536 bytes HPCS2/x64/Release/aaa.exe | Bin 0 -> 47616 bytes 46 files changed, 22669 insertions(+) create mode 100644 HPCS2/HPCS2.sln create mode 100644 HPCS2/HPCS2/HPCS2.vcxproj create mode 100644 HPCS2/HPCS2/HPCS2.vcxproj.filters create mode 100644 HPCS2/HPCS2/HPCS2.vcxproj.user create mode 100644 HPCS2/HPCS2/Source.cpp create mode 100644 HPCS2/HPCS2/handle_hijack.hpp create mode 100644 HPCS2/HPCS2/memory.cpp create mode 100644 HPCS2/HPCS2/memory.hpp create mode 100644 HPCS2/HPCS2/offset/animationsystem.dll.hpp create mode 100644 HPCS2/HPCS2/offset/client.dll.hpp create mode 100644 HPCS2/HPCS2/offset/engine2.dll.hpp create mode 100644 HPCS2/HPCS2/offset/host.dll.hpp create mode 100644 HPCS2/HPCS2/offset/interfaces.hpp create mode 100644 HPCS2/HPCS2/offset/materialsystem2.dll.hpp create mode 100644 HPCS2/HPCS2/offset/networksystem.dll.hpp create mode 100644 HPCS2/HPCS2/offset/offsets.hpp create mode 100644 HPCS2/HPCS2/offset/particles.dll.hpp create mode 100644 HPCS2/HPCS2/offset/pulse_system.dll.hpp create mode 100644 HPCS2/HPCS2/offset/rendersystemdx11.dll.hpp create mode 100644 HPCS2/HPCS2/offset/resourcesystem.dll.hpp create mode 100644 HPCS2/HPCS2/offset/scenesystem.dll.hpp create mode 100644 HPCS2/HPCS2/offset/schemasystem.dll.hpp create mode 100644 HPCS2/HPCS2/offset/server.dll.hpp create mode 100644 HPCS2/HPCS2/offset/soundsystem.dll.hpp create mode 100644 HPCS2/HPCS2/offset/vphysics2.dll.hpp create mode 100644 HPCS2/HPCS2/offset/worldrenderer.dll.hpp create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.Build.CppClean.log create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.exe.recipe create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.iobj create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.ipdb create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.log create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/CL.command.1.tlog create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/CL.read.1.tlog create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/CL.write.1.tlog create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/HPCS2.lastbuildstate create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.command.1.tlog create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.read.1.tlog create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.write.1.tlog create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.tlog/unsuccessfulbuild create mode 100644 HPCS2/HPCS2/x64/Release/HPCS2.vcxproj.FileListAbsolute.txt create mode 100644 HPCS2/HPCS2/x64/Release/Source.obj create mode 100644 HPCS2/HPCS2/x64/Release/memory.obj create mode 100644 HPCS2/HPCS2/x64/Release/vc142.pdb create mode 100644 HPCS2/x64/Release/HPCS2.exe create mode 100644 HPCS2/x64/Release/HPCS2.pdb create mode 100644 HPCS2/x64/Release/aaa.exe diff --git a/HPCS2/HPCS2.sln b/HPCS2/HPCS2.sln new file mode 100644 index 0000000..4143814 --- /dev/null +++ b/HPCS2/HPCS2.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.32106.194 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HPCS2", "HPCS2\HPCS2.vcxproj", "{9A02F163-AEBD-431B-8E0E-53C246BC27A8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Debug|x64.ActiveCfg = Debug|x64 + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Debug|x64.Build.0 = Debug|x64 + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Debug|x86.ActiveCfg = Debug|Win32 + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Debug|x86.Build.0 = Debug|Win32 + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Release|x64.ActiveCfg = Release|x64 + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Release|x64.Build.0 = Release|x64 + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Release|x86.ActiveCfg = Release|Win32 + {9A02F163-AEBD-431B-8E0E-53C246BC27A8}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BC3F94B4-62FD-46DF-891E-E98FB39ADFF2} + EndGlobalSection +EndGlobal diff --git a/HPCS2/HPCS2/HPCS2.vcxproj b/HPCS2/HPCS2/HPCS2.vcxproj new file mode 100644 index 0000000..4d30e07 --- /dev/null +++ b/HPCS2/HPCS2/HPCS2.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {9a02f163-aebd-431b-8e0e-53c246bc27a8} + HPCS2 + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp20 + + + Console + true + true + true + RequireAdministrator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HPCS2/HPCS2/HPCS2.vcxproj.filters b/HPCS2/HPCS2/HPCS2.vcxproj.filters new file mode 100644 index 0000000..d210227 --- /dev/null +++ b/HPCS2/HPCS2/HPCS2.vcxproj.filters @@ -0,0 +1,87 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 資源檔 + + + 來源檔案 + + + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 標頭檔 + + + 來源檔案 + + + 來源檔案 + + + \ No newline at end of file diff --git a/HPCS2/HPCS2/HPCS2.vcxproj.user b/HPCS2/HPCS2/HPCS2.vcxproj.user new file mode 100644 index 0000000..0f14913 --- /dev/null +++ b/HPCS2/HPCS2/HPCS2.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HPCS2/HPCS2/Source.cpp b/HPCS2/HPCS2/Source.cpp new file mode 100644 index 0000000..0dcc715 --- /dev/null +++ b/HPCS2/HPCS2/Source.cpp @@ -0,0 +1,1003 @@ + +#include "offset/offsets.hpp" +#include "offset/client.dll.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "memory.hpp" +#define render_distance -1 +#define show_extra true +#define flag_render_distance 200 +#define TextSize 15 +#define BonesColor RGB(200, 200, 200) +#define FOV 40//2 +HANDLE cs2_process_handle; +ProcessModule cs2_module_client; +ProcessModule base_engine; + +std::shared_ptr process; +struct C_UTL_VECTOR +{ + DWORD_PTR count = 0; + DWORD_PTR data = 0; +}; +namespace render +{ + void DrawBorderBox(HDC hdc, int x, int y, int w, int h, COLORREF borderColor) + { + HBRUSH hBorderBrush = CreateSolidBrush(borderColor); + HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc, hBorderBrush); + + RECT rect = { x, y, x + w, y + h }; + FrameRect(hdc, &rect, hBorderBrush); + + SelectObject(hdc, hOldBrush); // Restore the original brush + DeleteObject(hBorderBrush); // Delete the temporary brush + } + + void DrawFilledBox(HDC hdc, int x, int y, int width, int height, COLORREF color) + { + HBRUSH hBrush = CreateSolidBrush(color); + RECT rect = { x, y, x + width, y + height }; + FillRect(hdc, &rect, hBrush); + DeleteObject(hBrush); + } + + + + void SetTextSize(HDC hdc, int textSize) + { + LOGFONT lf; + HFONT hFont, hOldFont; + + // Initialize the LOGFONT structure + ZeroMemory(&lf, sizeof(LOGFONT)); + lf.lfHeight = -textSize; // Set the desired text height (negative for height) + lf.lfWeight = FW_NORMAL; // Set the font weight (e.g., FW_NORMAL for normal) + lf.lfQuality = ANTIALIASED_QUALITY; // Enable anti-aliasing + + // Create a new font based on the LOGFONT structure + hFont = CreateFontIndirect(&lf); + + // Select the new font into the device context and save the old font + hOldFont = (HFONT)SelectObject(hdc, hFont); + + // Clean up the old font (when done using it) + DeleteObject(hOldFont); + } + + void RenderLine(HDC hdc,float p1x,float p1y,float p2x,float p2y, COLORREF borderColor) + { + HPEN hPen = CreatePen(PS_DASH, 2, borderColor); // ʹúɫΪ1أʵʽĻ + SelectObject(hdc, hPen); + MoveToEx(hdc, (int)p1x, (int)p1y, (LPPOINT)NULL); + LineTo(hdc, (int)p2x, (int)p2y); + DeleteObject(hPen); + } + + void RenderText(HDC hdc, int x, int y, const char* text, COLORREF textColor, int textSize) + { + SetTextSize(hdc, textSize); + SetTextColor(hdc, textColor); + + int len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); + wchar_t* wide_text = new wchar_t[len]; + MultiByteToWideChar(CP_UTF8, 0, text, -1, wide_text, len); + + TextOutW(hdc, x, y, wide_text, len - 1); + + delete[] wide_text; + } +} +namespace g { + inline HDC hdcBuffer = NULL; + inline HBITMAP hbmBuffer = NULL; + + RECT gameBounds; +} +enum bones : int { + head = 6, + neck = 5, + chest = 4, + shoulderRight = 8, + shoulderLeft = 13, + elbowRight = 9, + elbowLeft = 14, + handRight = 11, + handLeft = 16, + crotch = 0, + kneeRight = 23, + kneeLeft = 26, + ankleRight = 24, + ankleLeft = 27, +}; + + +inline namespace boneGroups { + inline std::vector mid = { bones::head,bones::neck,bones::chest,bones::crotch }; + inline std::vector leftArm = { bones::neck,bones::shoulderLeft,bones::elbowLeft,bones::handLeft }; + inline std::vector righttArm = { bones::neck,bones::shoulderRight,bones::elbowRight,bones::handRight }; + inline std::vector leftLeg = { bones::crotch,bones::kneeLeft,bones::ankleLeft }; + inline std::vector rightLeg = { bones::crotch,bones::kneeRight,bones::ankleRight }; + inline std::vector> allGroups = { mid,leftArm,righttArm,leftLeg,rightLeg }; +} +void loop(); + +void FunctionT(); + +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_CREATE: + { + g::hdcBuffer = CreateCompatibleDC(NULL); + g::hbmBuffer = CreateCompatibleBitmap(GetDC(hWnd), g::gameBounds.right, g::gameBounds.bottom); + SelectObject(g::hdcBuffer, g::hbmBuffer); + + SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED); + + SetLayeredWindowAttributes(hWnd, RGB(255, 255, 255), 0, LWA_COLORKEY); + + //std::cout << "[overlay] Window created successfully" << std::endl; + Beep(500, 100); + break; + } + case WM_ERASEBKGND: // We handle this message to avoid flickering + return TRUE; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + + //DOUBLE BUFFERING + FillRect(g::hdcBuffer, &ps.rcPaint, (HBRUSH)GetStockObject(WHITE_BRUSH)); + + + if (GetForegroundWindow() == process->hwnd_) { + //render::RenderText(g::hdcBuffer, 10, 10, "cs2 | ESP", RGB(75, 175, 175), 15); + loop(); + } + + BitBlt(hdc, 0, 0, g::gameBounds.right, g::gameBounds.bottom, g::hdcBuffer, 0, 0, SRCCOPY); + + EndPaint(hWnd, &ps); + InvalidateRect(hWnd, NULL, TRUE); + break; + } + case WM_DESTROY: + DeleteDC(g::hdcBuffer); + DeleteObject(g::hbmBuffer); + + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + + +struct view_matrix_t { + float* operator[ ](int index) { + return matrix[index]; + } + + float matrix[4][4]; +}; + + +struct Vector3 +{ + // constructor + constexpr Vector3( + const float x = 0.f, + const float y = 0.f, + const float z = 0.f) noexcept : + x(x), y(y), z(z) { } + + // operator overloads + constexpr const Vector3& operator-(const Vector3& other) const noexcept + { + return Vector3{ x - other.x, y - other.y, z - other.z }; + } + + constexpr const Vector3& operator+(const Vector3& other) const noexcept + { + return Vector3{ x + other.x, y + other.y, z + other.z }; + } + + constexpr const Vector3& operator/(const float factor) const noexcept + { + return Vector3{ x / factor, y / factor, z / factor }; + } + + constexpr const Vector3& operator*(const float factor) const noexcept + { + return Vector3{ x * factor, y * factor, z * factor }; + } + + constexpr const bool operator>(const Vector3& other) const noexcept { + return x > other.x && y > other.y && z > other.z; + } + + constexpr const bool operator>=(const Vector3& other) const noexcept { + return x >= other.x && y >= other.y && z >= other.z; + } + + constexpr const bool operator<(const Vector3& other) const noexcept { + return x < other.x&& y < other.y&& z < other.z; + } + + constexpr const bool operator<=(const Vector3& other) const noexcept { + return x <= other.x && y <= other.y && z <= other.z; + } + + constexpr const Vector3& ToAngle() const noexcept + { + return Vector3{ + std::atan2(-z, std::hypot(x, y)) * (180.0f / std::numbers::pi_v), + std::atan2(y, x) * (180.0f / std::numbers::pi_v), + 0.0f + }; + } + + void Print() + { + std::cout << "\n x : " << x << " y :" << y << "z :" << z; + return; + } + + constexpr const bool IsZero() const noexcept + { + return x == 0.f && y == 0.f && z == 0.f; + } + + float length() const { + return std::sqrt(x * x + y * y + z * z); + } + + float length2d() const { + return std::sqrt(x * x + y * y); + } + + + + Vector3 world_to_screen(view_matrix_t matrix) const { + float _x = matrix[0][0] * x + matrix[0][1] * y + matrix[0][2] * z + matrix[0][3]; + float _y = matrix[1][0] * x + matrix[1][1] * y + matrix[1][2] * z + matrix[1][3]; + float w = matrix[3][0] * x + matrix[3][1] * y + matrix[3][2] * z + matrix[3][3]; + + + float inv_w = 1.f / w; + _x *= inv_w; + _y *= inv_w; + + float x = g::gameBounds.right * .5f; + float y = g::gameBounds.bottom * .5f; + + x += 0.5f * _x * g::gameBounds.right + 0.5f; + y -= 0.5f * _y * g::gameBounds.bottom + 0.5f; + + return { x, y, w }; + } + + + float calculate_distance(const Vector3& point) const { + float dx = point.x - x; + float dy = point.y - y; + float dz = point.z - z; + + return std::sqrt(dx * dx + dy * dy + dz * dz); + } + + + // struct data + float x, y, z; +}; + +inline constexpr Vector3 CalculateAngle( + const Vector3& localPosition, + const Vector3& enemyPosition, + const Vector3& viewAngles) noexcept +{ + return ((enemyPosition - localPosition).ToAngle() - viewAngles); +}; + + +inline Vector3 clampAngles(Vector3 angles) { + if (angles.x > 89.0f && angles.x <= 180.0f) { + angles.x = 89.0f; + } + + if (angles.x > 180.0f) { + angles.x -= 360.0f; + } + + if (angles.x < -89.0f) { + angles.x = -89.0f; + } + + if (angles.y > 180.0f) { + angles.y -= 360.0f; + } + + if (angles.y < -180.0f) { + angles.y += 360.0f; + } + angles.z = 0; + + return angles; +}; + + +inline Vector3 normalizeAngles(Vector3 angle) { + while (angle.x > 180.f) + angle.x -= 360.0f; + + while (angle.x < -180.0f) + angle.x += 360.0f; + + while (angle.y > 180.0f) + angle.y -= 360.0f; + + while (angle.y < -180.0f) + angle.y += 360.0f; + + return angle; +}; + + + +inline Vector3 calculateBestAngle(Vector3 angle,float& configFov) { + Vector3 newAngle; + + float fov = std::hypot(angle.x, angle.y); + + if (fov < configFov) { + configFov = fov; + newAngle = angle; + } + return newAngle; +} + + +void aimBot(C_UTL_VECTOR aimPunchCache, int getShotsFired,Vector3& cameraPos,Vector3& viewAngles,float& fov, bool isHot,Vector3 baseViewAngles, DWORD_PTR baseViewAnglesAddy, uintptr_t boneArray) { + Vector3 aimPos; + Vector3 newAngle; + + aimPos = process->read(boneArray + 6/*head*/* 32); +// aimPos.Print(); + const Vector3 angle = CalculateAngle(cameraPos, aimPos, viewAngles ); + newAngle = calculateBestAngle(angle, fov/*fov*/); + newAngle = clampAngles(newAngle); + + newAngle.x = newAngle.x / 1.f;//smoothing + newAngle.y = newAngle.y / 1.f;//smoothing + + if (newAngle.IsZero()) { + return; + } + + if (isHot) { + if (GetAsyncKeyState(VK_SHIFT)&0x8000) { + + Vector3 aimPunchAngle = process->read(aimPunchCache.data + (aimPunchCache.count - 1) * sizeof(Vector3)); + + if (getShotsFired > 1) { + newAngle.x = newAngle.x - aimPunchAngle.x * 2.f; + newAngle.y = newAngle.y - aimPunchAngle.y * 2.f; + //newAngle = clampAngles(newAngle); + + process->write(baseViewAnglesAddy, newAngle + baseViewAngles); + } + else + process->write(baseViewAnglesAddy, baseViewAngles + newAngle); + } + } + else { + process->write(baseViewAnglesAddy, baseViewAngles + newAngle); + } +} + +void recoilControl(Vector3& ViewAngle, C_UTL_VECTOR aimPunchCache,int getShotsFired , DWORD_PTR baseViewAnglesAddy) { + static Vector3 oldPunch; + Vector3 aimPunchAngle = process->read(aimPunchCache.data + (aimPunchCache.count - 1) * sizeof(Vector3)); + + if (getShotsFired > 1) { + Vector3 recoilVector = { + ViewAngle.x + oldPunch.x - aimPunchAngle.x * 2.f, + ViewAngle.y + oldPunch.y - aimPunchAngle.y * 2.f + }; + recoilVector = clampAngles(recoilVector); + + process->write(baseViewAnglesAddy, recoilVector); + + + } + + oldPunch.x = aimPunchAngle.x * 2.f; + oldPunch.y = aimPunchAngle.y * 2.f; +} + +int main(int argc, char* argv[]) +{ + SetConsoleTitleW(L"cs2-HalfPeople-esp"); + + process = std::make_shared(); + + + while (!process->AttachProcessHj("cs2.exe")) + std::this_thread::sleep_for(std::chrono::seconds(1)); + + + do { + cs2_module_client = process->GetModule("client.dll"); + base_engine = process->GetModule("engine2.dll"); + if (cs2_module_client.base == 0 || base_engine.base == 0) { + std::this_thread::sleep_for(std::chrono::seconds(1)); + std::cout << " Failed to find module client.dll/engine2.dll, waiting for the game to load it..." << std::endl; + } + } while (cs2_module_client.base == 0 || base_engine.base == 0); + + const uintptr_t buildNumber = process->read(base_engine.base + engine2_dll::dwBuildNumber); + std::cout << "\n build number : " << buildNumber; + + std::cout << " Make sure your game is in \"Full Screen Windowed\"" << std::endl; + while (GetForegroundWindow() != process->hwnd_) { + std::this_thread::sleep_for(std::chrono::seconds(1)); + process->UpdateHWND(); + ShowWindow(process->hwnd_, TRUE); + } + std::cout << "Creating window overlay" << std::endl; + + WNDCLASSEXA wc = { 0 }; + wc.cbSize = sizeof(WNDCLASSEXA); + wc.lpfnWndProc = WndProc; + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.hbrBackground = WHITE_BRUSH; + wc.hInstance = reinterpret_cast(GetWindowLongA(process->hwnd_, (-6))); // GWL_HINSTANCE)); + wc.lpszMenuName = " "; + wc.lpszClassName = " "; + + RegisterClassExA(&wc); + + GetClientRect(process->hwnd_, &g::gameBounds); + + // Create the window + HINSTANCE hInstance = NULL; + HWND hWnd = CreateWindowExA(WS_EX_TRANSPARENT | WS_EX_TOPMOST | WS_EX_LAYERED | WS_EX_TOOLWINDOW, " ", "cs2-HalfPeople-esp", WS_POPUP, + g::gameBounds.left, g::gameBounds.top, g::gameBounds.right - g::gameBounds.left, g::gameBounds.bottom + g::gameBounds.left, NULL, NULL, hInstance, NULL); // NULL, NULL); + + if (hWnd == NULL) + return 0; + + SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + ShowWindow(hWnd, TRUE); + //SetActiveWindow(hack::process->hwnd_); + + // Message loop + MSG msg; + while (GetMessage(&msg, NULL, 0, 0)) + { + std::thread T(FunctionT); + if (GetAsyncKeyState(VK_END) & 0x8000) break; + + TranslateMessage(&msg); + DispatchMessage(&msg); + + T.join(); + //std::this_thread::sleep_for(std::chrono::milliseconds(1)); + } + + + DeleteDC(g::hdcBuffer); + DeleteObject(g::hbmBuffer); + + DestroyWindow(hWnd); + + process->Close(); + + + system("pause"); + + return 0; +} +uintptr_t localPlayer; +int localTeam; +uintptr_t entity_list; +void loop() +{ + render::RenderText(g::hdcBuffer, 50, 50, "HalfPeople CSGO 2 GameHack Test", RGB(200, 200,200), 30); + + const view_matrix_t view_matrix = process->read(cs2_module_client.base + client_dll::dwViewMatrix); + entity_list = process->read( cs2_module_client.base + client_dll::dwEntityList); + + localPlayer = process->read( cs2_module_client.base + client_dll::dwLocalPlayerPawn); + if (!localPlayer) + return ; + + localTeam = process->read( localPlayer + C_BaseEntity::m_iTeamNum); + + int playerIndex = 0; + uintptr_t list_entry; + + + //Vector3 cameraPos = process->read( localPlayer + C_CSPlayerPawnBase::m_vecLastClipCameraPos); + + //Vector3 viewAngles = process->read( localPlayer + C_CSPlayerPawnBase::m_angEyeAngles); + + //Vector3 baseViewAngles = process->read( cs2_module_client.base + client_dll::dwViewAngles); + + //float fov = 15; + + const uintptr_t localList_entry2 = process->read(entity_list + 0x8 * ((localPlayer & 0x7FFF) >> 9) + 16); + const uintptr_t localpCSPlayerPawn = process->read(localList_entry2 + 120 * (localPlayer & 0x1FF)); + if (!localpCSPlayerPawn) + return; + const uintptr_t localCGameSceneNode = process->read(localPlayer + C_BaseEntity::m_pGameSceneNode); + const Vector3 localOrigin = process->read(localCGameSceneNode + CGameSceneNode::m_vecOrigin); + bool c4IsPlanted = process->read(cs2_module_client.base +client_dll::dwPlantedC4 - 0x8); + if (c4IsPlanted) + { + const uintptr_t planted_c4 = process->read(process->read(cs2_module_client.base + client_dll::dwPlantedC4)); + + const uintptr_t c4Node = process->read(planted_c4 + C_BaseEntity::m_pGameSceneNode); + + const Vector3 c4Origin = process->read(c4Node + CGameSceneNode::m_vecAbsOrigin); + + const Vector3 c4ScreenPos = c4Origin.world_to_screen(view_matrix); + + if (c4ScreenPos.z >= 0.01f) { + float c4Distance = localOrigin.calculate_distance(c4Origin); + float c4RoundedDistance = std::round(c4Distance / 500.f); + + float height = 50 - c4RoundedDistance; + float width = height * 1.4f; + + render::RenderLine(g::hdcBuffer, 0, 0, c4ScreenPos.x, c4ScreenPos.y, RGB(175, 75, 75)); + + render::DrawFilledBox( + g::hdcBuffer, + c4ScreenPos.x - (width / 2), + c4ScreenPos.y - (height / 2), + width, + height, + RGB(175, 75, 75) + ); + + render::RenderText( + g::hdcBuffer, + c4ScreenPos.x + (width / 2 + 5), + c4ScreenPos.y, + "C4", + RGB(75, 75, 175), + TextSize + ); + } + } + while (true) + { + playerIndex++; + list_entry = process->read( entity_list + (8 * (playerIndex & 0x7FFF) >> 9) + 16); + if (!list_entry) + break; + + const uintptr_t player = process->read( list_entry + 120 * (playerIndex & 0x1FF)); + if (!player) + continue; + + const int playerTeam = process->read( player + C_BaseEntity::m_iTeamNum); + + + const std::uint32_t playerPawn = process->read( player + CCSPlayerController::m_hPlayerPawn); + + const uintptr_t list_entry2 = process->read( entity_list + 0x8 * ((playerPawn & 0x7FFF) >> 9) + 16); + if (!list_entry2) + continue; + + const uintptr_t pCSPlayerPawn = process->read( list_entry2 + 120 * (playerPawn & 0x1FF)); + + const int playerArmor = process->read(pCSPlayerPawn + C_CSPlayerPawnBase::m_ArmorValue); + const int playerHealth = process->read( pCSPlayerPawn + C_BaseEntity::m_iHealth); + if (playerHealth <= 0 || playerHealth > 100) + continue; + + if (pCSPlayerPawn == localPlayer) + continue; + + std::string playerName = "Invalid Name"; + const DWORD64 playerNameAddress = process->read(player + CCSPlayerController::m_sSanitizedPlayerName); + if (playerNameAddress) { + char buf[256]; + process->read_raw(playerNameAddress, buf, sizeof(buf)); + playerName = std::string(buf); + } + + const uintptr_t CGameSceneNode = process->read(pCSPlayerPawn + C_BaseEntity::m_pGameSceneNode); + const Vector3 origin = process->read(CGameSceneNode + CGameSceneNode::m_vecOrigin); + const Vector3 head = { origin.x, origin.y, origin.z + 75.f }; + + if (render_distance != -1 && (localOrigin - origin).length2d() > render_distance) + continue; + + const Vector3 screenPos = origin.world_to_screen(view_matrix); + if(screenPos.z < 0) + continue; + const Vector3 screenHead = head.world_to_screen(view_matrix); + + + + if (screenPos.z >= 0.01f) { + render::RenderLine(g::hdcBuffer, screenHead.x, screenHead.y, g::gameBounds.right / 2, g::gameBounds.bottom * 0.8, (localTeam == playerTeam ? RGB(75, 175, 75) : RGB(175, 75, 75))); + const float height = screenPos.y - screenHead.y; + const float width = height / 2.4f; + const float head_height = (screenPos.y - screenHead.y) / 8; + const float head_width = (height / 2.4f) / 4; + + float distance = localOrigin.calculate_distance(origin); + int roundedDistance = std::round(distance / 10.f); + + render::DrawBorderBox( + g::hdcBuffer, + screenHead.x - width / 2, + screenHead.y, + width, + height, + (localTeam == playerTeam ? RGB(75, 175, 75) : RGB(175, 75, 75)) + ); + + render::DrawBorderBox( + g::hdcBuffer, + screenHead.x - (width / 2 + 10), + screenHead.y + (height * (100 - playerArmor) / 100), + 2, + height - (height * (100 - playerArmor) / 100), + RGB(0, 185, 255) + ); + + render::DrawBorderBox( + g::hdcBuffer, + screenHead.x - (width / 2 + 5), + screenHead.y + (height * (100 - playerHealth) / 100), + 2, + height - (height * (100 - playerHealth) / 100), + RGB( + (255 - playerHealth), + (55 + playerHealth * 2), + 75 + ) + ); + + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y, + playerName.c_str(), + RGB(75, 75, 175), + TextSize + ); + + /** + * I know is not the best way but a simple way to not saturate the screen with a ton of information + */ + if (roundedDistance > flag_render_distance) + continue; + + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + TextSize, + (std::to_string(playerHealth) + "hp").c_str(), + RGB( + (255 - playerHealth), + (55 + playerHealth * 2), + 75 + ), + TextSize + ); + + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + TextSize*2, + (std::to_string(playerArmor) + "armor").c_str(), + RGB( + (255 - playerArmor), + (55 + playerArmor * 2), + 75 + ), + TextSize + ); + + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + TextSize * 8, + (std::to_string((int)distance) + "cm").c_str(), + RGB( + (255 - playerArmor), + (55 + playerArmor * 2), + 75 + ), + TextSize + ); + + if (show_extra) + { + /* + * Reading values for extra flags is now seperated from the other reads + * This removes unnecessary memory reads, improving performance when not showing extra flags + */ + const bool isDefusing = process->read(pCSPlayerPawn + C_CSPlayerPawnBase::m_bIsDefusing); + const uintptr_t playerMoneyServices = process->read(player + CCSPlayerController::m_pInGameMoneyServices); + const int32_t money = process->read(playerMoneyServices + CCSPlayerController_InGameMoneyServices::m_iAccount); + const float flashAlpha = process->read(pCSPlayerPawn + C_CSPlayerPawnBase::m_flFlashOverlayAlpha); + + const auto clippingWeapon = process->read(pCSPlayerPawn + C_CSPlayerPawnBase::m_pClippingWeapon); + const auto weaponData = process->read(clippingWeapon + 0x360); + const auto weaponNameAddress = process->read(weaponData + CCSWeaponBaseVData::m_szName); + std::string weaponName = "Invalid Weapon Name"; + + if (!weaponNameAddress) { + weaponName = "Invalid Weapon Name"; + } + else { + char buf[32]; + process->read_raw(weaponNameAddress, buf, sizeof(buf)); + weaponName = std::string(buf); + if (weaponName.compare(0, 7, "weapon_") == 0) + weaponName = weaponName.substr(7, weaponName.length()); // Remove weapon_ prefix + } + + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + TextSize*3, + weaponName.c_str(), + RGB(75, 75, 175), + TextSize + ); + + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + TextSize*4, + (std::to_string(roundedDistance) + "m away").c_str(), + RGB(75, 75, 175), + TextSize + ); + + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + TextSize*5, + ("$" + std::to_string(money)).c_str(), + RGB(0, 125, 0), + TextSize + ); + + if (flashAlpha > 100) + { + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + TextSize*6, + "Player is flashed", + RGB(75, 75, 175), + TextSize + ); + } + + if (isDefusing) + { + const std::string defuText = "Player is defusing"; + render::RenderText( + g::hdcBuffer, + screenHead.x + (width / 2 + 5), + screenHead.y + 60, + defuText.c_str(), + RGB(75, 75, 175), + TextSize + ); + } + } + + + if (distance > 1000) + { + continue; + } + + // const uintptr_t CGameSceneNode = process->read( pCSPlayerPawn + C_BaseEntity::m_pGameSceneNode); + const uintptr_t boneArray = process->read( CGameSceneNode + CSkeletonInstance::m_modelState + CGameSceneNode::m_vecOrigin); + + Vector3 head_ = process->read(boneArray + 6 * 32); + Vector3 cou = process->read(boneArray + 5 * 32); + Vector3 shoulderR = process->read(boneArray + 8 * 32); + Vector3 shoulderL = process->read(boneArray + 13 * 32); + Vector3 brasR = process->read(boneArray + 9 * 32); + Vector3 brasL = process->read(boneArray + 14 * 32); + Vector3 handR = process->read(boneArray + 11 * 32); + Vector3 handL = process->read(boneArray + 16 * 32); + Vector3 cock = process->read(boneArray + 0 * 32); + Vector3 kneesR = process->read(boneArray + 23 * 32); + Vector3 kneesL = process->read(boneArray + 26 * 32); + Vector3 feetR = process->read(boneArray + 24 * 32); + Vector3 feetL = process->read(boneArray + 27 * 32); + + Vector3 Ahead; + Vector3 Acou; + Vector3 AshoulderR; + Vector3 AshoulderL; + Vector3 AbrasR; + Vector3 AbrasL; + Vector3 AhandR; + Vector3 AhandL; + Vector3 Acock; + Vector3 AkneesR; + Vector3 AkneesL; + Vector3 AfeetR; + Vector3 AfeetL; + + + Ahead = head .world_to_screen(view_matrix) ; + if (Ahead.z < 0) + continue; + Acou = cou .world_to_screen(view_matrix) ; + if (Acou.z < 0) + continue; + AshoulderR= shoulderR.world_to_screen(view_matrix) ; + if (AshoulderR.z < 0) + continue; + AshoulderL= shoulderL.world_to_screen(view_matrix) ; + if (AshoulderL.z < 0) + continue; + AbrasR = brasR .world_to_screen( view_matrix) ; + if (AbrasR.z < 0) + continue; + AbrasL = brasL .world_to_screen( view_matrix) ; + if (AbrasL.z < 0) + continue; + AhandL = handL .world_to_screen( view_matrix) ; + if (AhandL.z < 0) + continue; + AhandR = handR .world_to_screen( view_matrix) ; + if (AhandR.z < 0) + continue; + Acock = cock .world_to_screen( view_matrix) ; + if (Acock.z < 0) + continue; + AkneesR = kneesR .world_to_screen( view_matrix) ; + if (AkneesR.z < 0) + continue; + AkneesL = kneesL .world_to_screen( view_matrix) ; + if (AkneesL.z < 0) + continue; + AfeetR = feetR .world_to_screen( view_matrix) ; + if (AfeetR.z < 0) + continue; + AfeetL = feetL .world_to_screen( view_matrix) ; + if (AfeetL.z < 0) + continue; + + render::RenderLine(g::hdcBuffer, Ahead.x, Ahead.y, Acou.x, Acou.y, BonesColor); + render::RenderLine(g::hdcBuffer,Acou.x, Acou.y, AshoulderR.x, AshoulderR.y, BonesColor); + render::RenderLine(g::hdcBuffer,Acou.x, Acou.y, AshoulderL.x, AshoulderL.y, BonesColor); + render::RenderLine(g::hdcBuffer,AbrasL.x, AbrasL.y, AshoulderL.x, AshoulderL.y, BonesColor); + render::RenderLine(g::hdcBuffer,AbrasR.x, AbrasR.y, AshoulderR.x, AshoulderR.y, BonesColor); + render::RenderLine(g::hdcBuffer,AbrasR.x, AbrasR.y, AhandR.x, AhandR.y, BonesColor); + render::RenderLine(g::hdcBuffer,AbrasL.x, AbrasL.y, AhandL.x, AhandL.y, BonesColor); + render::RenderLine(g::hdcBuffer,Acou.x, Acou.y, Acock.x, Acock.y, BonesColor); + render::RenderLine(g::hdcBuffer,AkneesR.x, AkneesR.y, Acock.x, Acock.y, BonesColor); + render::RenderLine(g::hdcBuffer,AkneesL.x, AkneesL.y, Acock.x, Acock.y, BonesColor); + render::RenderLine(g::hdcBuffer,AkneesL.x, AkneesL.y, AfeetL.x, AfeetL.y, BonesColor); + render::RenderLine(g::hdcBuffer,AkneesR.x, AkneesR.y, AfeetR.x, AfeetR.y, BonesColor); + + + // Vector3 previous, current; + // + // + // for (std::vector currentGroup : boneGroups::allGroups) { + // previous = { 0,0,0 }; + // + // for (int currentBone : currentGroup) { + // current = process->read(boneArray + currentBone * 32); + // + // if (previous.IsZero()) { + // previous = current; + // continue; + // } + // + // Vector3 currentScreenPos = current.world_to_screen(view_matrix); + // Vector3 previousScreenPos = previous.world_to_screen(view_matrix); + // + // + // render::RenderLine(g::hdcBuffer, previousScreenPos.x, previousScreenPos.y, currentScreenPos.x, currentScreenPos.y, BonesColor); + // + // previous = current; + // } + // } + + } + + + + + + } +} + +void FunctionT() +{ + + int playerIndex = 0; + uintptr_t list_entry; + + + Vector3 cameraPos = process->read(localPlayer + C_CSPlayerPawnBase::m_vecLastClipCameraPos); + + Vector3 viewAngles = process->read(localPlayer + C_CSPlayerPawnBase::m_angEyeAngles); + + Vector3 baseViewAngles = process->read(cs2_module_client.base + client_dll::dwViewAngles); + + + const uintptr_t localList_entry2 = process->read(entity_list + 0x8 * ((localPlayer & 0x7FFF) >> 9) + 16); + const uintptr_t localpCSPlayerPawn = process->read(localList_entry2 + 120 * (localPlayer & 0x1FF)); + if (!localpCSPlayerPawn) + return; + + uintptr_t baseViewAnglesAddy = cs2_module_client.base + client_dll::dwViewAngles; + + C_UTL_VECTOR aimPunchCache = process->read(localPlayer + C_CSPlayerPawn::m_aimPunchCache); + + int shotsFired = process->read(localPlayer + C_CSPlayerPawnBase::m_iShotsFired); + + float fov = FOV; + while (true) + { + playerIndex++; + list_entry = process->read(entity_list + (8 * (playerIndex & 0x7FFF) >> 9) + 16); + if (!list_entry) + break; + + const uintptr_t player = process->read(list_entry + 120 * (playerIndex & 0x1FF)); + if (!player) + continue; + + const int playerTeam = process->read(player + C_BaseEntity::m_iTeamNum); + if (playerTeam == localTeam) + { + continue; + } + + + + const std::uint32_t playerPawn = process->read(player + CCSPlayerController::m_hPlayerPawn); + + const uintptr_t list_entry2 = process->read(entity_list + 0x8 * ((playerPawn & 0x7FFF) >> 9) + 16); + if (!list_entry2) + continue; + + const uintptr_t pCSPlayerPawn = process->read(list_entry2 + 120 * (playerPawn & 0x1FF)); + if (pCSPlayerPawn == localPlayer) + continue; + + const int playerArmor = process->read(pCSPlayerPawn + C_CSPlayerPawnBase::m_ArmorValue); + const int playerHealth = process->read(pCSPlayerPawn + C_BaseEntity::m_iHealth); + if (playerHealth <= 0 || playerHealth > 100) + continue; + + const uintptr_t CGameSceneNode = process->read(pCSPlayerPawn + C_BaseEntity::m_pGameSceneNode); + const uintptr_t boneArray = process->read(CGameSceneNode + CSkeletonInstance::m_modelState + CGameSceneNode::m_vecOrigin); + + aimBot(aimPunchCache,shotsFired,cameraPos, viewAngles, fov, true, baseViewAngles, baseViewAnglesAddy, boneArray); + //recoilControl(viewAngles, aimPunchCache, shotsFired, baseViewAnglesAddy); + } +} diff --git a/HPCS2/HPCS2/handle_hijack.hpp b/HPCS2/HPCS2/handle_hijack.hpp new file mode 100644 index 0000000..620fd9a --- /dev/null +++ b/HPCS2/HPCS2/handle_hijack.hpp @@ -0,0 +1,287 @@ + +/* + Credits to: https://github.com/Apxaey/Handle-Hijacking-Anti-Cheat-Bypass for the source and public sharing! + + Its a little bit messy as i tried to make it asap. All comments below this are from the original creator! +*/ + +/* + This is a stand alone bypass made by Apxaey. Feel free to use this in your cheats but credit me for the bypass as i put alot of time into this. + If you have some brain cells you will be able to incorporate this into your cheats and remain undetected by user-mode anticheats. + Obviously standard cheat 'recommendations' still apply: + 1.) Use self-written or not signatured code + 2.) Dont write impossible values + 3.) If your going internal use a manual map injector + + If you follow the guidelines above and use this bypass you will be safe from usermode anticheats like VAC. + Obviously you can build and adapt upon my code to suit your needs. + If I was to make a cheat for myself i would put this bypass into something i call an 'external internal' cheat. + Whereby you make a cheat and inject into a legitimate program like discord and add a check to the this bypass to only hijack a handle from the process you inject into, giving the appearence that nothing is out of the ordinary + However you can implement this bypass into any form of cheat, its your decision. + If you need want some more info i recommend you watch my YT video on this bypass. + Anyways if you want to see more of my stuff feel free to join my discord server discord.gg/********. Here's my YT as well https://www.youtube.com/channel/UCPN6OOLxn1OaBP5jPThIiog. +*/ + +#include +#include +#include +#include + +// macros we use.Some can be found in wintrnl.h +#define SeDebugPriv 20 +#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) +#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004) +#define NtCurrentProcess ( (HANDLE)(LONG_PTR) -1 ) +#define ProcessHandleType 0x7 +#define SystemHandleInformation 16 + +/* +STRUCTURES NEEDED FOR NTOPENPROCESS: +*/ +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWCH Buffer; +} UNICODE_STRING, * PUNICODE_STRING; + +typedef struct _OBJECT_ATTRIBUTES { + ULONG Length; + HANDLE RootDirectory; + PUNICODE_STRING ObjectName; + ULONG Attributes; + PVOID SecurityDescriptor; + PVOID SecurityQualityOfService; +} OBJECT_ATTRIBUTES, * POBJECT_ATTRIBUTES; + +typedef struct _CLIENT_ID +{ + PVOID UniqueProcess; + PVOID UniqueThread; +} CLIENT_ID, * PCLIENT_ID; + +/* +STRUCTURES NEEDED FOR HANDLE INFORMATION: +*/ + +typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO +{ + ULONG ProcessId; + BYTE ObjectTypeNumber; + BYTE Flags; + USHORT Handle; + PVOID Object; + ACCESS_MASK GrantedAccess; +} SYSTEM_HANDLE, * PSYSTEM_HANDLE; //i shortened it to SYSTEM_HANDLE for the sake of typing + +typedef struct _SYSTEM_HANDLE_INFORMATION +{ + ULONG HandleCount; + SYSTEM_HANDLE Handles[1]; +} SYSTEM_HANDLE_INFORMATION, * PSYSTEM_HANDLE_INFORMATION; + +/* +FUNCTION PROTOTYPES: +*/ +typedef NTSTATUS(NTAPI* _NtDuplicateObject)( + HANDLE SourceProcessHandle, + HANDLE SourceHandle, + HANDLE TargetProcessHandle, + PHANDLE TargetHandle, + ACCESS_MASK DesiredAccess, + ULONG Attributes, + ULONG Options + ); + +typedef NTSTATUS(NTAPI* _RtlAdjustPrivilege)( + ULONG Privilege, + BOOLEAN Enable, + BOOLEAN CurrentThread, + PBOOLEAN Enabled + ); + +typedef NTSYSAPI NTSTATUS(NTAPI* _NtOpenProcess)( + PHANDLE ProcessHandle, + ACCESS_MASK DesiredAccess, + POBJECT_ATTRIBUTES ObjectAttributes, + PCLIENT_ID ClientId + ); + +typedef NTSTATUS(NTAPI* _NtQuerySystemInformation)( + ULONG SystemInformationClass, //your supposed to supply the whole class but microsoft kept the enum mostly empty so I just passed 16 instead for handle info. Thats why you get a warning in your code btw + PVOID SystemInformation, + ULONG SystemInformationLength, + PULONG ReturnLength + ); + +SYSTEM_HANDLE_INFORMATION* hInfo; //holds the handle information + +//the handles we will need to use later on + +namespace hj { + HANDLE procHandle = NULL; + HANDLE hProcess = NULL; + HANDLE HijackedHandle = NULL; + + // simple function i made that will just initialize our Object_Attributes structure as NtOpenProcess will fail otherwise + OBJECT_ATTRIBUTES InitObjectAttributes(PUNICODE_STRING name, ULONG attributes, HANDLE hRoot, PSECURITY_DESCRIPTOR security) + { + OBJECT_ATTRIBUTES object; + + object.Length = sizeof(OBJECT_ATTRIBUTES); + object.ObjectName = name; + object.Attributes = attributes; + object.RootDirectory = hRoot; + object.SecurityDescriptor = security; + + return object; + } + + bool IsHandleValid(HANDLE handle) // i made this to simply check if a handle is valid rather than repeating the if statments + { + if (handle && handle != INVALID_HANDLE_VALUE) + { + return true; + } + else + { + return false; + } + } + + HANDLE HijackExistingHandle(DWORD dwTargetProcessId) + { + HMODULE Ntdll = GetModuleHandleA("ntdll"); // get the base address of ntdll.dll + + //get the address of RtlAdjustPrivilege in ntdll.dll so we can grant our process the highest permission possible + _RtlAdjustPrivilege RtlAdjustPrivilege = (_RtlAdjustPrivilege)GetProcAddress(Ntdll, "RtlAdjustPrivilege"); + + boolean OldPriv; //store the old privileges + + // Give our program SeDeugPrivileges whcih allows us to get a handle to every process, even the highest privileged SYSTEM level processes. + RtlAdjustPrivilege(SeDebugPriv, TRUE, FALSE, &OldPriv); + + //get the address of NtQuerySystemInformation in ntdll.dll so we can find all the open handles on our system + _NtQuerySystemInformation NtQuerySystemInformation = (_NtQuerySystemInformation)GetProcAddress(Ntdll, "NtQuerySystemInformation"); + + //get the address of NtDuplicateObject in ntdll.dll so we can duplicate an existing handle into our cheat, basically performing the hijacking + _NtDuplicateObject NtDuplicateObject = (_NtDuplicateObject)GetProcAddress(Ntdll, "NtDuplicateObject"); + + //get the address of NtOpenProcess in ntdll.dll so wecan create a Duplicate handle + _NtOpenProcess NtOpenProcess = (_NtOpenProcess)GetProcAddress(Ntdll, "NtOpenProcess"); + + + //initialize the Object Attributes structure, you can just set each member to NULL rather than create a function like i did + OBJECT_ATTRIBUTES Obj_Attribute = InitObjectAttributes(NULL, NULL, NULL, NULL); + + //clientID is a PDWORD or DWORD* of the process id to create a handle to + CLIENT_ID clientID = { 0 }; + + + //the size variable is the amount of bytes allocated to store all the open handles + DWORD size = sizeof(SYSTEM_HANDLE_INFORMATION); + + //we allocate the memory to store all the handles on the heap rather than the stack becuase of the large amount of data + hInfo = (SYSTEM_HANDLE_INFORMATION*) new byte[size]; + + //zero the memory handle info + ZeroMemory(hInfo, size); + + //we use this for checking if the Native functions succeed + NTSTATUS NtRet = NULL; + + do + { + // delete the previously allocated memory on the heap because it wasn't large enough to store all the handles + delete[] hInfo; + + //increase the amount of memory allocated by 50% + size *= 1.5; + try + { + //set and allocate the larger size on the heap + hInfo = (PSYSTEM_HANDLE_INFORMATION) new byte[size]; + } + catch (std::bad_alloc) //catch a bad heap allocation. + { + procHandle ? CloseHandle(procHandle) : 0; + } + Sleep(1); //sleep for the cpu + + //we continue this loop until all the handles have been stored + } while ((NtRet = NtQuerySystemInformation(SystemHandleInformation, hInfo, size, NULL)) == STATUS_INFO_LENGTH_MISMATCH); + + //check if we got all the open handles on our system + if (!NT_SUCCESS(NtRet)) + { + procHandle ? CloseHandle(procHandle) : 0; + } + + + //loop through each handle on our system, and filter out handles that are invalid or cant be hijacked + for (unsigned int i = 0; i < hInfo->HandleCount; ++i) + { + //a variable to store the number of handles OUR cheat has open. + static DWORD NumOfOpenHandles; + + //get the amount of outgoing handles OUR cheat has open + GetProcessHandleCount(GetCurrentProcess(), &NumOfOpenHandles); + + //you can do a higher number if this is triggering false positives. Its just to make sure we dont fuck up and create thousands of handles + if (NumOfOpenHandles > 50) + { + procHandle ? CloseHandle(procHandle) : 0; + } + + //check if the current handle is valid, otherwise increment i and check the next handle + if (!IsHandleValid((HANDLE)hInfo->Handles[i].Handle)) + { + continue; + } + + //check the handle type is 0x7 meaning a process handle so we dont hijack a file handle for example + if (hInfo->Handles[i].ObjectTypeNumber != ProcessHandleType) + { + continue; + } + + + //set clientID to a pointer to the process with the handle to out target + clientID.UniqueProcess = (DWORD*)hInfo->Handles[i].ProcessId; + + //if procHandle is open, close it + procHandle ? CloseHandle(procHandle) : 0; + + //create a a handle with duplicate only permissions to the process with a handle to our target. NOT OUR TARGET. + NtRet = NtOpenProcess(&procHandle, PROCESS_DUP_HANDLE, &Obj_Attribute, &clientID); + if (!IsHandleValid(procHandle) || !NT_SUCCESS(NtRet)) //check is the funcions succeeded and check the handle is valid + { + continue; + } + + + //we duplicate the handle another process has to our target into our cheat with whatever permissions we want. I did all access. + NtRet = NtDuplicateObject(procHandle, (HANDLE)hInfo->Handles[i].Handle, NtCurrentProcess, &HijackedHandle, PROCESS_ALL_ACCESS, 0, 0); + if (!IsHandleValid(HijackedHandle) || !NT_SUCCESS(NtRet))//check is the funcions succeeded and check the handle is valid + { + + continue; + } + + //get the process id of the handle we duplicated and check its to our target + if (GetProcessId(HijackedHandle) != dwTargetProcessId) { + CloseHandle(HijackedHandle); + continue; + } + + + + hProcess = HijackedHandle; + + break; + } + + procHandle ? CloseHandle(procHandle) : 0; + + return hProcess; + } +} \ No newline at end of file diff --git a/HPCS2/HPCS2/memory.cpp b/HPCS2/HPCS2/memory.cpp new file mode 100644 index 0000000..7565142 --- /dev/null +++ b/HPCS2/HPCS2/memory.cpp @@ -0,0 +1,255 @@ +#include "memory.hpp" +#include +#include "handle_hijack.hpp" + +uint32_t pProcess::FindProcessIdByProcessName(const char* ProcessName) +{ + std::wstring wideProcessName; + int wideCharLength = MultiByteToWideChar(CP_UTF8, 0, ProcessName, -1, nullptr, 0); + if (wideCharLength > 0) + { + wideProcessName.resize(wideCharLength); + MultiByteToWideChar(CP_UTF8, 0, ProcessName, -1, &wideProcessName[0], wideCharLength); + } + + HANDLE hPID = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); + PROCESSENTRY32W process_entry_{ }; + process_entry_.dwSize = sizeof(PROCESSENTRY32W); + + DWORD pid = 0; + if (Process32FirstW(hPID, &process_entry_)) + { + do + { + if (!wcscmp(process_entry_.szExeFile, wideProcessName.c_str())) + { + pid = process_entry_.th32ProcessID; + break; + } + } while (Process32NextW(hPID, &process_entry_)); + } + CloseHandle(hPID); + return pid; +} + +uint32_t pProcess::FindProcessIdByWindowName(const char* WindowName) +{ + DWORD process_id = 0; + HWND windowHandle = FindWindowA(nullptr, WindowName); + if (windowHandle) + GetWindowThreadProcessId(windowHandle, &process_id); + return process_id; +} + +HWND pProcess::GetWindowHandleFromProcessId(DWORD ProcessId) { + HWND hwnd = NULL; + do { + hwnd = FindWindowEx(NULL, hwnd, NULL, NULL); + DWORD pid = 0; + GetWindowThreadProcessId(hwnd, &pid); + if (pid == ProcessId) { + TCHAR windowTitle[MAX_PATH]; + GetWindowText(hwnd, windowTitle, MAX_PATH); + if (IsWindowVisible(hwnd) && windowTitle[0] != '\0') { + return hwnd; + } + } + } while (hwnd != NULL); + return NULL; // No main window found for the given process ID +} + +bool pProcess::AttachProcess(const char* ProcessName) +{ + this->pid_ = this->FindProcessIdByProcessName(ProcessName); + + if (pid_) + { + HMODULE modules[0xFF]; + MODULEINFO module_info; + DWORD _; + + handle_ = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid_); + + EnumProcessModulesEx(this->handle_, modules, sizeof(modules), &_, LIST_MODULES_64BIT); + base_client_.base = (uintptr_t)modules[0]; + + GetModuleInformation(this->handle_, modules[0], &module_info, sizeof(module_info)); + base_client_.size = module_info.SizeOfImage; + + hwnd_ = this->GetWindowHandleFromProcessId(pid_); + + return true; + } + + return false; +} + +bool pProcess::AttachProcessHj(const char* ProcessName) +{ + this->pid_ = this->FindProcessIdByProcessName(ProcessName); + + if (pid_) + { + HMODULE modules[0xFF]; + MODULEINFO module_info; + DWORD _; + + + // Using Apxaey's handle hijack function to safely open a handle + handle_ = hj::HijackExistingHandle(pid_); + + if (!hj::IsHandleValid(handle_)) + { + std::cout << "[cheat] Handle Hijack failed, falling back to OpenProcess method." << std::endl; + return pProcess::AttachProcess(ProcessName); // Handle hijacking failed, so we fall back to the normal OpenProcess method + } + + EnumProcessModulesEx(this->handle_, modules, sizeof(modules), &_, LIST_MODULES_64BIT); + base_client_.base = (uintptr_t)modules[0]; + + GetModuleInformation(this->handle_, modules[0], &module_info, sizeof(module_info)); + base_client_.size = module_info.SizeOfImage; + + hwnd_ = this->GetWindowHandleFromProcessId(pid_); + + return true; + } + + return false; +} + + +bool pProcess::AttachWindow(const char* WindowName) +{ + this->pid_ = this->FindProcessIdByWindowName(WindowName); + + if (pid_) + { + HMODULE modules[0xFF]; + MODULEINFO module_info; + DWORD _; + + handle_ = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid_); + + EnumProcessModulesEx(this->handle_, modules, sizeof(modules), &_, LIST_MODULES_64BIT); + base_client_.base = (uintptr_t)modules[0]; + + GetModuleInformation(this->handle_, modules[0], &module_info, sizeof(module_info)); + base_client_.size = module_info.SizeOfImage; + + hwnd_ = this->GetWindowHandleFromProcessId(pid_); + + return true; + } + return false; +} + +bool pProcess::UpdateHWND() +{ + hwnd_ = this->GetWindowHandleFromProcessId(pid_); + return hwnd_ == nullptr; +} + +ProcessModule pProcess::GetModule(const char* lModule) +{ + std::wstring wideModule; + int wideCharLength = MultiByteToWideChar(CP_UTF8, 0, lModule, -1, nullptr, 0); + if (wideCharLength > 0) + { + wideModule.resize(wideCharLength); + MultiByteToWideChar(CP_UTF8, 0, lModule, -1, &wideModule[0], wideCharLength); + } + + HANDLE handle_module = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid_); + MODULEENTRY32W module_entry_{}; + module_entry_.dwSize = sizeof(MODULEENTRY32W); + + do + { + if (!wcscmp(module_entry_.szModule, wideModule.c_str())) + { + CloseHandle(handle_module); + return { (DWORD_PTR)module_entry_.modBaseAddr, module_entry_.dwSize }; + } + } while (Module32NextW(handle_module, &module_entry_)); + + CloseHandle(handle_module); + return { 0, 0 }; +} + +LPVOID pProcess::Allocate(size_t size_in_bytes) +{ + return VirtualAllocEx(this->handle_, NULL, size_in_bytes, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); +} + +uintptr_t pProcess::FindSignature(std::vector signature) +{ + std::unique_ptr data; + data = std::make_unique(this->base_client_.size); + + if (!ReadProcessMemory(this->handle_, (void*)(this->base_client_.base), data.get(), this->base_client_.size, NULL)) { + return 0x0; + } + + for (uintptr_t i = 0; i < this->base_client_.size; i++) + { + for (uintptr_t j = 0; j < signature.size(); j++) + { + if (signature.at(j) == 0x00) + continue; + + if (*reinterpret_cast(reinterpret_cast(&data[i + j])) == signature.at(j)) + { + if (j == signature.size() - 1) + return this->base_client_.base + i; + continue; + } + break; + } + } + return 0x0; +} + +uintptr_t pProcess::FindSignature(ProcessModule target_module, std::vector signature) +{ + std::unique_ptr data; + data = std::make_unique(0xFFFFFFF); + + if (!ReadProcessMemory(this->handle_, (void*)(target_module.base), data.get(), 0xFFFFFFF, NULL)) { + return NULL; + } + + for (uintptr_t i = 0; i < 0xFFFFFFF; i++) + { + for (uintptr_t j = 0; j < signature.size(); j++) + { + if (signature.at(j) == 0x00) + continue; + + if (*reinterpret_cast(reinterpret_cast(&data[i + j])) == signature.at(j)) + { + if (j == signature.size() - 1) + return this->base_client_.base + i; + continue; + } + break; + } + } + return 0x0; +} + +uintptr_t pProcess::FindCodeCave(uint32_t length_in_bytes) +{ + std::vector cave_pattern = {}; + + for (uint32_t i = 0; i < length_in_bytes; i++) { + cave_pattern.push_back(0x00); + } + + return FindSignature(cave_pattern); +} + +void pProcess::Close() +{ + CloseHandle(handle_); +} \ No newline at end of file diff --git a/HPCS2/HPCS2/memory.hpp b/HPCS2/HPCS2/memory.hpp new file mode 100644 index 0000000..be13d0e --- /dev/null +++ b/HPCS2/HPCS2/memory.hpp @@ -0,0 +1,124 @@ +#ifndef _PPROCESS_HPP_ +#define _PPROCESS_HPP_ + +#include +#include +#include +#include +#include +#include +#include + +typedef NTSTATUS(WINAPI* pNtReadVirtualMemory)(HANDLE ProcessHandle, PVOID BaseAddress, PVOID Buffer, ULONG NumberOfBytesToRead, PULONG NumberOfBytesRead); +typedef NTSTATUS(WINAPI* pNtWriteVirtualMemory)(HANDLE ProcessHandle, PVOID BaseAddress, PVOID Buffer, ULONG NumberOfBytesToWrite, PULONG NumberOfBytesWritten); + +class pMemory { + +public: + pMemory() { + pfnNtReadVirtualMemory = (pNtReadVirtualMemory)GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtReadVirtualMemory"); + pfnNtWriteVirtualMemory = (pNtWriteVirtualMemory)GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtWriteVirtualMemory"); + } + + pNtReadVirtualMemory pfnNtReadVirtualMemory; + pNtWriteVirtualMemory pfnNtWriteVirtualMemory; +}; + +struct ProcessModule +{ + uintptr_t base, size; +}; + +class pProcess +{ +public: + DWORD pid_; // process id + HANDLE handle_; // handle to process + HWND hwnd_; // window handle + ProcessModule base_client_; + +public: + bool AttachProcess(const char* process_name); + bool AttachProcessHj(const char* process_name); + bool AttachWindow(const char* window_name); + bool UpdateHWND(); + void Close(); + +public: + ProcessModule GetModule(const char* module_name); + LPVOID Allocate(size_t size_in_bytes); + uintptr_t FindCodeCave(uint32_t length_in_bytes); + uintptr_t FindSignature(std::vector signature); + uintptr_t FindSignature(ProcessModule target_module, std::vector signature); + + template + uintptr_t ReadOffsetFromSignature(std::vector signature, uint8_t offset) // offset example: "FF 05 ->22628B01<-" offset is 2 + { + uintptr_t pattern_address = this->FindSignature(signature); + if (!pattern_address) + return 0x0; + + T offset_value = this->read(pattern_address + offset); + return pattern_address + offset_value + offset + sizeof(T); + } + + bool read_raw(uintptr_t address, void* buffer, size_t size) + { + SIZE_T bytesRead; + pMemory cMemory; + + if (cMemory.pfnNtReadVirtualMemory(this->handle_, (PVOID)(address), buffer, static_cast(size), (PULONG)&bytesRead)) + { + return bytesRead == size; + } + return false; + } + + template + void write(uintptr_t address, T value) + { + pMemory cMemory; + cMemory.pfnNtWriteVirtualMemory(handle_, (void*)address, &value, sizeof(T), 0); + } + + template + T read(uintptr_t address) + { + T buffer{}; + pMemory cMemory; + + cMemory.pfnNtReadVirtualMemory(handle_, (void*)address, &buffer, sizeof(T), 0); + return buffer; + } + + void write_bytes(uintptr_t addr, std::vector patch) + { + pMemory cMemory; + cMemory.pfnNtWriteVirtualMemory(handle_, (void*)addr, &patch[0], patch.size(), 0); + } + + uintptr_t read_multi_address(uintptr_t ptr, std::vector offsets) + { + uintptr_t buffer = ptr; + for (int i = 0; i < offsets.size(); i++) + buffer = this->read(buffer + offsets[i]); + + return buffer; + } + + template + T read_multi(uintptr_t base, std::vector offsets) { + uintptr_t buffer = base; + for (int i = 0; i < offsets.size() - 1; i++) + { + buffer = this->read(buffer + offsets[i]); + } + return this->read(buffer + offsets.back()); + } + +private: + uint32_t FindProcessIdByProcessName(const char* process_name); + uint32_t FindProcessIdByWindowName(const char* window_name); + HWND GetWindowHandleFromProcessId(DWORD ProcessId); +}; +#endif \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/animationsystem.dll.hpp b/HPCS2/HPCS2/offset/animationsystem.dll.hpp new file mode 100644 index 0000000..e636e09 --- /dev/null +++ b/HPCS2/HPCS2/offset/animationsystem.dll.hpp @@ -0,0 +1,2579 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace AimMatrixOpFixedSettings_t { + constexpr std::ptrdiff_t m_attachment = 0x0; // CAnimAttachment + constexpr std::ptrdiff_t m_damping = 0x80; // CAnimInputDamping + constexpr std::ptrdiff_t m_poseCacheHandles = 0x90; // CPoseHandle[10] + constexpr std::ptrdiff_t m_eBlendMode = 0xB8; // AimMatrixBlendMode + constexpr std::ptrdiff_t m_fAngleIncrement = 0xBC; // float + constexpr std::ptrdiff_t m_nSequenceMaxFrame = 0xC0; // int32_t + constexpr std::ptrdiff_t m_nBoneMaskIndex = 0xC4; // int32_t + constexpr std::ptrdiff_t m_bTargetIsPosition = 0xC8; // bool +} + +namespace AnimComponentID { + constexpr std::ptrdiff_t m_id = 0x0; // uint32_t +} + +namespace AnimNodeID { + constexpr std::ptrdiff_t m_id = 0x0; // uint32_t +} + +namespace AnimNodeOutputID { + constexpr std::ptrdiff_t m_id = 0x0; // uint32_t +} + +namespace AnimParamID { + constexpr std::ptrdiff_t m_id = 0x0; // uint32_t +} + +namespace AnimScriptHandle { + constexpr std::ptrdiff_t m_id = 0x0; // uint32_t +} + +namespace AnimStateID { + constexpr std::ptrdiff_t m_id = 0x0; // uint32_t +} + +namespace AnimTagID { + constexpr std::ptrdiff_t m_id = 0x0; // uint32_t +} + +namespace AnimationDecodeDebugDumpElement_t { + constexpr std::ptrdiff_t m_nEntityIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_modelName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_poseParams = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_decodeOps = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_internalOps = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_decodedAnims = 0x58; // CUtlVector +} + +namespace AnimationDecodeDebugDump_t { + constexpr std::ptrdiff_t m_processingType = 0x0; // AnimationProcessingType_t + constexpr std::ptrdiff_t m_elems = 0x8; // CUtlVector +} + +namespace AnimationSnapshotBase_t { + constexpr std::ptrdiff_t m_flRealTime = 0x0; // float + constexpr std::ptrdiff_t m_rootToWorld = 0x10; // matrix3x4a_t + constexpr std::ptrdiff_t m_bBonesInWorldSpace = 0x40; // bool + constexpr std::ptrdiff_t m_boneSetupMask = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_boneTransforms = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_flexControllers = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_SnapshotType = 0x90; // AnimationSnapshotType_t + constexpr std::ptrdiff_t m_bHasDecodeDump = 0x94; // bool + constexpr std::ptrdiff_t m_DecodeDump = 0x98; // AnimationDecodeDebugDumpElement_t +} + +namespace AnimationSnapshot_t { // AnimationSnapshotBase_t + constexpr std::ptrdiff_t m_nEntIndex = 0x110; // int32_t + constexpr std::ptrdiff_t m_modelName = 0x118; // CUtlString +} + +namespace AttachmentHandle_t { + constexpr std::ptrdiff_t m_Value = 0x0; // uint8_t +} + +namespace BlendItem_t { + constexpr std::ptrdiff_t m_tags = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_pChild = 0x18; // CAnimUpdateNodeRef + constexpr std::ptrdiff_t m_hSequence = 0x28; // HSequence + constexpr std::ptrdiff_t m_vPos = 0x2C; // Vector2D + constexpr std::ptrdiff_t m_flDuration = 0x34; // float + constexpr std::ptrdiff_t m_bUseCustomDuration = 0x38; // bool +} + +namespace BoneDemoCaptureSettings_t { + constexpr std::ptrdiff_t m_boneName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_flChainLength = 0x8; // float +} + +namespace CActionComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_actions = 0x30; // CUtlVector> +} + +namespace CAddUpdateNode { // CBinaryUpdateNode + constexpr std::ptrdiff_t m_footMotionTiming = 0x8C; // BinaryNodeChildOption + constexpr std::ptrdiff_t m_bApplyToFootMotion = 0x90; // bool + constexpr std::ptrdiff_t m_bApplyChannelsSeparately = 0x91; // bool + constexpr std::ptrdiff_t m_bUseModelSpace = 0x92; // bool +} + +namespace CAimConstraint { // CBaseConstraint + constexpr std::ptrdiff_t m_qAimOffset = 0x70; // Quaternion + constexpr std::ptrdiff_t m_nUpType = 0x80; // uint32_t +} + +namespace CAimMatrixUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_opFixedSettings = 0x70; // AimMatrixOpFixedSettings_t + constexpr std::ptrdiff_t m_target = 0x148; // AnimVectorSource + constexpr std::ptrdiff_t m_paramIndex = 0x14C; // CAnimParamHandle + constexpr std::ptrdiff_t m_hSequence = 0x150; // HSequence + constexpr std::ptrdiff_t m_bResetChild = 0x154; // bool + constexpr std::ptrdiff_t m_bLockWhenWaning = 0x155; // bool +} + +namespace CAnimActionUpdater { +} + +namespace CAnimActivity { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString + constexpr std::ptrdiff_t m_nActivity = 0x10; // int32_t + constexpr std::ptrdiff_t m_nFlags = 0x14; // int32_t + constexpr std::ptrdiff_t m_nWeight = 0x18; // int32_t +} + +namespace CAnimAttachment { + constexpr std::ptrdiff_t m_influenceRotations = 0x0; // Quaternion[3] + constexpr std::ptrdiff_t m_influenceOffsets = 0x30; // VectorAligned[3] + constexpr std::ptrdiff_t m_influenceIndices = 0x60; // int32_t[3] + constexpr std::ptrdiff_t m_influenceWeights = 0x6C; // float[3] + constexpr std::ptrdiff_t m_numInfluences = 0x78; // uint8_t +} + +namespace CAnimBone { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString + constexpr std::ptrdiff_t m_parent = 0x10; // int32_t + constexpr std::ptrdiff_t m_pos = 0x14; // Vector + constexpr std::ptrdiff_t m_quat = 0x20; // QuaternionStorage + constexpr std::ptrdiff_t m_scale = 0x30; // float + constexpr std::ptrdiff_t m_qAlignment = 0x34; // QuaternionStorage + constexpr std::ptrdiff_t m_flags = 0x44; // int32_t +} + +namespace CAnimBoneDifference { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString + constexpr std::ptrdiff_t m_parent = 0x10; // CBufferString + constexpr std::ptrdiff_t m_posError = 0x20; // Vector + constexpr std::ptrdiff_t m_bHasRotation = 0x2C; // bool + constexpr std::ptrdiff_t m_bHasMovement = 0x2D; // bool +} + +namespace CAnimComponentUpdater { + constexpr std::ptrdiff_t m_name = 0x18; // CUtlString + constexpr std::ptrdiff_t m_id = 0x20; // AnimComponentID + constexpr std::ptrdiff_t m_networkMode = 0x24; // AnimNodeNetworkMode + constexpr std::ptrdiff_t m_bStartEnabled = 0x28; // bool +} + +namespace CAnimCycle { // CCycleBase +} + +namespace CAnimData { + constexpr std::ptrdiff_t m_name = 0x10; // CBufferString + constexpr std::ptrdiff_t m_animArray = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_decoderArray = 0x38; // CUtlVector + constexpr std::ptrdiff_t m_nMaxUniqueFrameIndex = 0x50; // int32_t + constexpr std::ptrdiff_t m_segmentArray = 0x58; // CUtlVector +} + +namespace CAnimDataChannelDesc { + constexpr std::ptrdiff_t m_szChannelClass = 0x0; // CBufferString + constexpr std::ptrdiff_t m_szVariableName = 0x10; // CBufferString + constexpr std::ptrdiff_t m_nFlags = 0x20; // int32_t + constexpr std::ptrdiff_t m_nType = 0x24; // int32_t + constexpr std::ptrdiff_t m_szGrouping = 0x28; // CBufferString + constexpr std::ptrdiff_t m_szDescription = 0x38; // CBufferString + constexpr std::ptrdiff_t m_szElementNameArray = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_nElementIndexArray = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_nElementMaskArray = 0x78; // CUtlVector +} + +namespace CAnimDecoder { + constexpr std::ptrdiff_t m_szName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_nVersion = 0x10; // int32_t + constexpr std::ptrdiff_t m_nType = 0x14; // int32_t +} + +namespace CAnimDemoCaptureSettings { + constexpr std::ptrdiff_t m_rangeBoneChainLength = 0x0; // Vector2D + constexpr std::ptrdiff_t m_rangeMaxSplineErrorRotation = 0x8; // Vector2D + constexpr std::ptrdiff_t m_flMaxSplineErrorTranslation = 0x10; // float + constexpr std::ptrdiff_t m_flMaxSplineErrorScale = 0x14; // float + constexpr std::ptrdiff_t m_flIkRotation_MaxSplineError = 0x18; // float + constexpr std::ptrdiff_t m_flIkTranslation_MaxSplineError = 0x1C; // float + constexpr std::ptrdiff_t m_flMaxQuantizationErrorRotation = 0x20; // float + constexpr std::ptrdiff_t m_flMaxQuantizationErrorTranslation = 0x24; // float + constexpr std::ptrdiff_t m_flMaxQuantizationErrorScale = 0x28; // float + constexpr std::ptrdiff_t m_flIkRotation_MaxQuantizationError = 0x2C; // float + constexpr std::ptrdiff_t m_flIkTranslation_MaxQuantizationError = 0x30; // float + constexpr std::ptrdiff_t m_baseSequence = 0x38; // CUtlString + constexpr std::ptrdiff_t m_nBaseSequenceFrame = 0x40; // int32_t + constexpr std::ptrdiff_t m_boneSelectionMode = 0x44; // EDemoBoneSelectionMode + constexpr std::ptrdiff_t m_bones = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_ikChains = 0x60; // CUtlVector +} + +namespace CAnimDesc { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString + constexpr std::ptrdiff_t m_flags = 0x10; // CAnimDesc_Flag + constexpr std::ptrdiff_t fps = 0x18; // float + constexpr std::ptrdiff_t m_Data = 0x20; // CAnimEncodedFrames + constexpr std::ptrdiff_t m_movementArray = 0xF8; // CUtlVector + constexpr std::ptrdiff_t m_eventArray = 0x110; // CUtlVector + constexpr std::ptrdiff_t m_activityArray = 0x128; // CUtlVector + constexpr std::ptrdiff_t m_hierarchyArray = 0x140; // CUtlVector + constexpr std::ptrdiff_t framestalltime = 0x158; // float + constexpr std::ptrdiff_t m_vecRootMin = 0x15C; // Vector + constexpr std::ptrdiff_t m_vecRootMax = 0x168; // Vector + constexpr std::ptrdiff_t m_vecBoneWorldMin = 0x178; // CUtlVector + constexpr std::ptrdiff_t m_vecBoneWorldMax = 0x190; // CUtlVector + constexpr std::ptrdiff_t m_sequenceParams = 0x1A8; // CAnimSequenceParams +} + +namespace CAnimDesc_Flag { + constexpr std::ptrdiff_t m_bLooping = 0x0; // bool + constexpr std::ptrdiff_t m_bAllZeros = 0x1; // bool + constexpr std::ptrdiff_t m_bHidden = 0x2; // bool + constexpr std::ptrdiff_t m_bDelta = 0x3; // bool + constexpr std::ptrdiff_t m_bLegacyWorldspace = 0x4; // bool + constexpr std::ptrdiff_t m_bModelDoc = 0x5; // bool + constexpr std::ptrdiff_t m_bImplicitSeqIgnoreDelta = 0x6; // bool + constexpr std::ptrdiff_t m_bAnimGraphAdditive = 0x7; // bool +} + +namespace CAnimEncodeDifference { + constexpr std::ptrdiff_t m_boneArray = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_morphArray = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_userArray = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_bHasRotationBitArray = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_bHasMovementBitArray = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_bHasMorphBitArray = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_bHasUserBitArray = 0x90; // CUtlVector +} + +namespace CAnimEncodedFrames { + constexpr std::ptrdiff_t m_fileName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_nFrames = 0x10; // int32_t + constexpr std::ptrdiff_t m_nFramesPerBlock = 0x14; // int32_t + constexpr std::ptrdiff_t m_frameblockArray = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_usageDifferences = 0x30; // CAnimEncodeDifference +} + +namespace CAnimEnum { + constexpr std::ptrdiff_t m_value = 0x0; // uint8_t +} + +namespace CAnimEventDefinition { + constexpr std::ptrdiff_t m_nFrame = 0x8; // int32_t + constexpr std::ptrdiff_t m_flCycle = 0xC; // float + constexpr std::ptrdiff_t m_EventData = 0x10; // KeyValues3 + constexpr std::ptrdiff_t m_sLegacyOptions = 0x20; // CBufferString + constexpr std::ptrdiff_t m_sEventName = 0x30; // CGlobalSymbol +} + +namespace CAnimFoot { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_vBallOffset = 0x8; // Vector + constexpr std::ptrdiff_t m_vHeelOffset = 0x14; // Vector + constexpr std::ptrdiff_t m_ankleBoneIndex = 0x20; // int32_t + constexpr std::ptrdiff_t m_toeBoneIndex = 0x24; // int32_t +} + +namespace CAnimFrameBlockAnim { + constexpr std::ptrdiff_t m_nStartFrame = 0x0; // int32_t + constexpr std::ptrdiff_t m_nEndFrame = 0x4; // int32_t + constexpr std::ptrdiff_t m_segmentIndexArray = 0x8; // CUtlVector +} + +namespace CAnimFrameSegment { + constexpr std::ptrdiff_t m_nUniqueFrameIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_nLocalElementMasks = 0x4; // uint32_t + constexpr std::ptrdiff_t m_nLocalChannel = 0x8; // int32_t + constexpr std::ptrdiff_t m_container = 0x10; // CUtlBinaryBlock +} + +namespace CAnimGraphDebugReplay { + constexpr std::ptrdiff_t m_animGraphFileName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_frameList = 0x48; // CUtlVector> + constexpr std::ptrdiff_t m_startIndex = 0x60; // int32_t + constexpr std::ptrdiff_t m_writeIndex = 0x64; // int32_t + constexpr std::ptrdiff_t m_frameCount = 0x68; // int32_t +} + +namespace CAnimGraphModelBinding { + constexpr std::ptrdiff_t m_modelName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_pSharedData = 0x10; // CSmartPtr +} + +namespace CAnimGraphNetworkSettings { // CAnimGraphSettingsGroup + constexpr std::ptrdiff_t m_bNetworkingEnabled = 0x20; // bool +} + +namespace CAnimGraphSettingsGroup { +} + +namespace CAnimGraphSettingsManager { + constexpr std::ptrdiff_t m_settingsGroups = 0x18; // CUtlVector> +} + +namespace CAnimInputDamping { + constexpr std::ptrdiff_t m_speedFunction = 0x8; // DampingSpeedFunction + constexpr std::ptrdiff_t m_fSpeedScale = 0xC; // float +} + +namespace CAnimKeyData { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString + constexpr std::ptrdiff_t m_boneArray = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_userArray = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_morphArray = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_nChannelElements = 0x58; // int32_t + constexpr std::ptrdiff_t m_dataChannelArray = 0x60; // CUtlVector +} + +namespace CAnimLocalHierarchy { + constexpr std::ptrdiff_t m_sBone = 0x0; // CBufferString + constexpr std::ptrdiff_t m_sNewParent = 0x10; // CBufferString + constexpr std::ptrdiff_t m_nStartFrame = 0x20; // int32_t + constexpr std::ptrdiff_t m_nPeakFrame = 0x24; // int32_t + constexpr std::ptrdiff_t m_nTailFrame = 0x28; // int32_t + constexpr std::ptrdiff_t m_nEndFrame = 0x2C; // int32_t +} + +namespace CAnimMorphDifference { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString +} + +namespace CAnimMotorUpdaterBase { + constexpr std::ptrdiff_t m_name = 0x10; // CUtlString + constexpr std::ptrdiff_t m_bDefault = 0x18; // bool +} + +namespace CAnimMovement { + constexpr std::ptrdiff_t endframe = 0x0; // int32_t + constexpr std::ptrdiff_t motionflags = 0x4; // int32_t + constexpr std::ptrdiff_t v0 = 0x8; // float + constexpr std::ptrdiff_t v1 = 0xC; // float + constexpr std::ptrdiff_t angle = 0x10; // float + constexpr std::ptrdiff_t vector = 0x14; // Vector + constexpr std::ptrdiff_t position = 0x20; // Vector +} + +namespace CAnimNodePath { + constexpr std::ptrdiff_t m_path = 0x0; // AnimNodeID[11] + constexpr std::ptrdiff_t m_nCount = 0x2C; // int32_t +} + +namespace CAnimParamHandle { + constexpr std::ptrdiff_t m_type = 0x0; // AnimParamType_t + constexpr std::ptrdiff_t m_index = 0x1; // uint8_t +} + +namespace CAnimParamHandleMap { + constexpr std::ptrdiff_t m_list = 0x0; // CUtlHashtable +} + +namespace CAnimParameterBase { + constexpr std::ptrdiff_t m_name = 0x18; // CGlobalSymbol + constexpr std::ptrdiff_t m_group = 0x20; // CUtlString + constexpr std::ptrdiff_t m_id = 0x28; // AnimParamID + constexpr std::ptrdiff_t m_componentName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_bNetworkingRequested = 0x4C; // bool + constexpr std::ptrdiff_t m_bIsReferenced = 0x4D; // bool +} + +namespace CAnimParameterManagerUpdater { + constexpr std::ptrdiff_t m_parameters = 0x18; // CUtlVector> + constexpr std::ptrdiff_t m_idToIndexMap = 0x30; // CUtlHashtable + constexpr std::ptrdiff_t m_nameToIndexMap = 0x50; // CUtlHashtable + constexpr std::ptrdiff_t m_indexToHandle = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_autoResetParams = 0x88; // CUtlVector> + constexpr std::ptrdiff_t m_autoResetMap = 0xA0; // CUtlHashtable +} + +namespace CAnimReplayFrame { + constexpr std::ptrdiff_t m_inputDataBlocks = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_instanceData = 0x28; // CUtlBinaryBlock + constexpr std::ptrdiff_t m_startingLocalToWorldTransform = 0x40; // CTransform + constexpr std::ptrdiff_t m_localToWorldTransform = 0x60; // CTransform + constexpr std::ptrdiff_t m_timeStamp = 0x80; // float +} + +namespace CAnimScriptComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_hScript = 0x30; // AnimScriptHandle +} + +namespace CAnimScriptManager { + constexpr std::ptrdiff_t m_scriptInfo = 0x10; // CUtlVector +} + +namespace CAnimSequenceParams { + constexpr std::ptrdiff_t m_flFadeInTime = 0x0; // float + constexpr std::ptrdiff_t m_flFadeOutTime = 0x4; // float +} + +namespace CAnimSkeleton { + constexpr std::ptrdiff_t m_localSpaceTransforms = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_modelSpaceTransforms = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_boneNames = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_children = 0x58; // CUtlVector> + constexpr std::ptrdiff_t m_parents = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_feet = 0x88; // CUtlVector + constexpr std::ptrdiff_t m_morphNames = 0xA0; // CUtlVector + constexpr std::ptrdiff_t m_lodBoneCounts = 0xB8; // CUtlVector +} + +namespace CAnimStateMachineUpdater { + constexpr std::ptrdiff_t m_states = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_transitions = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_startStateIndex = 0x50; // int32_t +} + +namespace CAnimTagBase { + constexpr std::ptrdiff_t m_name = 0x18; // CGlobalSymbol + constexpr std::ptrdiff_t m_group = 0x20; // CGlobalSymbol + constexpr std::ptrdiff_t m_tagID = 0x28; // AnimTagID + constexpr std::ptrdiff_t m_bIsReferenced = 0x2C; // bool +} + +namespace CAnimTagManagerUpdater { + constexpr std::ptrdiff_t m_tags = 0x18; // CUtlVector> +} + +namespace CAnimUpdateNodeBase { + constexpr std::ptrdiff_t m_nodePath = 0x18; // CAnimNodePath + constexpr std::ptrdiff_t m_networkMode = 0x48; // AnimNodeNetworkMode + constexpr std::ptrdiff_t m_name = 0x50; // CUtlString +} + +namespace CAnimUpdateNodeRef { + constexpr std::ptrdiff_t m_nodeIndex = 0x8; // int32_t +} + +namespace CAnimUpdateSharedData { + constexpr std::ptrdiff_t m_nodes = 0x10; // CUtlVector> + constexpr std::ptrdiff_t m_nodeIndexMap = 0x28; // CUtlHashtable + constexpr std::ptrdiff_t m_components = 0x48; // CUtlVector> + constexpr std::ptrdiff_t m_pParamListUpdater = 0x60; // CSmartPtr + constexpr std::ptrdiff_t m_pTagManagerUpdater = 0x68; // CSmartPtr + constexpr std::ptrdiff_t m_scriptManager = 0x70; // CSmartPtr + constexpr std::ptrdiff_t m_settings = 0x78; // CAnimGraphSettingsManager + constexpr std::ptrdiff_t m_pStaticPoseCache = 0xA8; // CSmartPtr + constexpr std::ptrdiff_t m_pSkeleton = 0xB0; // CSmartPtr + constexpr std::ptrdiff_t m_rootNodePath = 0xB8; // CAnimNodePath +} + +namespace CAnimUser { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString + constexpr std::ptrdiff_t m_nType = 0x10; // int32_t +} + +namespace CAnimUserDifference { + constexpr std::ptrdiff_t m_name = 0x0; // CBufferString + constexpr std::ptrdiff_t m_nType = 0x10; // int32_t +} + +namespace CAnimationGraphVisualizerAxis { // CAnimationGraphVisualizerPrimitiveBase + constexpr std::ptrdiff_t m_xWsTransform = 0x40; // CTransform + constexpr std::ptrdiff_t m_flAxisSize = 0x60; // float +} + +namespace CAnimationGraphVisualizerLine { // CAnimationGraphVisualizerPrimitiveBase + constexpr std::ptrdiff_t m_vWsPositionStart = 0x40; // VectorAligned + constexpr std::ptrdiff_t m_vWsPositionEnd = 0x50; // VectorAligned + constexpr std::ptrdiff_t m_Color = 0x60; // Color +} + +namespace CAnimationGraphVisualizerPie { // CAnimationGraphVisualizerPrimitiveBase + constexpr std::ptrdiff_t m_vWsCenter = 0x40; // VectorAligned + constexpr std::ptrdiff_t m_vWsStart = 0x50; // VectorAligned + constexpr std::ptrdiff_t m_vWsEnd = 0x60; // VectorAligned + constexpr std::ptrdiff_t m_Color = 0x70; // Color +} + +namespace CAnimationGraphVisualizerPrimitiveBase { + constexpr std::ptrdiff_t m_Type = 0x8; // CAnimationGraphVisualizerPrimitiveType + constexpr std::ptrdiff_t m_OwningAnimNodePaths = 0xC; // AnimNodeID[11] + constexpr std::ptrdiff_t m_nOwningAnimNodePathCount = 0x38; // int32_t +} + +namespace CAnimationGraphVisualizerSphere { // CAnimationGraphVisualizerPrimitiveBase + constexpr std::ptrdiff_t m_vWsPosition = 0x40; // VectorAligned + constexpr std::ptrdiff_t m_flRadius = 0x50; // float + constexpr std::ptrdiff_t m_Color = 0x54; // Color +} + +namespace CAnimationGraphVisualizerText { // CAnimationGraphVisualizerPrimitiveBase + constexpr std::ptrdiff_t m_vWsPosition = 0x40; // VectorAligned + constexpr std::ptrdiff_t m_Color = 0x50; // Color + constexpr std::ptrdiff_t m_Text = 0x58; // CUtlString +} + +namespace CAnimationGroup { + constexpr std::ptrdiff_t m_nFlags = 0x10; // uint32_t + constexpr std::ptrdiff_t m_name = 0x18; // CBufferString + constexpr std::ptrdiff_t m_localHAnimArray_Handle = 0x60; // CUtlVector> + constexpr std::ptrdiff_t m_includedGroupArray_Handle = 0x78; // CUtlVector> + constexpr std::ptrdiff_t m_directHSeqGroup_Handle = 0x90; // CStrongHandle + constexpr std::ptrdiff_t m_decodeKey = 0x98; // CAnimKeyData + constexpr std::ptrdiff_t m_szScripts = 0x110; // CUtlVector +} + +namespace CAttachment { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_influenceNames = 0x8; // CUtlString[3] + constexpr std::ptrdiff_t m_vInfluenceRotations = 0x20; // Quaternion[3] + constexpr std::ptrdiff_t m_vInfluenceOffsets = 0x50; // Vector[3] + constexpr std::ptrdiff_t m_influenceWeights = 0x74; // float[3] + constexpr std::ptrdiff_t m_bInfluenceRootTransform = 0x80; // bool[3] + constexpr std::ptrdiff_t m_nInfluences = 0x83; // uint8_t + constexpr std::ptrdiff_t m_bIgnoreRotation = 0x84; // bool +} + +namespace CAudioAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_clipName = 0x38; // CUtlString + constexpr std::ptrdiff_t m_attachmentName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_flVolume = 0x48; // float + constexpr std::ptrdiff_t m_bStopWhenTagEnds = 0x4C; // bool + constexpr std::ptrdiff_t m_bStopWhenGraphEnds = 0x4D; // bool + constexpr std::ptrdiff_t m_bPlayOnServer = 0x4E; // bool + constexpr std::ptrdiff_t m_bPlayOnClient = 0x4F; // bool +} + +namespace CBaseConstraint { // CBoneConstraintBase + constexpr std::ptrdiff_t m_name = 0x28; // CUtlString + constexpr std::ptrdiff_t m_vUpVector = 0x30; // Vector + constexpr std::ptrdiff_t m_slaves = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_targets = 0x58; // CUtlVector +} + +namespace CBinaryUpdateNode { // CAnimUpdateNodeBase + constexpr std::ptrdiff_t m_pChild1 = 0x58; // CAnimUpdateNodeRef + constexpr std::ptrdiff_t m_pChild2 = 0x68; // CAnimUpdateNodeRef + constexpr std::ptrdiff_t m_timingBehavior = 0x78; // BinaryNodeTiming + constexpr std::ptrdiff_t m_flTimingBlend = 0x7C; // float + constexpr std::ptrdiff_t m_bResetChild1 = 0x80; // bool + constexpr std::ptrdiff_t m_bResetChild2 = 0x81; // bool +} + +namespace CBindPoseUpdateNode { // CLeafUpdateNode +} + +namespace CBlend2DUpdateNode { // CAnimUpdateNodeBase + constexpr std::ptrdiff_t m_items = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_tags = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_paramSpans = 0x90; // CParamSpanUpdater + constexpr std::ptrdiff_t m_nodeItemIndices = 0xA8; // CUtlVector + constexpr std::ptrdiff_t m_damping = 0xC0; // CAnimInputDamping + constexpr std::ptrdiff_t m_blendSourceX = 0xD0; // AnimValueSource + constexpr std::ptrdiff_t m_paramX = 0xD4; // CAnimParamHandle + constexpr std::ptrdiff_t m_blendSourceY = 0xD8; // AnimValueSource + constexpr std::ptrdiff_t m_paramY = 0xDC; // CAnimParamHandle + constexpr std::ptrdiff_t m_eBlendMode = 0xE0; // Blend2DMode + constexpr std::ptrdiff_t m_playbackSpeed = 0xE4; // float + constexpr std::ptrdiff_t m_bLoop = 0xE8; // bool + constexpr std::ptrdiff_t m_bLockBlendOnReset = 0xE9; // bool + constexpr std::ptrdiff_t m_bLockWhenWaning = 0xEA; // bool + constexpr std::ptrdiff_t m_bAnimEventsAndTagsOnMostWeightedOnly = 0xEB; // bool +} + +namespace CBlendCurve { + constexpr std::ptrdiff_t m_flControlPoint1 = 0x0; // float + constexpr std::ptrdiff_t m_flControlPoint2 = 0x4; // float +} + +namespace CBlendUpdateNode { // CAnimUpdateNodeBase + constexpr std::ptrdiff_t m_children = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_sortedOrder = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_targetValues = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_blendValueSource = 0xAC; // AnimValueSource + constexpr std::ptrdiff_t m_paramIndex = 0xB0; // CAnimParamHandle + constexpr std::ptrdiff_t m_damping = 0xB8; // CAnimInputDamping + constexpr std::ptrdiff_t m_blendKeyType = 0xC8; // BlendKeyType + constexpr std::ptrdiff_t m_bLockBlendOnReset = 0xCC; // bool + constexpr std::ptrdiff_t m_bSyncCycles = 0xCD; // bool + constexpr std::ptrdiff_t m_bLoop = 0xCE; // bool + constexpr std::ptrdiff_t m_bLockWhenWaning = 0xCF; // bool +} + +namespace CBlockSelectionMetricEvaluator { // CMotionMetricEvaluator +} + +namespace CBodyGroupAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_nPriority = 0x38; // int32_t + constexpr std::ptrdiff_t m_bodyGroupSettings = 0x40; // CUtlVector +} + +namespace CBodyGroupSetting { + constexpr std::ptrdiff_t m_BodyGroupName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nBodyGroupOption = 0x8; // int32_t +} + +namespace CBoneConstraintBase { +} + +namespace CBoneConstraintDotToMorph { // CBoneConstraintBase + constexpr std::ptrdiff_t m_sBoneName = 0x28; // CUtlString + constexpr std::ptrdiff_t m_sTargetBoneName = 0x30; // CUtlString + constexpr std::ptrdiff_t m_sMorphChannelName = 0x38; // CUtlString + constexpr std::ptrdiff_t m_flRemap = 0x40; // float[4] +} + +namespace CBoneConstraintPoseSpaceBone { // CBaseConstraint + constexpr std::ptrdiff_t m_inputList = 0x70; // CUtlVector +} + +namespace CBoneConstraintPoseSpaceBone_Input_t { + constexpr std::ptrdiff_t m_inputValue = 0x0; // Vector + constexpr std::ptrdiff_t m_outputTransformList = 0x10; // CUtlVector +} + +namespace CBoneConstraintPoseSpaceMorph { // CBoneConstraintBase + constexpr std::ptrdiff_t m_sBoneName = 0x28; // CUtlString + constexpr std::ptrdiff_t m_sAttachmentName = 0x30; // CUtlString + constexpr std::ptrdiff_t m_outputMorph = 0x38; // CUtlVector + constexpr std::ptrdiff_t m_inputList = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_bClamp = 0x68; // bool +} + +namespace CBoneConstraintPoseSpaceMorph_Input_t { + constexpr std::ptrdiff_t m_inputValue = 0x0; // Vector + constexpr std::ptrdiff_t m_outputWeightList = 0x10; // CUtlVector +} + +namespace CBoneMaskUpdateNode { // CBinaryUpdateNode + constexpr std::ptrdiff_t m_nWeightListIndex = 0x8C; // int32_t + constexpr std::ptrdiff_t m_flRootMotionBlend = 0x90; // float + constexpr std::ptrdiff_t m_blendSpace = 0x94; // BoneMaskBlendSpace + constexpr std::ptrdiff_t m_footMotionTiming = 0x98; // BinaryNodeChildOption + constexpr std::ptrdiff_t m_bUseBlendScale = 0x9C; // bool + constexpr std::ptrdiff_t m_blendValueSource = 0xA0; // AnimValueSource + constexpr std::ptrdiff_t m_hBlendParameter = 0xA4; // CAnimParamHandle +} + +namespace CBonePositionMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_nBoneIndex = 0x50; // int32_t +} + +namespace CBoneVelocityMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_nBoneIndex = 0x50; // int32_t +} + +namespace CBoolAnimParameter { // CConcreteAnimParameter + constexpr std::ptrdiff_t m_bDefaultValue = 0x60; // bool +} + +namespace CCPPScriptComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_scriptsToRun = 0x30; // CUtlVector +} + +namespace CCachedPose { + constexpr std::ptrdiff_t m_transforms = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_morphWeights = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_hSequence = 0x38; // HSequence + constexpr std::ptrdiff_t m_flCycle = 0x3C; // float +} + +namespace CChoiceUpdateNode { // CAnimUpdateNodeBase + constexpr std::ptrdiff_t m_children = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_weights = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_blendTimes = 0x88; // CUtlVector + constexpr std::ptrdiff_t m_choiceMethod = 0xA0; // ChoiceMethod + constexpr std::ptrdiff_t m_choiceChangeMethod = 0xA4; // ChoiceChangeMethod + constexpr std::ptrdiff_t m_blendMethod = 0xA8; // ChoiceBlendMethod + constexpr std::ptrdiff_t m_blendTime = 0xAC; // float + constexpr std::ptrdiff_t m_bCrossFade = 0xB0; // bool + constexpr std::ptrdiff_t m_bResetChosen = 0xB1; // bool + constexpr std::ptrdiff_t m_bDontResetSameSelection = 0xB2; // bool +} + +namespace CChoreoUpdateNode { // CUnaryUpdateNode +} + +namespace CClothSettingsAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_flStiffness = 0x38; // float + constexpr std::ptrdiff_t m_flEaseIn = 0x3C; // float + constexpr std::ptrdiff_t m_flEaseOut = 0x40; // float + constexpr std::ptrdiff_t m_nVertexSet = 0x48; // CUtlString +} + +namespace CCompressorGroup { + constexpr std::ptrdiff_t m_nTotalElementCount = 0x0; // int32_t + constexpr std::ptrdiff_t m_szChannelClass = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_szVariableName = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_nType = 0x38; // CUtlVector + constexpr std::ptrdiff_t m_nFlags = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_szGrouping = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_nCompressorIndex = 0x80; // CUtlVector + constexpr std::ptrdiff_t m_szElementNames = 0x98; // CUtlVector> + constexpr std::ptrdiff_t m_nElementUniqueID = 0xB0; // CUtlVector> + constexpr std::ptrdiff_t m_nElementMask = 0xC8; // CUtlVector + constexpr std::ptrdiff_t m_vectorCompressor = 0xF8; // CUtlVector*> + constexpr std::ptrdiff_t m_quaternionCompressor = 0x110; // CUtlVector*> + constexpr std::ptrdiff_t m_intCompressor = 0x128; // CUtlVector*> + constexpr std::ptrdiff_t m_boolCompressor = 0x140; // CUtlVector*> + constexpr std::ptrdiff_t m_colorCompressor = 0x158; // CUtlVector*> + constexpr std::ptrdiff_t m_vector2DCompressor = 0x170; // CUtlVector*> + constexpr std::ptrdiff_t m_vector4DCompressor = 0x188; // CUtlVector*> +} + +namespace CConcreteAnimParameter { // CAnimParameterBase + constexpr std::ptrdiff_t m_previewButton = 0x50; // AnimParamButton_t + constexpr std::ptrdiff_t m_eNetworkSetting = 0x54; // AnimParamNetworkSetting + constexpr std::ptrdiff_t m_bUseMostRecentValue = 0x58; // bool + constexpr std::ptrdiff_t m_bAutoReset = 0x59; // bool + constexpr std::ptrdiff_t m_bGameWritable = 0x5A; // bool + constexpr std::ptrdiff_t m_bGraphWritable = 0x5B; // bool +} + +namespace CConstraintSlave { + constexpr std::ptrdiff_t m_qBaseOrientation = 0x0; // Quaternion + constexpr std::ptrdiff_t m_vBasePosition = 0x10; // Vector + constexpr std::ptrdiff_t m_nBoneHash = 0x1C; // uint32_t + constexpr std::ptrdiff_t m_flWeight = 0x20; // float + constexpr std::ptrdiff_t m_sName = 0x28; // CUtlString +} + +namespace CConstraintTarget { + constexpr std::ptrdiff_t m_qOffset = 0x20; // Quaternion + constexpr std::ptrdiff_t m_vOffset = 0x30; // Vector + constexpr std::ptrdiff_t m_nBoneHash = 0x3C; // uint32_t + constexpr std::ptrdiff_t m_sName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_flWeight = 0x48; // float + constexpr std::ptrdiff_t m_bIsAttachment = 0x59; // bool +} + +namespace CCurrentRotationVelocityMetricEvaluator { // CMotionMetricEvaluator +} + +namespace CCurrentVelocityMetricEvaluator { // CMotionMetricEvaluator +} + +namespace CCycleBase { + constexpr std::ptrdiff_t m_flCycle = 0x0; // float +} + +namespace CCycleControlClipUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_tags = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_hSequence = 0x7C; // HSequence + constexpr std::ptrdiff_t m_duration = 0x80; // float + constexpr std::ptrdiff_t m_valueSource = 0x84; // AnimValueSource + constexpr std::ptrdiff_t m_paramIndex = 0x88; // CAnimParamHandle +} + +namespace CCycleControlUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_valueSource = 0x68; // AnimValueSource + constexpr std::ptrdiff_t m_paramIndex = 0x6C; // CAnimParamHandle +} + +namespace CDampedPathAnimMotorUpdater { // CPathAnimMotorUpdaterBase + constexpr std::ptrdiff_t m_flAnticipationTime = 0x2C; // float + constexpr std::ptrdiff_t m_flMinSpeedScale = 0x30; // float + constexpr std::ptrdiff_t m_hAnticipationPosParam = 0x34; // CAnimParamHandle + constexpr std::ptrdiff_t m_hAnticipationHeadingParam = 0x36; // CAnimParamHandle + constexpr std::ptrdiff_t m_flSpringConstant = 0x38; // float + constexpr std::ptrdiff_t m_flMinSpringTension = 0x3C; // float + constexpr std::ptrdiff_t m_flMaxSpringTension = 0x40; // float +} + +namespace CDampedValueComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_items = 0x30; // CUtlVector +} + +namespace CDampedValueUpdateItem { + constexpr std::ptrdiff_t m_damping = 0x0; // CAnimInputDamping + constexpr std::ptrdiff_t m_hParamIn = 0x18; // CAnimParamHandle + constexpr std::ptrdiff_t m_hParamOut = 0x1A; // CAnimParamHandle +} + +namespace CDemoSettingsComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_settings = 0x30; // CAnimDemoCaptureSettings +} + +namespace CDirectPlaybackTagData { + constexpr std::ptrdiff_t m_sequenceName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_tags = 0x8; // CUtlVector +} + +namespace CDirectPlaybackUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_bFinishEarly = 0x6C; // bool + constexpr std::ptrdiff_t m_bResetOnFinish = 0x6D; // bool + constexpr std::ptrdiff_t m_allTags = 0x70; // CUtlVector +} + +namespace CDirectionalBlendUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_hSequences = 0x5C; // HSequence[8] + constexpr std::ptrdiff_t m_damping = 0x80; // CAnimInputDamping + constexpr std::ptrdiff_t m_blendValueSource = 0x90; // AnimValueSource + constexpr std::ptrdiff_t m_paramIndex = 0x94; // CAnimParamHandle + constexpr std::ptrdiff_t m_playbackSpeed = 0x98; // float + constexpr std::ptrdiff_t m_duration = 0x9C; // float + constexpr std::ptrdiff_t m_bLoop = 0xA0; // bool + constexpr std::ptrdiff_t m_bLockBlendOnReset = 0xA1; // bool +} + +namespace CDistanceRemainingMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_flMaxDistance = 0x50; // float + constexpr std::ptrdiff_t m_flMinDistance = 0x54; // float + constexpr std::ptrdiff_t m_flStartGoalFilterDistance = 0x58; // float + constexpr std::ptrdiff_t m_flMaxGoalOvershootScale = 0x5C; // float + constexpr std::ptrdiff_t m_bFilterFixedMinDistance = 0x60; // bool + constexpr std::ptrdiff_t m_bFilterGoalDistance = 0x61; // bool + constexpr std::ptrdiff_t m_bFilterGoalOvershoot = 0x62; // bool +} + +namespace CDrawCullingData { + constexpr std::ptrdiff_t m_vConeApex = 0x0; // Vector + constexpr std::ptrdiff_t m_ConeAxis = 0xC; // int8_t[3] + constexpr std::ptrdiff_t m_ConeCutoff = 0xF; // int8_t +} + +namespace CEditableMotionGraph { // CMotionGraph +} + +namespace CEmitTagActionUpdater { // CAnimActionUpdater + constexpr std::ptrdiff_t m_nTagIndex = 0x18; // int32_t + constexpr std::ptrdiff_t m_bIsZeroDuration = 0x1C; // bool +} + +namespace CEnumAnimParameter { // CConcreteAnimParameter + constexpr std::ptrdiff_t m_defaultValue = 0x68; // uint8_t + constexpr std::ptrdiff_t m_enumOptions = 0x70; // CUtlVector +} + +namespace CExpressionActionUpdater { // CAnimActionUpdater + constexpr std::ptrdiff_t m_hParam = 0x18; // CAnimParamHandle + constexpr std::ptrdiff_t m_eParamType = 0x1A; // AnimParamType_t + constexpr std::ptrdiff_t m_hScript = 0x1C; // AnimScriptHandle +} + +namespace CFingerBone { + constexpr std::ptrdiff_t m_boneName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_hingeAxis = 0x8; // Vector + constexpr std::ptrdiff_t m_vCapsulePos1 = 0x14; // Vector + constexpr std::ptrdiff_t m_vCapsulePos2 = 0x20; // Vector + constexpr std::ptrdiff_t m_flMinAngle = 0x2C; // float + constexpr std::ptrdiff_t m_flMaxAngle = 0x30; // float + constexpr std::ptrdiff_t m_flRadius = 0x34; // float +} + +namespace CFingerChain { + constexpr std::ptrdiff_t m_targets = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_bones = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_name = 0x30; // CUtlString + constexpr std::ptrdiff_t m_tipParentBoneName = 0x38; // CUtlString + constexpr std::ptrdiff_t m_vTipOffset = 0x40; // Vector + constexpr std::ptrdiff_t m_metacarpalBoneName = 0x50; // CUtlString + constexpr std::ptrdiff_t m_vSplayHingeAxis = 0x58; // Vector + constexpr std::ptrdiff_t m_flSplayMinAngle = 0x64; // float + constexpr std::ptrdiff_t m_flSplayMaxAngle = 0x68; // float + constexpr std::ptrdiff_t m_flFingerScaleRatio = 0x6C; // float +} + +namespace CFingerSource { + constexpr std::ptrdiff_t m_nFingerIndex = 0x0; // AnimVRFinger_t + constexpr std::ptrdiff_t m_flFingerWeight = 0x4; // float +} + +namespace CFlexController { + constexpr std::ptrdiff_t m_szName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_szType = 0x8; // CUtlString + constexpr std::ptrdiff_t min = 0x10; // float + constexpr std::ptrdiff_t max = 0x14; // float +} + +namespace CFlexDesc { + constexpr std::ptrdiff_t m_szFacs = 0x0; // CUtlString +} + +namespace CFlexOp { + constexpr std::ptrdiff_t m_OpCode = 0x0; // FlexOpCode_t + constexpr std::ptrdiff_t m_Data = 0x4; // int32_t +} + +namespace CFlexRule { + constexpr std::ptrdiff_t m_nFlex = 0x0; // int32_t + constexpr std::ptrdiff_t m_FlexOps = 0x8; // CUtlVector +} + +namespace CFloatAnimParameter { // CConcreteAnimParameter + constexpr std::ptrdiff_t m_fDefaultValue = 0x60; // float + constexpr std::ptrdiff_t m_fMinValue = 0x64; // float + constexpr std::ptrdiff_t m_fMaxValue = 0x68; // float + constexpr std::ptrdiff_t m_bInterpolate = 0x6C; // bool +} + +namespace CFollowAttachmentUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_opFixedData = 0x70; // FollowAttachmentSettings_t +} + +namespace CFollowPathUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_flBlendOutTime = 0x6C; // float + constexpr std::ptrdiff_t m_bBlockNonPathMovement = 0x70; // bool + constexpr std::ptrdiff_t m_bStopFeetAtGoal = 0x71; // bool + constexpr std::ptrdiff_t m_bScaleSpeed = 0x72; // bool + constexpr std::ptrdiff_t m_flScale = 0x74; // float + constexpr std::ptrdiff_t m_flMinAngle = 0x78; // float + constexpr std::ptrdiff_t m_flMaxAngle = 0x7C; // float + constexpr std::ptrdiff_t m_flSpeedScaleBlending = 0x80; // float + constexpr std::ptrdiff_t m_turnDamping = 0x88; // CAnimInputDamping + constexpr std::ptrdiff_t m_facingTarget = 0x98; // AnimValueSource + constexpr std::ptrdiff_t m_hParam = 0x9C; // CAnimParamHandle + constexpr std::ptrdiff_t m_flTurnToFaceOffset = 0xA0; // float + constexpr std::ptrdiff_t m_bTurnToFace = 0xA4; // bool +} + +namespace CFootAdjustmentUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_clips = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_hBasePoseCacheHandle = 0x88; // CPoseHandle + constexpr std::ptrdiff_t m_facingTarget = 0x8C; // CAnimParamHandle + constexpr std::ptrdiff_t m_flTurnTimeMin = 0x90; // float + constexpr std::ptrdiff_t m_flTurnTimeMax = 0x94; // float + constexpr std::ptrdiff_t m_flStepHeightMax = 0x98; // float + constexpr std::ptrdiff_t m_flStepHeightMaxAngle = 0x9C; // float + constexpr std::ptrdiff_t m_bResetChild = 0xA0; // bool + constexpr std::ptrdiff_t m_bAnimationDriven = 0xA1; // bool +} + +namespace CFootCycle { // CCycleBase +} + +namespace CFootCycleDefinition { + constexpr std::ptrdiff_t m_vStancePositionMS = 0x0; // Vector + constexpr std::ptrdiff_t m_vMidpointPositionMS = 0xC; // Vector + constexpr std::ptrdiff_t m_flStanceDirectionMS = 0x18; // float + constexpr std::ptrdiff_t m_vToStrideStartPos = 0x1C; // Vector + constexpr std::ptrdiff_t m_stanceCycle = 0x28; // CAnimCycle + constexpr std::ptrdiff_t m_footLiftCycle = 0x2C; // CFootCycle + constexpr std::ptrdiff_t m_footOffCycle = 0x30; // CFootCycle + constexpr std::ptrdiff_t m_footStrikeCycle = 0x34; // CFootCycle + constexpr std::ptrdiff_t m_footLandCycle = 0x38; // CFootCycle +} + +namespace CFootCycleMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_footIndices = 0x50; // CUtlVector +} + +namespace CFootDefinition { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_ankleBoneName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_toeBoneName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_vBallOffset = 0x18; // Vector + constexpr std::ptrdiff_t m_vHeelOffset = 0x24; // Vector + constexpr std::ptrdiff_t m_flFootLength = 0x30; // float + constexpr std::ptrdiff_t m_flBindPoseDirectionMS = 0x34; // float + constexpr std::ptrdiff_t m_flTraceHeight = 0x38; // float + constexpr std::ptrdiff_t m_flTraceRadius = 0x3C; // float +} + +namespace CFootFallAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_foot = 0x38; // FootFallTagFoot_t +} + +namespace CFootLockUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_opFixedSettings = 0x68; // FootLockPoseOpFixedSettings + constexpr std::ptrdiff_t m_footSettings = 0xD0; // CUtlVector + constexpr std::ptrdiff_t m_hipShiftDamping = 0xE8; // CAnimInputDamping + constexpr std::ptrdiff_t m_rootHeightDamping = 0xF8; // CAnimInputDamping + constexpr std::ptrdiff_t m_flStrideCurveScale = 0x108; // float + constexpr std::ptrdiff_t m_flStrideCurveLimitScale = 0x10C; // float + constexpr std::ptrdiff_t m_flStepHeightIncreaseScale = 0x110; // float + constexpr std::ptrdiff_t m_flStepHeightDecreaseScale = 0x114; // float + constexpr std::ptrdiff_t m_flHipShiftScale = 0x118; // float + constexpr std::ptrdiff_t m_flBlendTime = 0x11C; // float + constexpr std::ptrdiff_t m_flMaxRootHeightOffset = 0x120; // float + constexpr std::ptrdiff_t m_flMinRootHeightOffset = 0x124; // float + constexpr std::ptrdiff_t m_flTiltPlanePitchSpringStrength = 0x128; // float + constexpr std::ptrdiff_t m_flTiltPlaneRollSpringStrength = 0x12C; // float + constexpr std::ptrdiff_t m_bApplyFootRotationLimits = 0x130; // bool + constexpr std::ptrdiff_t m_bApplyHipShift = 0x131; // bool + constexpr std::ptrdiff_t m_bModulateStepHeight = 0x132; // bool + constexpr std::ptrdiff_t m_bResetChild = 0x133; // bool + constexpr std::ptrdiff_t m_bEnableVerticalCurvedPaths = 0x134; // bool + constexpr std::ptrdiff_t m_bEnableRootHeightDamping = 0x135; // bool +} + +namespace CFootMotion { + constexpr std::ptrdiff_t m_strides = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_name = 0x18; // CUtlString + constexpr std::ptrdiff_t m_bAdditive = 0x20; // bool +} + +namespace CFootPinningUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_poseOpFixedData = 0x70; // FootPinningPoseOpFixedData_t + constexpr std::ptrdiff_t m_eTimingSource = 0xA0; // FootPinningTimingSource + constexpr std::ptrdiff_t m_params = 0xA8; // CUtlVector + constexpr std::ptrdiff_t m_bResetChild = 0xC0; // bool +} + +namespace CFootPositionMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_footIndices = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_bIgnoreSlope = 0x68; // bool +} + +namespace CFootStepTriggerUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_triggers = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_flTolerance = 0x84; // float +} + +namespace CFootStride { + constexpr std::ptrdiff_t m_definition = 0x0; // CFootCycleDefinition + constexpr std::ptrdiff_t m_trajectories = 0x40; // CFootTrajectories +} + +namespace CFootTrajectories { + constexpr std::ptrdiff_t m_trajectories = 0x0; // CUtlVector +} + +namespace CFootTrajectory { + constexpr std::ptrdiff_t m_vOffset = 0x0; // Vector + constexpr std::ptrdiff_t m_flRotationOffset = 0xC; // float + constexpr std::ptrdiff_t m_flProgression = 0x10; // float +} + +namespace CFootstepLandedAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_FootstepType = 0x38; // FootstepLandedFootSoundType_t + constexpr std::ptrdiff_t m_OverrideSoundName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_DebugAnimSourceString = 0x48; // CUtlString + constexpr std::ptrdiff_t m_BoneName = 0x50; // CUtlString +} + +namespace CFutureFacingMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_flDistance = 0x50; // float + constexpr std::ptrdiff_t m_flTime = 0x54; // float +} + +namespace CFutureVelocityMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_flDistance = 0x50; // float + constexpr std::ptrdiff_t m_flStoppingDistance = 0x54; // float + constexpr std::ptrdiff_t m_flTargetSpeed = 0x58; // float + constexpr std::ptrdiff_t m_eMode = 0x5C; // VelocityMetricMode +} + +namespace CHitBox { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_sSurfaceProperty = 0x8; // CUtlString + constexpr std::ptrdiff_t m_sBoneName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_vMinBounds = 0x18; // Vector + constexpr std::ptrdiff_t m_vMaxBounds = 0x24; // Vector + constexpr std::ptrdiff_t m_flShapeRadius = 0x30; // float + constexpr std::ptrdiff_t m_nBoneNameHash = 0x34; // uint32_t + constexpr std::ptrdiff_t m_nGroupId = 0x38; // int32_t + constexpr std::ptrdiff_t m_nShapeType = 0x3C; // uint8_t + constexpr std::ptrdiff_t m_bTranslationOnly = 0x3D; // bool + constexpr std::ptrdiff_t m_CRC = 0x40; // uint32_t + constexpr std::ptrdiff_t m_cRenderColor = 0x44; // Color + constexpr std::ptrdiff_t m_nHitBoxIndex = 0x48; // uint16_t +} + +namespace CHitBoxSet { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nNameHash = 0x8; // uint32_t + constexpr std::ptrdiff_t m_HitBoxes = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_SourceFilename = 0x28; // CUtlString +} + +namespace CHitBoxSetList { + constexpr std::ptrdiff_t m_HitBoxSets = 0x0; // CUtlVector +} + +namespace CHitReactUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_opFixedSettings = 0x68; // HitReactFixedSettings_t + constexpr std::ptrdiff_t m_triggerParam = 0xB4; // CAnimParamHandle + constexpr std::ptrdiff_t m_hitBoneParam = 0xB6; // CAnimParamHandle + constexpr std::ptrdiff_t m_hitOffsetParam = 0xB8; // CAnimParamHandle + constexpr std::ptrdiff_t m_hitDirectionParam = 0xBA; // CAnimParamHandle + constexpr std::ptrdiff_t m_hitStrengthParam = 0xBC; // CAnimParamHandle + constexpr std::ptrdiff_t m_flMinDelayBetweenHits = 0xC0; // float + constexpr std::ptrdiff_t m_bResetChild = 0xC4; // bool +} + +namespace CInputStreamUpdateNode { // CLeafUpdateNode +} + +namespace CIntAnimParameter { // CConcreteAnimParameter + constexpr std::ptrdiff_t m_defaultValue = 0x60; // int32_t + constexpr std::ptrdiff_t m_minValue = 0x64; // int32_t + constexpr std::ptrdiff_t m_maxValue = 0x68; // int32_t +} + +namespace CJiggleBoneUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_opFixedData = 0x68; // JiggleBoneSettingsList_t +} + +namespace CJumpHelperUpdateNode { // CSequenceUpdateNode + constexpr std::ptrdiff_t m_hTargetParam = 0xA8; // CAnimParamHandle + constexpr std::ptrdiff_t m_flOriginalJumpMovement = 0xAC; // Vector + constexpr std::ptrdiff_t m_flOriginalJumpDuration = 0xB8; // float + constexpr std::ptrdiff_t m_flJumpStartCycle = 0xBC; // float + constexpr std::ptrdiff_t m_flJumpEndCycle = 0xC0; // float + constexpr std::ptrdiff_t m_eCorrectionMethod = 0xC4; // JumpCorrectionMethod + constexpr std::ptrdiff_t m_bTranslationAxis = 0xC8; // bool[3] + constexpr std::ptrdiff_t m_bScaleSpeed = 0xCB; // bool +} + +namespace CLODComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_nServerLOD = 0x30; // int32_t +} + +namespace CLeafUpdateNode { // CAnimUpdateNodeBase +} + +namespace CLeanMatrixUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_frameCorners = 0x5C; // int32_t[3][3] + constexpr std::ptrdiff_t m_poses = 0x80; // CPoseHandle[9] + constexpr std::ptrdiff_t m_damping = 0xA8; // CAnimInputDamping + constexpr std::ptrdiff_t m_blendSource = 0xB8; // AnimVectorSource + constexpr std::ptrdiff_t m_paramIndex = 0xBC; // CAnimParamHandle + constexpr std::ptrdiff_t m_verticalAxis = 0xC0; // Vector + constexpr std::ptrdiff_t m_horizontalAxis = 0xCC; // Vector + constexpr std::ptrdiff_t m_hSequence = 0xD8; // HSequence + constexpr std::ptrdiff_t m_flMaxValue = 0xDC; // float + constexpr std::ptrdiff_t m_nSequenceMaxFrame = 0xE0; // int32_t +} + +namespace CLookAtUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_opFixedSettings = 0x70; // LookAtOpFixedSettings_t + constexpr std::ptrdiff_t m_target = 0x138; // AnimVectorSource + constexpr std::ptrdiff_t m_paramIndex = 0x13C; // CAnimParamHandle + constexpr std::ptrdiff_t m_weightParamIndex = 0x13E; // CAnimParamHandle + constexpr std::ptrdiff_t m_bResetChild = 0x140; // bool + constexpr std::ptrdiff_t m_bLockWhenWaning = 0x141; // bool +} + +namespace CLookComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_hLookHeading = 0x34; // CAnimParamHandle + constexpr std::ptrdiff_t m_hLookHeadingVelocity = 0x36; // CAnimParamHandle + constexpr std::ptrdiff_t m_hLookPitch = 0x38; // CAnimParamHandle + constexpr std::ptrdiff_t m_hLookDistance = 0x3A; // CAnimParamHandle + constexpr std::ptrdiff_t m_hLookDirection = 0x3C; // CAnimParamHandle + constexpr std::ptrdiff_t m_hLookTarget = 0x3E; // CAnimParamHandle + constexpr std::ptrdiff_t m_hLookTargetWorldSpace = 0x40; // CAnimParamHandle + constexpr std::ptrdiff_t m_bNetworkLookTarget = 0x42; // bool +} + +namespace CMaterialAttributeAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_AttributeName = 0x38; // CUtlString + constexpr std::ptrdiff_t m_AttributeType = 0x40; // MatterialAttributeTagType_t + constexpr std::ptrdiff_t m_flValue = 0x44; // float + constexpr std::ptrdiff_t m_Color = 0x48; // Color +} + +namespace CMaterialDrawDescriptor { + constexpr std::ptrdiff_t m_nPrimitiveType = 0x0; // RenderPrimitiveType_t + constexpr std::ptrdiff_t m_nBaseVertex = 0x4; // int32_t + constexpr std::ptrdiff_t m_nVertexCount = 0x8; // int32_t + constexpr std::ptrdiff_t m_nStartIndex = 0xC; // int32_t + constexpr std::ptrdiff_t m_nIndexCount = 0x10; // int32_t + constexpr std::ptrdiff_t m_flUvDensity = 0x14; // float + constexpr std::ptrdiff_t m_vTintColor = 0x18; // Vector + constexpr std::ptrdiff_t m_flAlpha = 0x24; // float + constexpr std::ptrdiff_t m_nFirstMeshlet = 0x2C; // uint32_t + constexpr std::ptrdiff_t m_nNumMeshlets = 0x30; // uint16_t + constexpr std::ptrdiff_t m_indexBuffer = 0xB8; // CRenderBufferBinding + constexpr std::ptrdiff_t m_material = 0xE0; // CStrongHandle +} + +namespace CMeshletDescriptor { + constexpr std::ptrdiff_t m_PackedAABB = 0x0; // PackedAABB_t + constexpr std::ptrdiff_t m_CullingData = 0x8; // CDrawCullingData +} + +namespace CModelConfig { + constexpr std::ptrdiff_t m_ConfigName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_Elements = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_bTopLevel = 0x20; // bool +} + +namespace CModelConfigElement { + constexpr std::ptrdiff_t m_ElementName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_NestedElements = 0x10; // CUtlVector +} + +namespace CModelConfigElement_AttachedModel { // CModelConfigElement + constexpr std::ptrdiff_t m_InstanceName = 0x48; // CUtlString + constexpr std::ptrdiff_t m_EntityClass = 0x50; // CUtlString + constexpr std::ptrdiff_t m_hModel = 0x58; // CStrongHandle + constexpr std::ptrdiff_t m_vOffset = 0x60; // Vector + constexpr std::ptrdiff_t m_aAngOffset = 0x6C; // QAngle + constexpr std::ptrdiff_t m_AttachmentName = 0x78; // CUtlString + constexpr std::ptrdiff_t m_LocalAttachmentOffsetName = 0x80; // CUtlString + constexpr std::ptrdiff_t m_AttachmentType = 0x88; // ModelConfigAttachmentType_t + constexpr std::ptrdiff_t m_bBoneMergeFlex = 0x8C; // bool + constexpr std::ptrdiff_t m_bUserSpecifiedColor = 0x8D; // bool + constexpr std::ptrdiff_t m_bUserSpecifiedMaterialGroup = 0x8E; // bool + constexpr std::ptrdiff_t m_bAcceptParentMaterialDrivenDecals = 0x8F; // bool + constexpr std::ptrdiff_t m_BodygroupOnOtherModels = 0x90; // CUtlString + constexpr std::ptrdiff_t m_MaterialGroupOnOtherModels = 0x98; // CUtlString +} + +namespace CModelConfigElement_Command { // CModelConfigElement + constexpr std::ptrdiff_t m_Command = 0x48; // CUtlString + constexpr std::ptrdiff_t m_Args = 0x50; // KeyValues3 +} + +namespace CModelConfigElement_RandomColor { // CModelConfigElement + constexpr std::ptrdiff_t m_Gradient = 0x48; // CColorGradient +} + +namespace CModelConfigElement_RandomPick { // CModelConfigElement + constexpr std::ptrdiff_t m_Choices = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_ChoiceWeights = 0x60; // CUtlVector +} + +namespace CModelConfigElement_SetBodygroup { // CModelConfigElement + constexpr std::ptrdiff_t m_GroupName = 0x48; // CUtlString + constexpr std::ptrdiff_t m_nChoice = 0x50; // int32_t +} + +namespace CModelConfigElement_SetBodygroupOnAttachedModels { // CModelConfigElement + constexpr std::ptrdiff_t m_GroupName = 0x48; // CUtlString + constexpr std::ptrdiff_t m_nChoice = 0x50; // int32_t +} + +namespace CModelConfigElement_SetMaterialGroup { // CModelConfigElement + constexpr std::ptrdiff_t m_MaterialGroupName = 0x48; // CUtlString +} + +namespace CModelConfigElement_SetMaterialGroupOnAttachedModels { // CModelConfigElement + constexpr std::ptrdiff_t m_MaterialGroupName = 0x48; // CUtlString +} + +namespace CModelConfigElement_SetRenderColor { // CModelConfigElement + constexpr std::ptrdiff_t m_Color = 0x48; // Color +} + +namespace CModelConfigElement_UserPick { // CModelConfigElement + constexpr std::ptrdiff_t m_Choices = 0x48; // CUtlVector +} + +namespace CModelConfigList { + constexpr std::ptrdiff_t m_bHideMaterialGroupInTools = 0x0; // bool + constexpr std::ptrdiff_t m_bHideRenderColorInTools = 0x1; // bool + constexpr std::ptrdiff_t m_Configs = 0x8; // CUtlVector +} + +namespace CMoodVData { + constexpr std::ptrdiff_t m_sModelName = 0x0; // CResourceNameTyped> + constexpr std::ptrdiff_t m_nMoodType = 0xE0; // MoodType_t + constexpr std::ptrdiff_t m_animationLayers = 0xE8; // CUtlVector +} + +namespace CMorphBundleData { + constexpr std::ptrdiff_t m_flULeftSrc = 0x0; // float + constexpr std::ptrdiff_t m_flVTopSrc = 0x4; // float + constexpr std::ptrdiff_t m_offsets = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_ranges = 0x20; // CUtlVector +} + +namespace CMorphConstraint { // CBaseConstraint + constexpr std::ptrdiff_t m_sTargetMorph = 0x70; // CUtlString + constexpr std::ptrdiff_t m_nSlaveChannel = 0x78; // int32_t + constexpr std::ptrdiff_t m_flMin = 0x7C; // float + constexpr std::ptrdiff_t m_flMax = 0x80; // float +} + +namespace CMorphData { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_morphRectDatas = 0x8; // CUtlVector +} + +namespace CMorphRectData { + constexpr std::ptrdiff_t m_nXLeftDst = 0x0; // int16_t + constexpr std::ptrdiff_t m_nYTopDst = 0x2; // int16_t + constexpr std::ptrdiff_t m_flUWidthSrc = 0x4; // float + constexpr std::ptrdiff_t m_flVHeightSrc = 0x8; // float + constexpr std::ptrdiff_t m_bundleDatas = 0x10; // CUtlVector +} + +namespace CMorphSetData { + constexpr std::ptrdiff_t m_nWidth = 0x10; // int32_t + constexpr std::ptrdiff_t m_nHeight = 0x14; // int32_t + constexpr std::ptrdiff_t m_bundleTypes = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_morphDatas = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_pTextureAtlas = 0x48; // CStrongHandle + constexpr std::ptrdiff_t m_FlexDesc = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_FlexControllers = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_FlexRules = 0x80; // CUtlVector +} + +namespace CMotionDataSet { + constexpr std::ptrdiff_t m_groups = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_nDimensionCount = 0x18; // int32_t +} + +namespace CMotionGraph { + constexpr std::ptrdiff_t m_paramSpans = 0x10; // CParamSpanUpdater + constexpr std::ptrdiff_t m_tags = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_pRootNode = 0x40; // CSmartPtr + constexpr std::ptrdiff_t m_nParameterCount = 0x48; // int32_t + constexpr std::ptrdiff_t m_nConfigStartIndex = 0x4C; // int32_t + constexpr std::ptrdiff_t m_nConfigCount = 0x50; // int32_t + constexpr std::ptrdiff_t m_bLoop = 0x54; // bool +} + +namespace CMotionGraphConfig { + constexpr std::ptrdiff_t m_paramValues = 0x0; // float[4] + constexpr std::ptrdiff_t m_flDuration = 0x10; // float + constexpr std::ptrdiff_t m_nMotionIndex = 0x14; // MotionIndex + constexpr std::ptrdiff_t m_nSampleStart = 0x18; // int32_t + constexpr std::ptrdiff_t m_nSampleCount = 0x1C; // int32_t +} + +namespace CMotionGraphGroup { + constexpr std::ptrdiff_t m_searchDB = 0x0; // CMotionSearchDB + constexpr std::ptrdiff_t m_motionGraphs = 0xB8; // CUtlVector> + constexpr std::ptrdiff_t m_motionGraphConfigs = 0xD0; // CUtlVector + constexpr std::ptrdiff_t m_sampleToConfig = 0xE8; // CUtlVector + constexpr std::ptrdiff_t m_hIsActiveScript = 0x100; // AnimScriptHandle +} + +namespace CMotionGraphUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_pMotionGraph = 0x58; // CSmartPtr +} + +namespace CMotionMatchingUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_dataSet = 0x58; // CMotionDataSet + constexpr std::ptrdiff_t m_metrics = 0x78; // CUtlVector> + constexpr std::ptrdiff_t m_weights = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_bSearchEveryTick = 0xE0; // bool + constexpr std::ptrdiff_t m_flSearchInterval = 0xE4; // float + constexpr std::ptrdiff_t m_bSearchWhenClipEnds = 0xE8; // bool + constexpr std::ptrdiff_t m_bSearchWhenGoalChanges = 0xE9; // bool + constexpr std::ptrdiff_t m_blendCurve = 0xEC; // CBlendCurve + constexpr std::ptrdiff_t m_flSampleRate = 0xF4; // float + constexpr std::ptrdiff_t m_flBlendTime = 0xF8; // float + constexpr std::ptrdiff_t m_bLockClipWhenWaning = 0xFC; // bool + constexpr std::ptrdiff_t m_flSelectionThreshold = 0x100; // float + constexpr std::ptrdiff_t m_flReselectionTimeWindow = 0x104; // float + constexpr std::ptrdiff_t m_bEnableRotationCorrection = 0x108; // bool + constexpr std::ptrdiff_t m_bGoalAssist = 0x109; // bool + constexpr std::ptrdiff_t m_flGoalAssistDistance = 0x10C; // float + constexpr std::ptrdiff_t m_flGoalAssistTolerance = 0x110; // float + constexpr std::ptrdiff_t m_distanceScale_Damping = 0x118; // CAnimInputDamping + constexpr std::ptrdiff_t m_flDistanceScale_OuterRadius = 0x128; // float + constexpr std::ptrdiff_t m_flDistanceScale_InnerRadius = 0x12C; // float + constexpr std::ptrdiff_t m_flDistanceScale_MaxScale = 0x130; // float + constexpr std::ptrdiff_t m_flDistanceScale_MinScale = 0x134; // float + constexpr std::ptrdiff_t m_bEnableDistanceScaling = 0x138; // bool +} + +namespace CMotionMetricEvaluator { + constexpr std::ptrdiff_t m_means = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_standardDeviations = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_flWeight = 0x48; // float + constexpr std::ptrdiff_t m_nDimensionStartIndex = 0x4C; // int32_t +} + +namespace CMotionNode { + constexpr std::ptrdiff_t m_name = 0x18; // CUtlString + constexpr std::ptrdiff_t m_id = 0x20; // AnimNodeID +} + +namespace CMotionNodeBlend1D { // CMotionNode + constexpr std::ptrdiff_t m_blendItems = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_nParamIndex = 0x40; // int32_t +} + +namespace CMotionNodeSequence { // CMotionNode + constexpr std::ptrdiff_t m_tags = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_hSequence = 0x40; // HSequence + constexpr std::ptrdiff_t m_flPlaybackSpeed = 0x44; // float +} + +namespace CMotionSearchDB { + constexpr std::ptrdiff_t m_rootNode = 0x0; // CMotionSearchNode + constexpr std::ptrdiff_t m_residualQuantizer = 0x80; // CProductQuantizer + constexpr std::ptrdiff_t m_codeIndices = 0xA0; // CUtlVector +} + +namespace CMotionSearchNode { + constexpr std::ptrdiff_t m_children = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_quantizer = 0x18; // CVectorQuantizer + constexpr std::ptrdiff_t m_sampleCodes = 0x38; // CUtlVector> + constexpr std::ptrdiff_t m_sampleIndices = 0x50; // CUtlVector> + constexpr std::ptrdiff_t m_selectableSamples = 0x68; // CUtlVector +} + +namespace CMovementComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_movementModes = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_motors = 0x48; // CUtlVector> + constexpr std::ptrdiff_t m_facingDamping = 0x60; // CAnimInputDamping + constexpr std::ptrdiff_t m_eDefaultFacingMode = 0x70; // FacingMode + constexpr std::ptrdiff_t m_nDefaultMotorIndex = 0x7C; // int32_t + constexpr std::ptrdiff_t m_bMoveVarsDisabled = 0x80; // bool + constexpr std::ptrdiff_t m_bNetworkPath = 0x81; // bool + constexpr std::ptrdiff_t m_bNetworkFacing = 0x82; // bool + constexpr std::ptrdiff_t m_paramHandles = 0x83; // CAnimParamHandle[30] +} + +namespace CMovementMode { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_flSpeed = 0x8; // float +} + +namespace CMoverUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_damping = 0x70; // CAnimInputDamping + constexpr std::ptrdiff_t m_facingTarget = 0x80; // AnimValueSource + constexpr std::ptrdiff_t m_hMoveVecParam = 0x84; // CAnimParamHandle + constexpr std::ptrdiff_t m_hMoveHeadingParam = 0x86; // CAnimParamHandle + constexpr std::ptrdiff_t m_hTurnToFaceParam = 0x88; // CAnimParamHandle + constexpr std::ptrdiff_t m_flTurnToFaceOffset = 0x8C; // float + constexpr std::ptrdiff_t m_flTurnToFaceLimit = 0x90; // float + constexpr std::ptrdiff_t m_bAdditive = 0x94; // bool + constexpr std::ptrdiff_t m_bApplyMovement = 0x95; // bool + constexpr std::ptrdiff_t m_bOrientMovement = 0x96; // bool + constexpr std::ptrdiff_t m_bApplyRotation = 0x97; // bool + constexpr std::ptrdiff_t m_bLimitOnly = 0x98; // bool +} + +namespace COrientConstraint { // CBaseConstraint +} + +namespace CParamSpanUpdater { + constexpr std::ptrdiff_t m_spans = 0x0; // CUtlVector +} + +namespace CParentConstraint { // CBaseConstraint +} + +namespace CParticleAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_hParticleSystem = 0x38; // CStrongHandle + constexpr std::ptrdiff_t m_particleSystemName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_configName = 0x48; // CUtlString + constexpr std::ptrdiff_t m_bDetachFromOwner = 0x50; // bool + constexpr std::ptrdiff_t m_bStopWhenTagEnds = 0x51; // bool + constexpr std::ptrdiff_t m_bTagEndStopIsInstant = 0x52; // bool + constexpr std::ptrdiff_t m_attachmentName = 0x58; // CUtlString + constexpr std::ptrdiff_t m_attachmentType = 0x60; // ParticleAttachment_t + constexpr std::ptrdiff_t m_attachmentCP1Name = 0x68; // CUtlString + constexpr std::ptrdiff_t m_attachmentCP1Type = 0x70; // ParticleAttachment_t +} + +namespace CPathAnimMotorUpdater { // CPathAnimMotorUpdaterBase +} + +namespace CPathAnimMotorUpdaterBase { // CAnimMotorUpdaterBase + constexpr std::ptrdiff_t m_bLockToPath = 0x20; // bool +} + +namespace CPathHelperUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_flStoppingRadius = 0x68; // float + constexpr std::ptrdiff_t m_flStoppingSpeedScale = 0x6C; // float +} + +namespace CPathMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_pathTimeSamples = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_flDistance = 0x68; // float + constexpr std::ptrdiff_t m_bExtrapolateMovement = 0x6C; // bool + constexpr std::ptrdiff_t m_flMinExtrapolationSpeed = 0x70; // float +} + +namespace CPhysSurfaceProperties { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nameHash = 0x8; // uint32_t + constexpr std::ptrdiff_t m_baseNameHash = 0xC; // uint32_t + constexpr std::ptrdiff_t m_bHidden = 0x18; // bool + constexpr std::ptrdiff_t m_description = 0x20; // CUtlString + constexpr std::ptrdiff_t m_physics = 0x28; // CPhysSurfacePropertiesPhysics + constexpr std::ptrdiff_t m_audioSounds = 0x48; // CPhysSurfacePropertiesSoundNames + constexpr std::ptrdiff_t m_audioParams = 0x88; // CPhysSurfacePropertiesAudio +} + +namespace CPhysSurfacePropertiesAudio { + constexpr std::ptrdiff_t m_reflectivity = 0x0; // float + constexpr std::ptrdiff_t m_hardnessFactor = 0x4; // float + constexpr std::ptrdiff_t m_roughnessFactor = 0x8; // float + constexpr std::ptrdiff_t m_roughThreshold = 0xC; // float + constexpr std::ptrdiff_t m_hardThreshold = 0x10; // float + constexpr std::ptrdiff_t m_hardVelocityThreshold = 0x14; // float + constexpr std::ptrdiff_t m_flStaticImpactVolume = 0x18; // float + constexpr std::ptrdiff_t m_flOcclusionFactor = 0x1C; // float +} + +namespace CPhysSurfacePropertiesPhysics { + constexpr std::ptrdiff_t m_friction = 0x0; // float + constexpr std::ptrdiff_t m_elasticity = 0x4; // float + constexpr std::ptrdiff_t m_density = 0x8; // float + constexpr std::ptrdiff_t m_thickness = 0xC; // float + constexpr std::ptrdiff_t m_softContactFrequency = 0x10; // float + constexpr std::ptrdiff_t m_softContactDampingRatio = 0x14; // float + constexpr std::ptrdiff_t m_wheelDrag = 0x18; // float +} + +namespace CPhysSurfacePropertiesSoundNames { + constexpr std::ptrdiff_t m_impactSoft = 0x0; // CUtlString + constexpr std::ptrdiff_t m_impactHard = 0x8; // CUtlString + constexpr std::ptrdiff_t m_scrapeSmooth = 0x10; // CUtlString + constexpr std::ptrdiff_t m_scrapeRough = 0x18; // CUtlString + constexpr std::ptrdiff_t m_bulletImpact = 0x20; // CUtlString + constexpr std::ptrdiff_t m_rolling = 0x28; // CUtlString + constexpr std::ptrdiff_t m_break = 0x30; // CUtlString + constexpr std::ptrdiff_t m_strain = 0x38; // CUtlString +} + +namespace CPlayerInputAnimMotorUpdater { // CAnimMotorUpdaterBase + constexpr std::ptrdiff_t m_sampleTimes = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_flSpringConstant = 0x3C; // float + constexpr std::ptrdiff_t m_flAnticipationDistance = 0x40; // float + constexpr std::ptrdiff_t m_hAnticipationPosParam = 0x44; // CAnimParamHandle + constexpr std::ptrdiff_t m_hAnticipationHeadingParam = 0x46; // CAnimParamHandle + constexpr std::ptrdiff_t m_bUseAcceleration = 0x48; // bool +} + +namespace CPointConstraint { // CBaseConstraint +} + +namespace CPoseHandle { + constexpr std::ptrdiff_t m_nIndex = 0x0; // uint16_t + constexpr std::ptrdiff_t m_eType = 0x2; // PoseType_t +} + +namespace CProductQuantizer { + constexpr std::ptrdiff_t m_subQuantizers = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_nDimensions = 0x18; // int32_t +} + +namespace CQuaternionAnimParameter { // CConcreteAnimParameter + constexpr std::ptrdiff_t m_defaultValue = 0x60; // Quaternion + constexpr std::ptrdiff_t m_bInterpolate = 0x70; // bool +} + +namespace CRagdollAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_nPoseControl = 0x38; // AnimPoseControl + constexpr std::ptrdiff_t m_flFrequency = 0x3C; // float + constexpr std::ptrdiff_t m_flDampingRatio = 0x40; // float + constexpr std::ptrdiff_t m_flDecayDuration = 0x44; // float + constexpr std::ptrdiff_t m_flDecayBias = 0x48; // float + constexpr std::ptrdiff_t m_bDestroy = 0x4C; // bool +} + +namespace CRagdollComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_ragdollNodePaths = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_boneIndices = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_boneNames = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_weightLists = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_flSpringFrequencyMin = 0x90; // float + constexpr std::ptrdiff_t m_flSpringFrequencyMax = 0x94; // float + constexpr std::ptrdiff_t m_flMaxStretch = 0x98; // float +} + +namespace CRagdollUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_nWeightListIndex = 0x68; // int32_t + constexpr std::ptrdiff_t m_poseControlMethod = 0x6C; // RagdollPoseControl +} + +namespace CRenderBufferBinding { + constexpr std::ptrdiff_t m_hBuffer = 0x0; // uint64_t + constexpr std::ptrdiff_t m_nBindOffsetBytes = 0x10; // uint32_t +} + +namespace CRenderMesh { + constexpr std::ptrdiff_t m_sceneObjects = 0x10; // CUtlVectorFixedGrowable + constexpr std::ptrdiff_t m_constraints = 0xA0; // CUtlVector + constexpr std::ptrdiff_t m_skeleton = 0xB8; // CRenderSkeleton +} + +namespace CRenderSkeleton { + constexpr std::ptrdiff_t m_bones = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_boneParents = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_nBoneWeightCount = 0x48; // int32_t +} + +namespace CRootUpdateNode { // CUnaryUpdateNode +} + +namespace CSceneObjectData { + constexpr std::ptrdiff_t m_vMinBounds = 0x0; // Vector + constexpr std::ptrdiff_t m_vMaxBounds = 0xC; // Vector + constexpr std::ptrdiff_t m_drawCalls = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_drawBounds = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_meshlets = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_vTintColor = 0x60; // Vector4D +} + +namespace CSelectorUpdateNode { // CAnimUpdateNodeBase + constexpr std::ptrdiff_t m_children = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_tags = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_blendCurve = 0x8C; // CBlendCurve + constexpr std::ptrdiff_t m_flBlendTime = 0x94; // CAnimValue + constexpr std::ptrdiff_t m_hParameter = 0x9C; // CAnimParamHandle + constexpr std::ptrdiff_t m_eTagBehavior = 0xA0; // SelectorTagBehavior_t + constexpr std::ptrdiff_t m_bResetOnChange = 0xA4; // bool + constexpr std::ptrdiff_t m_bSyncCyclesOnChange = 0xA5; // bool +} + +namespace CSeqAutoLayer { + constexpr std::ptrdiff_t m_nLocalReference = 0x0; // int16_t + constexpr std::ptrdiff_t m_nLocalPose = 0x2; // int16_t + constexpr std::ptrdiff_t m_flags = 0x4; // CSeqAutoLayerFlag + constexpr std::ptrdiff_t m_start = 0xC; // float + constexpr std::ptrdiff_t m_peak = 0x10; // float + constexpr std::ptrdiff_t m_tail = 0x14; // float + constexpr std::ptrdiff_t m_end = 0x18; // float +} + +namespace CSeqAutoLayerFlag { + constexpr std::ptrdiff_t m_bPost = 0x0; // bool + constexpr std::ptrdiff_t m_bSpline = 0x1; // bool + constexpr std::ptrdiff_t m_bXFade = 0x2; // bool + constexpr std::ptrdiff_t m_bNoBlend = 0x3; // bool + constexpr std::ptrdiff_t m_bLocal = 0x4; // bool + constexpr std::ptrdiff_t m_bPose = 0x5; // bool + constexpr std::ptrdiff_t m_bFetchFrame = 0x6; // bool + constexpr std::ptrdiff_t m_bSubtract = 0x7; // bool +} + +namespace CSeqBoneMaskList { + constexpr std::ptrdiff_t m_sName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_nLocalBoneArray = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_flBoneWeightArray = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_flDefaultMorphCtrlWeight = 0x40; // float + constexpr std::ptrdiff_t m_morphCtrlWeightArray = 0x48; // CUtlVector> +} + +namespace CSeqCmdLayer { + constexpr std::ptrdiff_t m_cmd = 0x0; // int16_t + constexpr std::ptrdiff_t m_nLocalReference = 0x2; // int16_t + constexpr std::ptrdiff_t m_nLocalBonemask = 0x4; // int16_t + constexpr std::ptrdiff_t m_nDstResult = 0x6; // int16_t + constexpr std::ptrdiff_t m_nSrcResult = 0x8; // int16_t + constexpr std::ptrdiff_t m_bSpline = 0xA; // bool + constexpr std::ptrdiff_t m_flVar1 = 0xC; // float + constexpr std::ptrdiff_t m_flVar2 = 0x10; // float + constexpr std::ptrdiff_t m_nLineNumber = 0x14; // int16_t +} + +namespace CSeqCmdSeqDesc { + constexpr std::ptrdiff_t m_sName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_flags = 0x10; // CSeqSeqDescFlag + constexpr std::ptrdiff_t m_transition = 0x1C; // CSeqTransition + constexpr std::ptrdiff_t m_nFrameRangeSequence = 0x24; // int16_t + constexpr std::ptrdiff_t m_nFrameCount = 0x26; // int16_t + constexpr std::ptrdiff_t m_flFPS = 0x28; // float + constexpr std::ptrdiff_t m_nSubCycles = 0x2C; // int16_t + constexpr std::ptrdiff_t m_numLocalResults = 0x2E; // int16_t + constexpr std::ptrdiff_t m_cmdLayerArray = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_eventArray = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_activityArray = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_poseSettingArray = 0x78; // CUtlVector +} + +namespace CSeqIKLock { + constexpr std::ptrdiff_t m_flPosWeight = 0x0; // float + constexpr std::ptrdiff_t m_flAngleWeight = 0x4; // float + constexpr std::ptrdiff_t m_nLocalBone = 0x8; // int16_t + constexpr std::ptrdiff_t m_bBonesOrientedAlongPositiveX = 0xA; // bool +} + +namespace CSeqMultiFetch { + constexpr std::ptrdiff_t m_flags = 0x0; // CSeqMultiFetchFlag + constexpr std::ptrdiff_t m_localReferenceArray = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_nGroupSize = 0x20; // int32_t[2] + constexpr std::ptrdiff_t m_nLocalPose = 0x28; // int32_t[2] + constexpr std::ptrdiff_t m_poseKeyArray0 = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_poseKeyArray1 = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_nLocalCyclePoseParameter = 0x60; // int32_t + constexpr std::ptrdiff_t m_bCalculatePoseParameters = 0x64; // bool +} + +namespace CSeqMultiFetchFlag { + constexpr std::ptrdiff_t m_bRealtime = 0x0; // bool + constexpr std::ptrdiff_t m_bCylepose = 0x1; // bool + constexpr std::ptrdiff_t m_b0D = 0x2; // bool + constexpr std::ptrdiff_t m_b1D = 0x3; // bool + constexpr std::ptrdiff_t m_b2D = 0x4; // bool + constexpr std::ptrdiff_t m_b2D_TRI = 0x5; // bool +} + +namespace CSeqPoseParamDesc { + constexpr std::ptrdiff_t m_sName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_flStart = 0x10; // float + constexpr std::ptrdiff_t m_flEnd = 0x14; // float + constexpr std::ptrdiff_t m_flLoop = 0x18; // float + constexpr std::ptrdiff_t m_bLooping = 0x1C; // bool +} + +namespace CSeqPoseSetting { + constexpr std::ptrdiff_t m_sPoseParameter = 0x0; // CBufferString + constexpr std::ptrdiff_t m_sAttachment = 0x10; // CBufferString + constexpr std::ptrdiff_t m_sReferenceSequence = 0x20; // CBufferString + constexpr std::ptrdiff_t m_flValue = 0x30; // float + constexpr std::ptrdiff_t m_bX = 0x34; // bool + constexpr std::ptrdiff_t m_bY = 0x35; // bool + constexpr std::ptrdiff_t m_bZ = 0x36; // bool + constexpr std::ptrdiff_t m_eType = 0x38; // int32_t +} + +namespace CSeqS1SeqDesc { + constexpr std::ptrdiff_t m_sName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_flags = 0x10; // CSeqSeqDescFlag + constexpr std::ptrdiff_t m_fetch = 0x20; // CSeqMultiFetch + constexpr std::ptrdiff_t m_nLocalWeightlist = 0x88; // int32_t + constexpr std::ptrdiff_t m_autoLayerArray = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_IKLockArray = 0xA8; // CUtlVector + constexpr std::ptrdiff_t m_transition = 0xC0; // CSeqTransition + constexpr std::ptrdiff_t m_SequenceKeys = 0xC8; // KeyValues3 + constexpr std::ptrdiff_t m_LegacyKeyValueText = 0xD8; // CBufferString + constexpr std::ptrdiff_t m_activityArray = 0xE8; // CUtlVector + constexpr std::ptrdiff_t m_footMotion = 0x100; // CUtlVector +} + +namespace CSeqScaleSet { + constexpr std::ptrdiff_t m_sName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_bRootOffset = 0x10; // bool + constexpr std::ptrdiff_t m_vRootOffset = 0x14; // Vector + constexpr std::ptrdiff_t m_nLocalBoneArray = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_flBoneScaleArray = 0x38; // CUtlVector +} + +namespace CSeqSeqDescFlag { + constexpr std::ptrdiff_t m_bLooping = 0x0; // bool + constexpr std::ptrdiff_t m_bSnap = 0x1; // bool + constexpr std::ptrdiff_t m_bAutoplay = 0x2; // bool + constexpr std::ptrdiff_t m_bPost = 0x3; // bool + constexpr std::ptrdiff_t m_bHidden = 0x4; // bool + constexpr std::ptrdiff_t m_bMulti = 0x5; // bool + constexpr std::ptrdiff_t m_bLegacyDelta = 0x6; // bool + constexpr std::ptrdiff_t m_bLegacyWorldspace = 0x7; // bool + constexpr std::ptrdiff_t m_bLegacyCyclepose = 0x8; // bool + constexpr std::ptrdiff_t m_bLegacyRealtime = 0x9; // bool + constexpr std::ptrdiff_t m_bModelDoc = 0xA; // bool +} + +namespace CSeqSynthAnimDesc { + constexpr std::ptrdiff_t m_sName = 0x0; // CBufferString + constexpr std::ptrdiff_t m_flags = 0x10; // CSeqSeqDescFlag + constexpr std::ptrdiff_t m_transition = 0x1C; // CSeqTransition + constexpr std::ptrdiff_t m_nLocalBaseReference = 0x24; // int16_t + constexpr std::ptrdiff_t m_nLocalBoneMask = 0x26; // int16_t + constexpr std::ptrdiff_t m_activityArray = 0x28; // CUtlVector +} + +namespace CSeqTransition { + constexpr std::ptrdiff_t m_flFadeInTime = 0x0; // float + constexpr std::ptrdiff_t m_flFadeOutTime = 0x4; // float +} + +namespace CSequenceFinishedAnimTag { // CAnimTagBase + constexpr std::ptrdiff_t m_sequenceName = 0x38; // CUtlString +} + +namespace CSequenceGroupData { + constexpr std::ptrdiff_t m_sName = 0x10; // CBufferString + constexpr std::ptrdiff_t m_nFlags = 0x20; // uint32_t + constexpr std::ptrdiff_t m_localSequenceNameArray = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_localS1SeqDescArray = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_localMultiSeqDescArray = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_localSynthAnimDescArray = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_localCmdSeqDescArray = 0x88; // CUtlVector + constexpr std::ptrdiff_t m_localBoneMaskArray = 0xA0; // CUtlVector + constexpr std::ptrdiff_t m_localScaleSetArray = 0xB8; // CUtlVector + constexpr std::ptrdiff_t m_localBoneNameArray = 0xD0; // CUtlVector + constexpr std::ptrdiff_t m_localNodeName = 0xE8; // CBufferString + constexpr std::ptrdiff_t m_localPoseParamArray = 0xF8; // CUtlVector + constexpr std::ptrdiff_t m_keyValues = 0x110; // KeyValues3 + constexpr std::ptrdiff_t m_localIKAutoplayLockArray = 0x120; // CUtlVector +} + +namespace CSequenceUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_paramSpans = 0x60; // CParamSpanUpdater + constexpr std::ptrdiff_t m_tags = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_hSequence = 0x94; // HSequence + constexpr std::ptrdiff_t m_playbackSpeed = 0x98; // float + constexpr std::ptrdiff_t m_duration = 0x9C; // float + constexpr std::ptrdiff_t m_bLoop = 0xA0; // bool +} + +namespace CSetFacingUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_facingMode = 0x68; // FacingMode + constexpr std::ptrdiff_t m_bResetChild = 0x6C; // bool +} + +namespace CSetParameterActionUpdater { // CAnimActionUpdater + constexpr std::ptrdiff_t m_hParam = 0x18; // CAnimParamHandle + constexpr std::ptrdiff_t m_value = 0x1A; // CAnimVariant +} + +namespace CSingleFrameUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_actions = 0x58; // CUtlVector> + constexpr std::ptrdiff_t m_hPoseCacheHandle = 0x70; // CPoseHandle + constexpr std::ptrdiff_t m_hSequence = 0x74; // HSequence + constexpr std::ptrdiff_t m_flCycle = 0x78; // float +} + +namespace CSkeletalInputUpdateNode { // CLeafUpdateNode + constexpr std::ptrdiff_t m_fixedOpData = 0x58; // SkeletalInputOpFixedSettings_t +} + +namespace CSlopeComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_flTraceDistance = 0x34; // float + constexpr std::ptrdiff_t m_hSlopeAngle = 0x38; // CAnimParamHandle + constexpr std::ptrdiff_t m_hSlopeAngleFront = 0x3A; // CAnimParamHandle + constexpr std::ptrdiff_t m_hSlopeAngleSide = 0x3C; // CAnimParamHandle + constexpr std::ptrdiff_t m_hSlopeHeading = 0x3E; // CAnimParamHandle + constexpr std::ptrdiff_t m_hSlopeNormal = 0x40; // CAnimParamHandle + constexpr std::ptrdiff_t m_hSlopeNormal_WorldSpace = 0x42; // CAnimParamHandle +} + +namespace CSlowDownOnSlopesUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_flSlowDownStrength = 0x68; // float +} + +namespace CSolveIKChainUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_targetHandles = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_opFixedData = 0x80; // SolveIKChainPoseOpFixedSettings_t +} + +namespace CSolveIKTargetHandle_t { + constexpr std::ptrdiff_t m_positionHandle = 0x0; // CAnimParamHandle + constexpr std::ptrdiff_t m_orientationHandle = 0x2; // CAnimParamHandle +} + +namespace CSpeedScaleUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_paramIndex = 0x68; // CAnimParamHandle +} + +namespace CStanceOverrideUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_footStanceInfo = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_pStanceSourceNode = 0x80; // CAnimUpdateNodeRef + constexpr std::ptrdiff_t m_hParameter = 0x90; // CAnimParamHandle + constexpr std::ptrdiff_t m_eMode = 0x94; // StanceOverrideMode +} + +namespace CStanceScaleUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_hParam = 0x68; // CAnimParamHandle +} + +namespace CStateActionUpdater { + constexpr std::ptrdiff_t m_pAction = 0x0; // CSmartPtr + constexpr std::ptrdiff_t m_eBehavior = 0x8; // StateActionBehavior +} + +namespace CStateMachineComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_stateMachine = 0x30; // CAnimStateMachineUpdater +} + +namespace CStateMachineUpdateNode { // CAnimUpdateNodeBase + constexpr std::ptrdiff_t m_stateMachine = 0x68; // CAnimStateMachineUpdater + constexpr std::ptrdiff_t m_stateData = 0xC0; // CUtlVector + constexpr std::ptrdiff_t m_transitionData = 0xD8; // CUtlVector + constexpr std::ptrdiff_t m_bBlockWaningTags = 0xF4; // bool + constexpr std::ptrdiff_t m_bLockStateWhenWaning = 0xF5; // bool +} + +namespace CStateNodeStateData { + constexpr std::ptrdiff_t m_pChild = 0x0; // CAnimUpdateNodeRef + constexpr std::ptrdiff_t m_bExclusiveRootMotion = 0x0; // bitfield:1 +} + +namespace CStateNodeTransitionData { + constexpr std::ptrdiff_t m_curve = 0x0; // CBlendCurve + constexpr std::ptrdiff_t m_blendDuration = 0x8; // CAnimValue + constexpr std::ptrdiff_t m_resetCycleValue = 0x10; // CAnimValue + constexpr std::ptrdiff_t m_bReset = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_resetCycleOption = 0x0; // bitfield:3 +} + +namespace CStateUpdateData { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_hScript = 0x8; // AnimScriptHandle + constexpr std::ptrdiff_t m_transitionIndices = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_actions = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_stateID = 0x40; // AnimStateID + constexpr std::ptrdiff_t m_bIsStartState = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bIsEndState = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bIsPassthrough = 0x0; // bitfield:1 +} + +namespace CStaticPoseCache { + constexpr std::ptrdiff_t m_poses = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_nBoneCount = 0x28; // int32_t + constexpr std::ptrdiff_t m_nMorphCount = 0x2C; // int32_t +} + +namespace CStaticPoseCacheBuilder { // CStaticPoseCache +} + +namespace CStepsRemainingMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_footIndices = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_flMinStepsRemaining = 0x68; // float +} + +namespace CStopAtGoalUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_flOuterRadius = 0x6C; // float + constexpr std::ptrdiff_t m_flInnerRadius = 0x70; // float + constexpr std::ptrdiff_t m_flMaxScale = 0x74; // float + constexpr std::ptrdiff_t m_flMinScale = 0x78; // float + constexpr std::ptrdiff_t m_damping = 0x80; // CAnimInputDamping +} + +namespace CStringAnimTag { // CAnimTagBase +} + +namespace CSubtractUpdateNode { // CBinaryUpdateNode + constexpr std::ptrdiff_t m_footMotionTiming = 0x8C; // BinaryNodeChildOption + constexpr std::ptrdiff_t m_bApplyToFootMotion = 0x90; // bool + constexpr std::ptrdiff_t m_bApplyChannelsSeparately = 0x91; // bool + constexpr std::ptrdiff_t m_bUseModelSpace = 0x92; // bool +} + +namespace CTaskStatusAnimTag { // CAnimTagBase +} + +namespace CTiltTwistConstraint { // CBaseConstraint + constexpr std::ptrdiff_t m_nTargetAxis = 0x70; // int32_t + constexpr std::ptrdiff_t m_nSlaveAxis = 0x74; // int32_t +} + +namespace CTimeRemainingMetricEvaluator { // CMotionMetricEvaluator + constexpr std::ptrdiff_t m_bMatchByTimeRemaining = 0x50; // bool + constexpr std::ptrdiff_t m_flMaxTimeRemaining = 0x54; // float + constexpr std::ptrdiff_t m_bFilterByTimeRemaining = 0x58; // bool + constexpr std::ptrdiff_t m_flMinTimeRemaining = 0x5C; // float +} + +namespace CToggleComponentActionUpdater { // CAnimActionUpdater + constexpr std::ptrdiff_t m_componentID = 0x18; // AnimComponentID + constexpr std::ptrdiff_t m_bSetEnabled = 0x1C; // bool +} + +namespace CTransitionUpdateData { + constexpr std::ptrdiff_t m_srcStateIndex = 0x0; // uint8_t + constexpr std::ptrdiff_t m_destStateIndex = 0x1; // uint8_t + constexpr std::ptrdiff_t m_bDisabled = 0x0; // bitfield:1 +} + +namespace CTurnHelperUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_facingTarget = 0x6C; // AnimValueSource + constexpr std::ptrdiff_t m_turnStartTimeOffset = 0x70; // float + constexpr std::ptrdiff_t m_turnDuration = 0x74; // float + constexpr std::ptrdiff_t m_bMatchChildDuration = 0x78; // bool + constexpr std::ptrdiff_t m_manualTurnOffset = 0x7C; // float + constexpr std::ptrdiff_t m_bUseManualTurnOffset = 0x80; // bool +} + +namespace CTwistConstraint { // CBaseConstraint + constexpr std::ptrdiff_t m_bInverse = 0x70; // bool + constexpr std::ptrdiff_t m_qParentBindRotation = 0x80; // Quaternion + constexpr std::ptrdiff_t m_qChildBindRotation = 0x90; // Quaternion +} + +namespace CTwoBoneIKUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_opFixedData = 0x70; // TwoBoneIKSettings_t +} + +namespace CUnaryUpdateNode { // CAnimUpdateNodeBase + constexpr std::ptrdiff_t m_pChildNode = 0x58; // CAnimUpdateNodeRef +} + +namespace CVPhysXSurfacePropertiesList { + constexpr std::ptrdiff_t m_surfacePropertiesList = 0x0; // CUtlVector +} + +namespace CVRInputComponentUpdater { // CAnimComponentUpdater + constexpr std::ptrdiff_t m_FingerCurl_Thumb = 0x34; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerCurl_Index = 0x36; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerCurl_Middle = 0x38; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerCurl_Ring = 0x3A; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerCurl_Pinky = 0x3C; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerSplay_Thumb_Index = 0x3E; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerSplay_Index_Middle = 0x40; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerSplay_Middle_Ring = 0x42; // CAnimParamHandle + constexpr std::ptrdiff_t m_FingerSplay_Ring_Pinky = 0x44; // CAnimParamHandle +} + +namespace CVectorAnimParameter { // CConcreteAnimParameter + constexpr std::ptrdiff_t m_defaultValue = 0x60; // Vector + constexpr std::ptrdiff_t m_bInterpolate = 0x6C; // bool +} + +namespace CVectorQuantizer { + constexpr std::ptrdiff_t m_centroidVectors = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_nCentroids = 0x18; // int32_t + constexpr std::ptrdiff_t m_nDimensions = 0x1C; // int32_t +} + +namespace CVirtualAnimParameter { // CAnimParameterBase + constexpr std::ptrdiff_t m_expressionString = 0x50; // CUtlString + constexpr std::ptrdiff_t m_eParamType = 0x58; // AnimParamType_t +} + +namespace CVrSkeletalInputSettings { + constexpr std::ptrdiff_t m_wristBones = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_fingers = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_name = 0x30; // CUtlString + constexpr std::ptrdiff_t m_outerKnuckle1 = 0x38; // CUtlString + constexpr std::ptrdiff_t m_outerKnuckle2 = 0x40; // CUtlString + constexpr std::ptrdiff_t m_eHand = 0x48; // AnimVRHand_t +} + +namespace CWayPointHelperUpdateNode { // CUnaryUpdateNode + constexpr std::ptrdiff_t m_flStartCycle = 0x6C; // float + constexpr std::ptrdiff_t m_flEndCycle = 0x70; // float + constexpr std::ptrdiff_t m_bOnlyGoals = 0x74; // bool + constexpr std::ptrdiff_t m_bPreventOvershoot = 0x75; // bool + constexpr std::ptrdiff_t m_bPreventUndershoot = 0x76; // bool +} + +namespace CWristBone { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_vForwardLS = 0x8; // Vector + constexpr std::ptrdiff_t m_vUpLS = 0x14; // Vector + constexpr std::ptrdiff_t m_vOffset = 0x20; // Vector +} + +namespace CZeroPoseUpdateNode { // CLeafUpdateNode +} + +namespace ChainToSolveData_t { + constexpr std::ptrdiff_t m_nChainIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_SolverSettings = 0x4; // IKSolverSettings_t + constexpr std::ptrdiff_t m_TargetSettings = 0x10; // IKTargetSettings_t + constexpr std::ptrdiff_t m_DebugSetting = 0x38; // SolveIKChainAnimNodeDebugSetting + constexpr std::ptrdiff_t m_flDebugNormalizedValue = 0x3C; // float + constexpr std::ptrdiff_t m_vDebugOffset = 0x40; // VectorAligned +} + +namespace ConfigIndex { + constexpr std::ptrdiff_t m_nGroup = 0x0; // uint16_t + constexpr std::ptrdiff_t m_nConfig = 0x2; // uint16_t +} + +namespace FingerBone_t { + constexpr std::ptrdiff_t m_boneIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_hingeAxis = 0x4; // Vector + constexpr std::ptrdiff_t m_vCapsulePos1 = 0x10; // Vector + constexpr std::ptrdiff_t m_vCapsulePos2 = 0x1C; // Vector + constexpr std::ptrdiff_t m_flMinAngle = 0x28; // float + constexpr std::ptrdiff_t m_flMaxAngle = 0x2C; // float + constexpr std::ptrdiff_t m_flRadius = 0x30; // float +} + +namespace FingerChain_t { + constexpr std::ptrdiff_t m_targets = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_bones = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_vTipOffset = 0x30; // Vector + constexpr std::ptrdiff_t m_vSplayHingeAxis = 0x3C; // Vector + constexpr std::ptrdiff_t m_tipParentBoneIndex = 0x48; // int32_t + constexpr std::ptrdiff_t m_metacarpalBoneIndex = 0x4C; // int32_t + constexpr std::ptrdiff_t m_flSplayMinAngle = 0x50; // float + constexpr std::ptrdiff_t m_flSplayMaxAngle = 0x54; // float + constexpr std::ptrdiff_t m_flFingerScaleRatio = 0x58; // float +} + +namespace FingerSource_t { + constexpr std::ptrdiff_t m_nFingerIndex = 0x0; // AnimVRFinger_t + constexpr std::ptrdiff_t m_flFingerWeight = 0x4; // float +} + +namespace FollowAttachmentSettings_t { + constexpr std::ptrdiff_t m_attachment = 0x0; // CAnimAttachment + constexpr std::ptrdiff_t m_boneIndex = 0x80; // int32_t + constexpr std::ptrdiff_t m_bMatchTranslation = 0x84; // bool + constexpr std::ptrdiff_t m_bMatchRotation = 0x85; // bool +} + +namespace FootFixedData_t { + constexpr std::ptrdiff_t m_vToeOffset = 0x0; // VectorAligned + constexpr std::ptrdiff_t m_vHeelOffset = 0x10; // VectorAligned + constexpr std::ptrdiff_t m_nTargetBoneIndex = 0x20; // int32_t + constexpr std::ptrdiff_t m_nAnkleBoneIndex = 0x24; // int32_t + constexpr std::ptrdiff_t m_nIKAnchorBoneIndex = 0x28; // int32_t + constexpr std::ptrdiff_t m_ikChainIndex = 0x2C; // int32_t + constexpr std::ptrdiff_t m_flMaxIKLength = 0x30; // float + constexpr std::ptrdiff_t m_nFootIndex = 0x34; // int32_t + constexpr std::ptrdiff_t m_nTagIndex = 0x38; // int32_t + constexpr std::ptrdiff_t m_flMaxRotationLeft = 0x3C; // float + constexpr std::ptrdiff_t m_flMaxRotationRight = 0x40; // float +} + +namespace FootFixedSettings { + constexpr std::ptrdiff_t m_traceSettings = 0x0; // TraceSettings_t + constexpr std::ptrdiff_t m_vFootBaseBindPosePositionMS = 0x10; // VectorAligned + constexpr std::ptrdiff_t m_flFootBaseLength = 0x20; // float + constexpr std::ptrdiff_t m_flMaxRotationLeft = 0x24; // float + constexpr std::ptrdiff_t m_flMaxRotationRight = 0x28; // float + constexpr std::ptrdiff_t m_footstepLandedTagIndex = 0x2C; // int32_t + constexpr std::ptrdiff_t m_bEnableTracing = 0x30; // bool + constexpr std::ptrdiff_t m_flTraceAngleBlend = 0x34; // float + constexpr std::ptrdiff_t m_nDisableTagIndex = 0x38; // int32_t + constexpr std::ptrdiff_t m_nFootIndex = 0x3C; // int32_t +} + +namespace FootLockPoseOpFixedSettings { + constexpr std::ptrdiff_t m_footInfo = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_hipDampingSettings = 0x18; // CAnimInputDamping + constexpr std::ptrdiff_t m_nHipBoneIndex = 0x28; // int32_t + constexpr std::ptrdiff_t m_ikSolverType = 0x2C; // IKSolverType + constexpr std::ptrdiff_t m_bApplyTilt = 0x30; // bool + constexpr std::ptrdiff_t m_bApplyHipDrop = 0x31; // bool + constexpr std::ptrdiff_t m_bAlwaysUseFallbackHinge = 0x32; // bool + constexpr std::ptrdiff_t m_bApplyFootRotationLimits = 0x33; // bool + constexpr std::ptrdiff_t m_bApplyLegTwistLimits = 0x34; // bool + constexpr std::ptrdiff_t m_flMaxFootHeight = 0x38; // float + constexpr std::ptrdiff_t m_flExtensionScale = 0x3C; // float + constexpr std::ptrdiff_t m_flMaxLegTwist = 0x40; // float + constexpr std::ptrdiff_t m_bEnableLockBreaking = 0x44; // bool + constexpr std::ptrdiff_t m_flLockBreakTolerance = 0x48; // float + constexpr std::ptrdiff_t m_flLockBlendTime = 0x4C; // float + constexpr std::ptrdiff_t m_bEnableStretching = 0x50; // bool + constexpr std::ptrdiff_t m_flMaxStretchAmount = 0x54; // float + constexpr std::ptrdiff_t m_flStretchExtensionScale = 0x58; // float +} + +namespace FootPinningPoseOpFixedData_t { + constexpr std::ptrdiff_t m_footInfo = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_flBlendTime = 0x18; // float + constexpr std::ptrdiff_t m_flLockBreakDistance = 0x1C; // float + constexpr std::ptrdiff_t m_flMaxLegTwist = 0x20; // float + constexpr std::ptrdiff_t m_nHipBoneIndex = 0x24; // int32_t + constexpr std::ptrdiff_t m_bApplyLegTwistLimits = 0x28; // bool + constexpr std::ptrdiff_t m_bApplyFootRotationLimits = 0x29; // bool +} + +namespace FootStepTrigger { + constexpr std::ptrdiff_t m_tags = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_nFootIndex = 0x18; // int32_t + constexpr std::ptrdiff_t m_triggerPhase = 0x1C; // StepPhase +} + +namespace HSequence { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace HitReactFixedSettings_t { + constexpr std::ptrdiff_t m_nWeightListIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_nEffectedBoneCount = 0x4; // int32_t + constexpr std::ptrdiff_t m_flMaxImpactForce = 0x8; // float + constexpr std::ptrdiff_t m_flMinImpactForce = 0xC; // float + constexpr std::ptrdiff_t m_flWhipImpactScale = 0x10; // float + constexpr std::ptrdiff_t m_flCounterRotationScale = 0x14; // float + constexpr std::ptrdiff_t m_flDistanceFadeScale = 0x18; // float + constexpr std::ptrdiff_t m_flPropagationScale = 0x1C; // float + constexpr std::ptrdiff_t m_flWhipDelay = 0x20; // float + constexpr std::ptrdiff_t m_flSpringStrength = 0x24; // float + constexpr std::ptrdiff_t m_flWhipSpringStrength = 0x28; // float + constexpr std::ptrdiff_t m_flMaxAngleRadians = 0x2C; // float + constexpr std::ptrdiff_t m_nHipBoneIndex = 0x30; // int32_t + constexpr std::ptrdiff_t m_flHipBoneTranslationScale = 0x34; // float + constexpr std::ptrdiff_t m_flHipDipSpringStrength = 0x38; // float + constexpr std::ptrdiff_t m_flHipDipImpactScale = 0x3C; // float + constexpr std::ptrdiff_t m_flHipDipDelay = 0x40; // float +} + +namespace IKBoneNameAndIndex_t { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlString +} + +namespace IKDemoCaptureSettings_t { + constexpr std::ptrdiff_t m_parentBoneName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_eMode = 0x8; // IKChannelMode + constexpr std::ptrdiff_t m_ikChainName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_oneBoneStart = 0x18; // CUtlString + constexpr std::ptrdiff_t m_oneBoneEnd = 0x20; // CUtlString +} + +namespace IKSolverSettings_t { + constexpr std::ptrdiff_t m_SolverType = 0x0; // IKSolverType + constexpr std::ptrdiff_t m_nNumIterations = 0x4; // int32_t +} + +namespace IKTargetSettings_t { + constexpr std::ptrdiff_t m_TargetSource = 0x0; // IKTargetSource + constexpr std::ptrdiff_t m_Bone = 0x8; // IKBoneNameAndIndex_t + constexpr std::ptrdiff_t m_AnimgraphParameterNamePosition = 0x18; // AnimParamID + constexpr std::ptrdiff_t m_AnimgraphParameterNameOrientation = 0x1C; // AnimParamID + constexpr std::ptrdiff_t m_TargetCoordSystem = 0x20; // IKTargetCoordinateSystem +} + +namespace JiggleBoneSettingsList_t { + constexpr std::ptrdiff_t m_boneSettings = 0x0; // CUtlVector +} + +namespace JiggleBoneSettings_t { + constexpr std::ptrdiff_t m_nBoneIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_flSpringStrength = 0x4; // float + constexpr std::ptrdiff_t m_flMaxTimeStep = 0x8; // float + constexpr std::ptrdiff_t m_flDamping = 0xC; // float + constexpr std::ptrdiff_t m_vBoundsMaxLS = 0x10; // Vector + constexpr std::ptrdiff_t m_vBoundsMinLS = 0x1C; // Vector + constexpr std::ptrdiff_t m_eSimSpace = 0x28; // JiggleBoneSimSpace +} + +namespace LookAtBone_t { + constexpr std::ptrdiff_t m_index = 0x0; // int32_t + constexpr std::ptrdiff_t m_weight = 0x4; // float +} + +namespace LookAtOpFixedSettings_t { + constexpr std::ptrdiff_t m_attachment = 0x0; // CAnimAttachment + constexpr std::ptrdiff_t m_damping = 0x80; // CAnimInputDamping + constexpr std::ptrdiff_t m_bones = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_flYawLimit = 0xA8; // float + constexpr std::ptrdiff_t m_flPitchLimit = 0xAC; // float + constexpr std::ptrdiff_t m_flHysteresisInnerAngle = 0xB0; // float + constexpr std::ptrdiff_t m_flHysteresisOuterAngle = 0xB4; // float + constexpr std::ptrdiff_t m_bRotateYawForward = 0xB8; // bool + constexpr std::ptrdiff_t m_bMaintainUpDirection = 0xB9; // bool + constexpr std::ptrdiff_t m_bTargetIsPosition = 0xBA; // bool + constexpr std::ptrdiff_t m_bUseHysteresis = 0xBB; // bool +} + +namespace MaterialGroup_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_materials = 0x8; // CUtlVector> +} + +namespace ModelBoneFlexDriverControl_t { + constexpr std::ptrdiff_t m_nBoneComponent = 0x0; // ModelBoneFlexComponent_t + constexpr std::ptrdiff_t m_flexController = 0x8; // CUtlString + constexpr std::ptrdiff_t m_flexControllerToken = 0x10; // uint32_t + constexpr std::ptrdiff_t m_flMin = 0x14; // float + constexpr std::ptrdiff_t m_flMax = 0x18; // float +} + +namespace ModelBoneFlexDriver_t { + constexpr std::ptrdiff_t m_boneName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_boneNameToken = 0x8; // uint32_t + constexpr std::ptrdiff_t m_controls = 0x10; // CUtlVector +} + +namespace ModelSkeletonData_t { + constexpr std::ptrdiff_t m_boneName = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_nParent = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_boneSphere = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_nFlag = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_bonePosParent = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_boneRotParent = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_boneScaleParent = 0x90; // CUtlVector +} + +namespace MoodAnimationLayer_t { + constexpr std::ptrdiff_t m_sName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_bActiveListening = 0x8; // bool + constexpr std::ptrdiff_t m_bActiveTalking = 0x9; // bool + constexpr std::ptrdiff_t m_layerAnimations = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_flIntensity = 0x28; // CRangeFloat + constexpr std::ptrdiff_t m_flDurationScale = 0x30; // CRangeFloat + constexpr std::ptrdiff_t m_bScaleWithInts = 0x38; // bool + constexpr std::ptrdiff_t m_flNextStart = 0x3C; // CRangeFloat + constexpr std::ptrdiff_t m_flStartOffset = 0x44; // CRangeFloat + constexpr std::ptrdiff_t m_flEndOffset = 0x4C; // CRangeFloat + constexpr std::ptrdiff_t m_flFadeIn = 0x54; // float + constexpr std::ptrdiff_t m_flFadeOut = 0x58; // float +} + +namespace MoodAnimation_t { + constexpr std::ptrdiff_t m_sName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_flWeight = 0x8; // float +} + +namespace MotionBlendItem { + constexpr std::ptrdiff_t m_pChild = 0x0; // CSmartPtr + constexpr std::ptrdiff_t m_flKeyValue = 0x8; // float +} + +namespace MotionDBIndex { + constexpr std::ptrdiff_t m_nIndex = 0x0; // uint32_t +} + +namespace MotionIndex { + constexpr std::ptrdiff_t m_nGroup = 0x0; // uint16_t + constexpr std::ptrdiff_t m_nMotion = 0x2; // uint16_t +} + +namespace ParamSpanSample_t { + constexpr std::ptrdiff_t m_value = 0x0; // CAnimVariant + constexpr std::ptrdiff_t m_flCycle = 0x14; // float +} + +namespace ParamSpan_t { + constexpr std::ptrdiff_t m_samples = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_hParam = 0x18; // CAnimParamHandle + constexpr std::ptrdiff_t m_eParamType = 0x1A; // AnimParamType_t + constexpr std::ptrdiff_t m_flStartCycle = 0x1C; // float + constexpr std::ptrdiff_t m_flEndCycle = 0x20; // float +} + +namespace PermModelDataAnimatedMaterialAttribute_t { + constexpr std::ptrdiff_t m_AttributeName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nNumChannels = 0x8; // int32_t +} + +namespace PermModelData_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_modelInfo = 0x8; // PermModelInfo_t + constexpr std::ptrdiff_t m_ExtParts = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_refMeshes = 0x78; // CUtlVector> + constexpr std::ptrdiff_t m_refMeshGroupMasks = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_refPhysGroupMasks = 0xA8; // CUtlVector + constexpr std::ptrdiff_t m_refLODGroupMasks = 0xC0; // CUtlVector + constexpr std::ptrdiff_t m_lodGroupSwitchDistances = 0xD8; // CUtlVector + constexpr std::ptrdiff_t m_refPhysicsData = 0xF0; // CUtlVector> + constexpr std::ptrdiff_t m_refPhysicsHitboxData = 0x108; // CUtlVector> + constexpr std::ptrdiff_t m_refAnimGroups = 0x120; // CUtlVector> + constexpr std::ptrdiff_t m_refSequenceGroups = 0x138; // CUtlVector> + constexpr std::ptrdiff_t m_meshGroups = 0x150; // CUtlVector + constexpr std::ptrdiff_t m_materialGroups = 0x168; // CUtlVector + constexpr std::ptrdiff_t m_nDefaultMeshGroupMask = 0x180; // uint64_t + constexpr std::ptrdiff_t m_modelSkeleton = 0x188; // ModelSkeletonData_t + constexpr std::ptrdiff_t m_remappingTable = 0x230; // CUtlVector + constexpr std::ptrdiff_t m_remappingTableStarts = 0x248; // CUtlVector + constexpr std::ptrdiff_t m_boneFlexDrivers = 0x260; // CUtlVector + constexpr std::ptrdiff_t m_pModelConfigList = 0x278; // CModelConfigList* + constexpr std::ptrdiff_t m_BodyGroupsHiddenInTools = 0x280; // CUtlVector + constexpr std::ptrdiff_t m_refAnimIncludeModels = 0x298; // CUtlVector> + constexpr std::ptrdiff_t m_AnimatedMaterialAttributes = 0x2B0; // CUtlVector +} + +namespace PermModelExtPart_t { + constexpr std::ptrdiff_t m_Transform = 0x0; // CTransform + constexpr std::ptrdiff_t m_Name = 0x20; // CUtlString + constexpr std::ptrdiff_t m_nParent = 0x28; // int32_t + constexpr std::ptrdiff_t m_refModel = 0x30; // CStrongHandle +} + +namespace PermModelInfo_t { + constexpr std::ptrdiff_t m_nFlags = 0x0; // uint32_t + constexpr std::ptrdiff_t m_vHullMin = 0x4; // Vector + constexpr std::ptrdiff_t m_vHullMax = 0x10; // Vector + constexpr std::ptrdiff_t m_vViewMin = 0x1C; // Vector + constexpr std::ptrdiff_t m_vViewMax = 0x28; // Vector + constexpr std::ptrdiff_t m_flMass = 0x34; // float + constexpr std::ptrdiff_t m_vEyePosition = 0x38; // Vector + constexpr std::ptrdiff_t m_flMaxEyeDeflection = 0x44; // float + constexpr std::ptrdiff_t m_sSurfaceProperty = 0x48; // CUtlString + constexpr std::ptrdiff_t m_keyValueText = 0x50; // CUtlString +} + +namespace PhysSoftbodyDesc_t { + constexpr std::ptrdiff_t m_ParticleBoneHash = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_Particles = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_Springs = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_Capsules = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_InitPose = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_ParticleBoneName = 0x78; // CUtlVector +} + +namespace RenderSkeletonBone_t { + constexpr std::ptrdiff_t m_boneName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_parentName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_invBindPose = 0x10; // matrix3x4_t + constexpr std::ptrdiff_t m_bbox = 0x40; // SkeletonBoneBounds_t + constexpr std::ptrdiff_t m_flSphereRadius = 0x58; // float +} + +namespace SampleCode { + constexpr std::ptrdiff_t m_subCode = 0x0; // uint8_t[8] +} + +namespace ScriptInfo_t { + constexpr std::ptrdiff_t m_code = 0x0; // CUtlString + constexpr std::ptrdiff_t m_paramsModified = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_proxyReadParams = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_proxyWriteParams = 0x38; // CUtlVector + constexpr std::ptrdiff_t m_eScriptType = 0x50; // AnimScriptType +} + +namespace SkeletalInputOpFixedSettings_t { + constexpr std::ptrdiff_t m_wristBones = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_fingers = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_outerKnuckle1 = 0x30; // int32_t + constexpr std::ptrdiff_t m_outerKnuckle2 = 0x34; // int32_t + constexpr std::ptrdiff_t m_eHand = 0x38; // AnimVRHand_t + constexpr std::ptrdiff_t m_eMotionRange = 0x3C; // AnimVRHandMotionRange_t + constexpr std::ptrdiff_t m_eTransformSource = 0x40; // AnimVrBoneTransformSource_t + constexpr std::ptrdiff_t m_bEnableIK = 0x44; // bool + constexpr std::ptrdiff_t m_bEnableCollision = 0x45; // bool +} + +namespace SkeletonBoneBounds_t { + constexpr std::ptrdiff_t m_vecCenter = 0x0; // Vector + constexpr std::ptrdiff_t m_vecSize = 0xC; // Vector +} + +namespace SolveIKChainPoseOpFixedSettings_t { + constexpr std::ptrdiff_t m_ChainsToSolveData = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_bMatchTargetOrientation = 0x18; // bool +} + +namespace StanceInfo_t { + constexpr std::ptrdiff_t m_vPosition = 0x0; // Vector + constexpr std::ptrdiff_t m_flDirection = 0xC; // float +} + +namespace TagSpan_t { + constexpr std::ptrdiff_t m_tagIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_startCycle = 0x4; // float + constexpr std::ptrdiff_t m_endCycle = 0x8; // float +} + +namespace TraceSettings_t { + constexpr std::ptrdiff_t m_flTraceHeight = 0x0; // float + constexpr std::ptrdiff_t m_flTraceRadius = 0x4; // float +} + +namespace TwoBoneIKSettings_t { + constexpr std::ptrdiff_t m_endEffectorType = 0x0; // IkEndEffectorType + constexpr std::ptrdiff_t m_endEffectorAttachment = 0x10; // CAnimAttachment + constexpr std::ptrdiff_t m_targetType = 0x90; // IkTargetType + constexpr std::ptrdiff_t m_targetAttachment = 0xA0; // CAnimAttachment + constexpr std::ptrdiff_t m_targetBoneIndex = 0x120; // int32_t + constexpr std::ptrdiff_t m_hPositionParam = 0x124; // CAnimParamHandle + constexpr std::ptrdiff_t m_hRotationParam = 0x126; // CAnimParamHandle + constexpr std::ptrdiff_t m_bAlwaysUseFallbackHinge = 0x128; // bool + constexpr std::ptrdiff_t m_vLsFallbackHingeAxis = 0x130; // VectorAligned + constexpr std::ptrdiff_t m_nFixedBoneIndex = 0x140; // int32_t + constexpr std::ptrdiff_t m_nMiddleBoneIndex = 0x144; // int32_t + constexpr std::ptrdiff_t m_nEndBoneIndex = 0x148; // int32_t + constexpr std::ptrdiff_t m_bMatchTargetOrientation = 0x14C; // bool + constexpr std::ptrdiff_t m_bConstrainTwist = 0x14D; // bool + constexpr std::ptrdiff_t m_flMaxTwist = 0x150; // float +} + +namespace VPhysXAggregateData_t { + constexpr std::ptrdiff_t m_nFlags = 0x0; // uint16_t + constexpr std::ptrdiff_t m_nRefCounter = 0x2; // uint16_t + constexpr std::ptrdiff_t m_bonesHash = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_boneNames = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_indexNames = 0x38; // CUtlVector + constexpr std::ptrdiff_t m_indexHash = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_bindPose = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_parts = 0x80; // CUtlVector + constexpr std::ptrdiff_t m_constraints2 = 0x98; // CUtlVector + constexpr std::ptrdiff_t m_joints = 0xB0; // CUtlVector + constexpr std::ptrdiff_t m_pFeModel = 0xC8; // PhysFeModelDesc_t* + constexpr std::ptrdiff_t m_boneParents = 0xD0; // CUtlVector + constexpr std::ptrdiff_t m_surfacePropertyHashes = 0xE8; // CUtlVector + constexpr std::ptrdiff_t m_collisionAttributes = 0x100; // CUtlVector + constexpr std::ptrdiff_t m_debugPartNames = 0x118; // CUtlVector + constexpr std::ptrdiff_t m_embeddedKeyvalues = 0x130; // CUtlString +} + +namespace VPhysXBodyPart_t { + constexpr std::ptrdiff_t m_nFlags = 0x0; // uint32_t + constexpr std::ptrdiff_t m_flMass = 0x4; // float + constexpr std::ptrdiff_t m_rnShape = 0x8; // VPhysics2ShapeDef_t + constexpr std::ptrdiff_t m_nCollisionAttributeIndex = 0x80; // uint16_t + constexpr std::ptrdiff_t m_nReserved = 0x82; // uint16_t + constexpr std::ptrdiff_t m_flInertiaScale = 0x84; // float + constexpr std::ptrdiff_t m_flLinearDamping = 0x88; // float + constexpr std::ptrdiff_t m_flAngularDamping = 0x8C; // float + constexpr std::ptrdiff_t m_bOverrideMassCenter = 0x90; // bool + constexpr std::ptrdiff_t m_vMassCenterOverride = 0x94; // Vector +} + +namespace VPhysXCollisionAttributes_t { + constexpr std::ptrdiff_t m_CollisionGroup = 0x0; // uint32_t + constexpr std::ptrdiff_t m_InteractAs = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_InteractWith = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_InteractExclude = 0x38; // CUtlVector + constexpr std::ptrdiff_t m_CollisionGroupString = 0x50; // CUtlString + constexpr std::ptrdiff_t m_InteractAsStrings = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_InteractWithStrings = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_InteractExcludeStrings = 0x88; // CUtlVector +} + +namespace VPhysXConstraint2_t { + constexpr std::ptrdiff_t m_nFlags = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nParent = 0x4; // uint16_t + constexpr std::ptrdiff_t m_nChild = 0x6; // uint16_t + constexpr std::ptrdiff_t m_params = 0x8; // VPhysXConstraintParams_t +} + +namespace VPhysXConstraintParams_t { + constexpr std::ptrdiff_t m_nType = 0x0; // int8_t + constexpr std::ptrdiff_t m_nTranslateMotion = 0x1; // int8_t + constexpr std::ptrdiff_t m_nRotateMotion = 0x2; // int8_t + constexpr std::ptrdiff_t m_nFlags = 0x3; // int8_t + constexpr std::ptrdiff_t m_anchor = 0x4; // Vector[2] + constexpr std::ptrdiff_t m_axes = 0x1C; // QuaternionStorage[2] + constexpr std::ptrdiff_t m_maxForce = 0x3C; // float + constexpr std::ptrdiff_t m_maxTorque = 0x40; // float + constexpr std::ptrdiff_t m_linearLimitValue = 0x44; // float + constexpr std::ptrdiff_t m_linearLimitRestitution = 0x48; // float + constexpr std::ptrdiff_t m_linearLimitSpring = 0x4C; // float + constexpr std::ptrdiff_t m_linearLimitDamping = 0x50; // float + constexpr std::ptrdiff_t m_twistLowLimitValue = 0x54; // float + constexpr std::ptrdiff_t m_twistLowLimitRestitution = 0x58; // float + constexpr std::ptrdiff_t m_twistLowLimitSpring = 0x5C; // float + constexpr std::ptrdiff_t m_twistLowLimitDamping = 0x60; // float + constexpr std::ptrdiff_t m_twistHighLimitValue = 0x64; // float + constexpr std::ptrdiff_t m_twistHighLimitRestitution = 0x68; // float + constexpr std::ptrdiff_t m_twistHighLimitSpring = 0x6C; // float + constexpr std::ptrdiff_t m_twistHighLimitDamping = 0x70; // float + constexpr std::ptrdiff_t m_swing1LimitValue = 0x74; // float + constexpr std::ptrdiff_t m_swing1LimitRestitution = 0x78; // float + constexpr std::ptrdiff_t m_swing1LimitSpring = 0x7C; // float + constexpr std::ptrdiff_t m_swing1LimitDamping = 0x80; // float + constexpr std::ptrdiff_t m_swing2LimitValue = 0x84; // float + constexpr std::ptrdiff_t m_swing2LimitRestitution = 0x88; // float + constexpr std::ptrdiff_t m_swing2LimitSpring = 0x8C; // float + constexpr std::ptrdiff_t m_swing2LimitDamping = 0x90; // float + constexpr std::ptrdiff_t m_goalPosition = 0x94; // Vector + constexpr std::ptrdiff_t m_goalOrientation = 0xA0; // QuaternionStorage + constexpr std::ptrdiff_t m_goalAngularVelocity = 0xB0; // Vector + constexpr std::ptrdiff_t m_driveSpringX = 0xBC; // float + constexpr std::ptrdiff_t m_driveSpringY = 0xC0; // float + constexpr std::ptrdiff_t m_driveSpringZ = 0xC4; // float + constexpr std::ptrdiff_t m_driveDampingX = 0xC8; // float + constexpr std::ptrdiff_t m_driveDampingY = 0xCC; // float + constexpr std::ptrdiff_t m_driveDampingZ = 0xD0; // float + constexpr std::ptrdiff_t m_driveSpringTwist = 0xD4; // float + constexpr std::ptrdiff_t m_driveSpringSwing = 0xD8; // float + constexpr std::ptrdiff_t m_driveSpringSlerp = 0xDC; // float + constexpr std::ptrdiff_t m_driveDampingTwist = 0xE0; // float + constexpr std::ptrdiff_t m_driveDampingSwing = 0xE4; // float + constexpr std::ptrdiff_t m_driveDampingSlerp = 0xE8; // float + constexpr std::ptrdiff_t m_solverIterationCount = 0xEC; // int32_t + constexpr std::ptrdiff_t m_projectionLinearTolerance = 0xF0; // float + constexpr std::ptrdiff_t m_projectionAngularTolerance = 0xF4; // float +} + +namespace VPhysXJoint_t { + constexpr std::ptrdiff_t m_nType = 0x0; // uint16_t + constexpr std::ptrdiff_t m_nBody1 = 0x2; // uint16_t + constexpr std::ptrdiff_t m_nBody2 = 0x4; // uint16_t + constexpr std::ptrdiff_t m_nFlags = 0x6; // uint16_t + constexpr std::ptrdiff_t m_Frame1 = 0x10; // CTransform + constexpr std::ptrdiff_t m_Frame2 = 0x30; // CTransform + constexpr std::ptrdiff_t m_bEnableCollision = 0x50; // bool + constexpr std::ptrdiff_t m_bEnableLinearLimit = 0x51; // bool + constexpr std::ptrdiff_t m_LinearLimit = 0x54; // VPhysXRange_t + constexpr std::ptrdiff_t m_bEnableLinearMotor = 0x5C; // bool + constexpr std::ptrdiff_t m_vLinearTargetVelocity = 0x60; // Vector + constexpr std::ptrdiff_t m_flMaxForce = 0x6C; // float + constexpr std::ptrdiff_t m_bEnableSwingLimit = 0x70; // bool + constexpr std::ptrdiff_t m_SwingLimit = 0x74; // VPhysXRange_t + constexpr std::ptrdiff_t m_bEnableTwistLimit = 0x7C; // bool + constexpr std::ptrdiff_t m_TwistLimit = 0x80; // VPhysXRange_t + constexpr std::ptrdiff_t m_bEnableAngularMotor = 0x88; // bool + constexpr std::ptrdiff_t m_vAngularTargetVelocity = 0x8C; // Vector + constexpr std::ptrdiff_t m_flMaxTorque = 0x98; // float + constexpr std::ptrdiff_t m_flLinearFrequency = 0x9C; // float + constexpr std::ptrdiff_t m_flLinearDampingRatio = 0xA0; // float + constexpr std::ptrdiff_t m_flAngularFrequency = 0xA4; // float + constexpr std::ptrdiff_t m_flAngularDampingRatio = 0xA8; // float + constexpr std::ptrdiff_t m_flFriction = 0xAC; // float +} + +namespace VPhysXRange_t { + constexpr std::ptrdiff_t m_flMin = 0x0; // float + constexpr std::ptrdiff_t m_flMax = 0x4; // float +} + +namespace VPhysics2ShapeDef_t { + constexpr std::ptrdiff_t m_spheres = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_capsules = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_hulls = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_meshes = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_CollisionAttributeIndices = 0x60; // CUtlVector +} + +namespace WeightList { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_weights = 0x8; // CUtlVector +} + +namespace WristBone_t { + constexpr std::ptrdiff_t m_xOffsetTransformMS = 0x0; // CTransform + constexpr std::ptrdiff_t m_boneIndex = 0x20; // int32_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/client.dll.hpp b/HPCS2/HPCS2/offset/client.dll.hpp new file mode 100644 index 0000000..ea0f58c --- /dev/null +++ b/HPCS2/HPCS2/offset/client.dll.hpp @@ -0,0 +1,4159 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:22 +0000 + */ + +#pragma once + +#include + +namespace ActiveModelConfig_t { + constexpr std::ptrdiff_t m_Handle = 0x28; // ModelConfigHandle_t + constexpr std::ptrdiff_t m_Name = 0x30; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_AssociatedEntities = 0x38; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_AssociatedEntityNames = 0x50; // C_NetworkUtlVectorBase +} + +namespace CAnimGraphNetworkedVariables { + constexpr std::ptrdiff_t m_PredNetBoolVariables = 0x8; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetByteVariables = 0x20; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetUInt16Variables = 0x38; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetIntVariables = 0x50; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetUInt32Variables = 0x68; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetUInt64Variables = 0x80; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetFloatVariables = 0x98; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetVectorVariables = 0xB0; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetQuaternionVariables = 0xC8; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetBoolVariables = 0xE0; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetByteVariables = 0xF8; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetUInt16Variables = 0x110; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetIntVariables = 0x128; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetUInt32Variables = 0x140; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetUInt64Variables = 0x158; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetFloatVariables = 0x170; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetVectorVariables = 0x188; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetQuaternionVariables = 0x1A0; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_nBoolVariablesCount = 0x1B8; // int32_t + constexpr std::ptrdiff_t m_nOwnerOnlyBoolVariablesCount = 0x1BC; // int32_t + constexpr std::ptrdiff_t m_nRandomSeedOffset = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flLastTeleportTime = 0x1C4; // float +} + +namespace CAttributeList { + constexpr std::ptrdiff_t m_Attributes = 0x8; // C_UtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_pManager = 0x58; // CAttributeManager* +} + +namespace CAttributeManager { + constexpr std::ptrdiff_t m_Providers = 0x8; // CUtlVector> + constexpr std::ptrdiff_t m_iReapplyProvisionParity = 0x20; // int32_t + constexpr std::ptrdiff_t m_hOuter = 0x24; // CHandle + constexpr std::ptrdiff_t m_bPreventLoopback = 0x28; // bool + constexpr std::ptrdiff_t m_ProviderType = 0x2C; // attributeprovidertypes_t + constexpr std::ptrdiff_t m_CachedResults = 0x30; // CUtlVector +} + +namespace CAttributeManager_cached_attribute_float_t { + constexpr std::ptrdiff_t flIn = 0x0; // float + constexpr std::ptrdiff_t iAttribHook = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t flOut = 0x10; // float +} + +namespace CBaseAnimGraph { // C_BaseModelEntity + constexpr std::ptrdiff_t m_bInitiallyPopulateInterpHistory = 0xCC0; // bool + constexpr std::ptrdiff_t m_bShouldAnimateDuringGameplayPause = 0xCC1; // bool + constexpr std::ptrdiff_t m_bSuppressAnimEventSounds = 0xCC3; // bool + constexpr std::ptrdiff_t m_bAnimGraphUpdateEnabled = 0xCD0; // bool + constexpr std::ptrdiff_t m_flMaxSlopeDistance = 0xCD4; // float + constexpr std::ptrdiff_t m_vLastSlopeCheckPos = 0xCD8; // Vector + constexpr std::ptrdiff_t m_vecForce = 0xCE8; // Vector + constexpr std::ptrdiff_t m_nForceBone = 0xCF4; // int32_t + constexpr std::ptrdiff_t m_pClientsideRagdoll = 0xCF8; // CBaseAnimGraph* + constexpr std::ptrdiff_t m_bBuiltRagdoll = 0xD00; // bool + constexpr std::ptrdiff_t m_pRagdollPose = 0xD18; // PhysicsRagdollPose_t* + constexpr std::ptrdiff_t m_bClientRagdoll = 0xD20; // bool + constexpr std::ptrdiff_t m_bHasAnimatedMaterialAttributes = 0xD30; // bool +} + +namespace CBaseAnimGraphController { // CSkeletonAnimationController + constexpr std::ptrdiff_t m_baseLayer = 0x18; // CNetworkedSequenceOperation + constexpr std::ptrdiff_t m_animGraphNetworkedVars = 0x40; // CAnimGraphNetworkedVariables + constexpr std::ptrdiff_t m_bSequenceFinished = 0x1320; // bool + constexpr std::ptrdiff_t m_flLastEventCycle = 0x1324; // float + constexpr std::ptrdiff_t m_flLastEventAnimTime = 0x1328; // float + constexpr std::ptrdiff_t m_flPlaybackRate = 0x132C; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_flPrevAnimTime = 0x1334; // float + constexpr std::ptrdiff_t m_bClientSideAnimation = 0x1338; // bool + constexpr std::ptrdiff_t m_bNetworkedAnimationInputsChanged = 0x1339; // bool + constexpr std::ptrdiff_t m_nPrevNewSequenceParity = 0x133A; // uint8_t + constexpr std::ptrdiff_t m_nPrevResetEventsParity = 0x133B; // uint8_t + constexpr std::ptrdiff_t m_nNewSequenceParity = 0x133C; // int32_t + constexpr std::ptrdiff_t m_nResetEventsParity = 0x1340; // int32_t + constexpr std::ptrdiff_t m_nAnimLoopMode = 0x1344; // AnimLoopMode_t + constexpr std::ptrdiff_t m_hAnimationUpdate = 0x13E4; // AnimationUpdateListHandle_t + constexpr std::ptrdiff_t m_hLastAnimEventSequence = 0x13E8; // HSequence +} + +namespace CBasePlayerController { // C_BaseEntity + constexpr std::ptrdiff_t m_nFinalPredictedTick = 0x548; // int32_t + constexpr std::ptrdiff_t m_CommandContext = 0x550; // C_CommandContext + constexpr std::ptrdiff_t m_nInButtonsWhichAreToggles = 0x5D0; // uint64_t + constexpr std::ptrdiff_t m_nTickBase = 0x5D8; // uint32_t + constexpr std::ptrdiff_t m_hPawn = 0x5DC; // CHandle + constexpr std::ptrdiff_t m_hPredictedPawn = 0x5E0; // CHandle + constexpr std::ptrdiff_t m_nSplitScreenSlot = 0x5E4; // CSplitScreenSlot + constexpr std::ptrdiff_t m_hSplitOwner = 0x5E8; // CHandle + constexpr std::ptrdiff_t m_hSplitScreenPlayers = 0x5F0; // CUtlVector> + constexpr std::ptrdiff_t m_bIsHLTV = 0x608; // bool + constexpr std::ptrdiff_t m_iConnected = 0x60C; // PlayerConnectedState + constexpr std::ptrdiff_t m_iszPlayerName = 0x610; // char[128] + constexpr std::ptrdiff_t m_steamID = 0x698; // uint64_t + constexpr std::ptrdiff_t m_bIsLocalPlayerController = 0x6A0; // bool + constexpr std::ptrdiff_t m_iDesiredFOV = 0x6A4; // uint32_t +} + +namespace CBasePlayerVData { // CEntitySubclassVDataBase + constexpr std::ptrdiff_t m_sModelName = 0x28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_flHeadDamageMultiplier = 0x108; // CSkillFloat + constexpr std::ptrdiff_t m_flChestDamageMultiplier = 0x118; // CSkillFloat + constexpr std::ptrdiff_t m_flStomachDamageMultiplier = 0x128; // CSkillFloat + constexpr std::ptrdiff_t m_flArmDamageMultiplier = 0x138; // CSkillFloat + constexpr std::ptrdiff_t m_flLegDamageMultiplier = 0x148; // CSkillFloat + constexpr std::ptrdiff_t m_flHoldBreathTime = 0x158; // float + constexpr std::ptrdiff_t m_flDrowningDamageInterval = 0x15C; // float + constexpr std::ptrdiff_t m_nDrowningDamageInitial = 0x160; // int32_t + constexpr std::ptrdiff_t m_nDrowningDamageMax = 0x164; // int32_t + constexpr std::ptrdiff_t m_nWaterSpeed = 0x168; // int32_t + constexpr std::ptrdiff_t m_flUseRange = 0x16C; // float + constexpr std::ptrdiff_t m_flUseAngleTolerance = 0x170; // float + constexpr std::ptrdiff_t m_flCrouchTime = 0x174; // float +} + +namespace CBasePlayerWeaponVData { // CEntitySubclassVDataBase + constexpr std::ptrdiff_t m_szWorldModel = 0x28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_bBuiltRightHanded = 0x108; // bool + constexpr std::ptrdiff_t m_bAllowFlipping = 0x109; // bool + constexpr std::ptrdiff_t m_bIsFullAuto = 0x10A; // bool + constexpr std::ptrdiff_t m_nNumBullets = 0x10C; // int32_t + constexpr std::ptrdiff_t m_sMuzzleAttachment = 0x110; // CUtlString + constexpr std::ptrdiff_t m_szMuzzleFlashParticle = 0x118; // CResourceNameTyped> + constexpr std::ptrdiff_t m_iFlags = 0x1F8; // ItemFlagTypes_t + constexpr std::ptrdiff_t m_nPrimaryAmmoType = 0x1F9; // AmmoIndex_t + constexpr std::ptrdiff_t m_nSecondaryAmmoType = 0x1FA; // AmmoIndex_t + constexpr std::ptrdiff_t m_iMaxClip1 = 0x1FC; // int32_t + constexpr std::ptrdiff_t m_iMaxClip2 = 0x200; // int32_t + constexpr std::ptrdiff_t m_iDefaultClip1 = 0x204; // int32_t + constexpr std::ptrdiff_t m_iDefaultClip2 = 0x208; // int32_t + constexpr std::ptrdiff_t m_iWeight = 0x20C; // int32_t + constexpr std::ptrdiff_t m_bAutoSwitchTo = 0x210; // bool + constexpr std::ptrdiff_t m_bAutoSwitchFrom = 0x211; // bool + constexpr std::ptrdiff_t m_iRumbleEffect = 0x214; // RumbleEffect_t + constexpr std::ptrdiff_t m_aShootSounds = 0x218; // CUtlMap + constexpr std::ptrdiff_t m_iSlot = 0x238; // int32_t + constexpr std::ptrdiff_t m_iPosition = 0x23C; // int32_t +} + +namespace CBaseProp { // CBaseAnimGraph + constexpr std::ptrdiff_t m_bModelOverrodeBlockLOS = 0xE80; // bool + constexpr std::ptrdiff_t m_iShapeType = 0xE84; // int32_t + constexpr std::ptrdiff_t m_bConformToCollisionBounds = 0xE88; // bool + constexpr std::ptrdiff_t m_mPreferredCatchTransform = 0xE8C; // matrix3x4_t +} + +namespace CBodyComponent { // CEntityComponent + constexpr std::ptrdiff_t m_pSceneNode = 0x8; // CGameSceneNode* + constexpr std::ptrdiff_t __m_pChainEntity = 0x20; // CNetworkVarChainer +} + +namespace CBodyComponentBaseAnimGraph { // CBodyComponentSkeletonInstance + constexpr std::ptrdiff_t m_animationController = 0x480; // CBaseAnimGraphController + constexpr std::ptrdiff_t __m_pChainEntity = 0x18C0; // CNetworkVarChainer +} + +namespace CBodyComponentBaseModelEntity { // CBodyComponentSkeletonInstance + constexpr std::ptrdiff_t __m_pChainEntity = 0x480; // CNetworkVarChainer +} + +namespace CBodyComponentPoint { // CBodyComponent + constexpr std::ptrdiff_t m_sceneNode = 0x50; // CGameSceneNode + constexpr std::ptrdiff_t __m_pChainEntity = 0x1A0; // CNetworkVarChainer +} + +namespace CBodyComponentSkeletonInstance { // CBodyComponent + constexpr std::ptrdiff_t m_skeletonInstance = 0x50; // CSkeletonInstance + constexpr std::ptrdiff_t __m_pChainEntity = 0x450; // CNetworkVarChainer +} + +namespace CBombTarget { // C_BaseTrigger + constexpr std::ptrdiff_t m_bBombPlantedHere = 0xCC8; // bool +} + +namespace CBreachCharge { // C_CSWeaponBase +} + +namespace CBreachChargeProjectile { // C_BaseGrenade +} + +namespace CBumpMine { // C_CSWeaponBase +} + +namespace CBumpMineProjectile { // C_BaseGrenade +} + +namespace CBuoyancyHelper { + constexpr std::ptrdiff_t m_flFluidDensity = 0x18; // float +} + +namespace CCSGO_WingmanIntroCharacterPosition { // C_CSGO_TeamIntroCharacterPosition +} + +namespace CCSGO_WingmanIntroCounterTerroristPosition { // CCSGO_WingmanIntroCharacterPosition +} + +namespace CCSGO_WingmanIntroTerroristPosition { // CCSGO_WingmanIntroCharacterPosition +} + +namespace CCSGameModeRules { + constexpr std::ptrdiff_t __m_pChainEntity = 0x8; // CNetworkVarChainer +} + +namespace CCSGameModeRules_Deathmatch { // CCSGameModeRules + constexpr std::ptrdiff_t m_bFirstThink = 0x30; // bool + constexpr std::ptrdiff_t m_bFirstThinkAfterConnected = 0x31; // bool + constexpr std::ptrdiff_t m_flDMBonusStartTime = 0x34; // GameTime_t + constexpr std::ptrdiff_t m_flDMBonusTimeLength = 0x38; // float + constexpr std::ptrdiff_t m_nDMBonusWeaponLoadoutSlot = 0x3C; // int16_t +} + +namespace CCSGameModeRules_Noop { // CCSGameModeRules +} + +namespace CCSGameModeRules_Scripted { // CCSGameModeRules +} + +namespace CCSGameModeScript { // CBasePulseGraphInstance +} + +namespace CCSObserver_CameraServices { // CCSPlayerBase_CameraServices +} + +namespace CCSObserver_MovementServices { // CPlayer_MovementServices +} + +namespace CCSObserver_ObserverServices { // CPlayer_ObserverServices + constexpr std::ptrdiff_t m_hLastObserverTarget = 0x58; // CEntityHandle + constexpr std::ptrdiff_t m_vecObserverInterpolateOffset = 0x5C; // Vector + constexpr std::ptrdiff_t m_vecObserverInterpStartPos = 0x68; // Vector + constexpr std::ptrdiff_t m_flObsInterp_PathLength = 0x74; // float + constexpr std::ptrdiff_t m_qObsInterp_OrientationStart = 0x80; // Quaternion + constexpr std::ptrdiff_t m_qObsInterp_OrientationTravelDir = 0x90; // Quaternion + constexpr std::ptrdiff_t m_obsInterpState = 0xA0; // ObserverInterpState_t + constexpr std::ptrdiff_t m_bObserverInterpolationNeedsDeferredSetup = 0xA4; // bool +} + +namespace CCSObserver_UseServices { // CPlayer_UseServices +} + +namespace CCSObserver_ViewModelServices { // CPlayer_ViewModelServices +} + +namespace CCSPlayerBase_CameraServices { // CPlayer_CameraServices + constexpr std::ptrdiff_t m_iFOV = 0x210; // uint32_t + constexpr std::ptrdiff_t m_iFOVStart = 0x214; // uint32_t + constexpr std::ptrdiff_t m_flFOVTime = 0x218; // GameTime_t + constexpr std::ptrdiff_t m_flFOVRate = 0x21C; // float + constexpr std::ptrdiff_t m_hZoomOwner = 0x220; // CHandle + constexpr std::ptrdiff_t m_flLastShotFOV = 0x224; // float +} + +namespace CCSPlayerController { // CBasePlayerController + constexpr std::ptrdiff_t m_pInGameMoneyServices = 0x6D0; // CCSPlayerController_InGameMoneyServices* + constexpr std::ptrdiff_t m_pInventoryServices = 0x6D8; // CCSPlayerController_InventoryServices* + constexpr std::ptrdiff_t m_pActionTrackingServices = 0x6E0; // CCSPlayerController_ActionTrackingServices* + constexpr std::ptrdiff_t m_pDamageServices = 0x6E8; // CCSPlayerController_DamageServices* + constexpr std::ptrdiff_t m_iPing = 0x6F0; // uint32_t + constexpr std::ptrdiff_t m_bHasCommunicationAbuseMute = 0x6F4; // bool + constexpr std::ptrdiff_t m_szCrosshairCodes = 0x6F8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iPendingTeamNum = 0x700; // uint8_t + constexpr std::ptrdiff_t m_flForceTeamTime = 0x704; // GameTime_t + constexpr std::ptrdiff_t m_iCompTeammateColor = 0x708; // int32_t + constexpr std::ptrdiff_t m_bEverPlayedOnTeam = 0x70C; // bool + constexpr std::ptrdiff_t m_flPreviousForceJoinTeamTime = 0x710; // GameTime_t + constexpr std::ptrdiff_t m_szClan = 0x718; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sSanitizedPlayerName = 0x720; // CUtlString + constexpr std::ptrdiff_t m_iCoachingTeam = 0x728; // int32_t + constexpr std::ptrdiff_t m_nPlayerDominated = 0x730; // uint64_t + constexpr std::ptrdiff_t m_nPlayerDominatingMe = 0x738; // uint64_t + constexpr std::ptrdiff_t m_iCompetitiveRanking = 0x740; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveWins = 0x744; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveRankType = 0x748; // int8_t + constexpr std::ptrdiff_t m_iCompetitiveRankingPredicted_Win = 0x74C; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveRankingPredicted_Loss = 0x750; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveRankingPredicted_Tie = 0x754; // int32_t + constexpr std::ptrdiff_t m_nEndMatchNextMapVote = 0x758; // int32_t + constexpr std::ptrdiff_t m_unActiveQuestId = 0x75C; // uint16_t + constexpr std::ptrdiff_t m_nQuestProgressReason = 0x760; // QuestProgress::Reason + constexpr std::ptrdiff_t m_unPlayerTvControlFlags = 0x764; // uint32_t + constexpr std::ptrdiff_t m_iDraftIndex = 0x790; // int32_t + constexpr std::ptrdiff_t m_msQueuedModeDisconnectionTimestamp = 0x794; // uint32_t + constexpr std::ptrdiff_t m_uiAbandonRecordedReason = 0x798; // uint32_t + constexpr std::ptrdiff_t m_bEverFullyConnected = 0x79C; // bool + constexpr std::ptrdiff_t m_bAbandonAllowsSurrender = 0x79D; // bool + constexpr std::ptrdiff_t m_bAbandonOffersInstantSurrender = 0x79E; // bool + constexpr std::ptrdiff_t m_bDisconnection1MinWarningPrinted = 0x79F; // bool + constexpr std::ptrdiff_t m_bScoreReported = 0x7A0; // bool + constexpr std::ptrdiff_t m_nDisconnectionTick = 0x7A4; // int32_t + constexpr std::ptrdiff_t m_bControllingBot = 0x7B0; // bool + constexpr std::ptrdiff_t m_bHasControlledBotThisRound = 0x7B1; // bool + constexpr std::ptrdiff_t m_bHasBeenControlledByPlayerThisRound = 0x7B2; // bool + constexpr std::ptrdiff_t m_nBotsControlledThisRound = 0x7B4; // int32_t + constexpr std::ptrdiff_t m_bCanControlObservedBot = 0x7B8; // bool + constexpr std::ptrdiff_t m_hPlayerPawn = 0x7BC; // CHandle + constexpr std::ptrdiff_t m_hObserverPawn = 0x7C0; // CHandle + constexpr std::ptrdiff_t m_bPawnIsAlive = 0x7C4; // bool + constexpr std::ptrdiff_t m_iPawnHealth = 0x7C8; // uint32_t + constexpr std::ptrdiff_t m_iPawnArmor = 0x7CC; // int32_t + constexpr std::ptrdiff_t m_bPawnHasDefuser = 0x7D0; // bool + constexpr std::ptrdiff_t m_bPawnHasHelmet = 0x7D1; // bool + constexpr std::ptrdiff_t m_nPawnCharacterDefIndex = 0x7D2; // uint16_t + constexpr std::ptrdiff_t m_iPawnLifetimeStart = 0x7D4; // int32_t + constexpr std::ptrdiff_t m_iPawnLifetimeEnd = 0x7D8; // int32_t + constexpr std::ptrdiff_t m_iPawnBotDifficulty = 0x7DC; // int32_t + constexpr std::ptrdiff_t m_hOriginalControllerOfCurrentPawn = 0x7E0; // CHandle + constexpr std::ptrdiff_t m_iScore = 0x7E4; // int32_t + constexpr std::ptrdiff_t m_vecKills = 0x7E8; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_iMVPs = 0x800; // int32_t + constexpr std::ptrdiff_t m_bIsPlayerNameDirty = 0x804; // bool +} + +namespace CCSPlayerController_ActionTrackingServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_perRoundStats = 0x40; // C_UtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_matchStats = 0x90; // CSMatchStats_t + constexpr std::ptrdiff_t m_iNumRoundKills = 0x108; // int32_t + constexpr std::ptrdiff_t m_iNumRoundKillsHeadshots = 0x10C; // int32_t + constexpr std::ptrdiff_t m_unTotalRoundDamageDealt = 0x110; // uint32_t +} + +namespace CCSPlayerController_DamageServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_nSendUpdate = 0x40; // int32_t + constexpr std::ptrdiff_t m_DamageList = 0x48; // C_UtlVectorEmbeddedNetworkVar +} + +namespace CCSPlayerController_InGameMoneyServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_iAccount = 0x40; // int32_t + constexpr std::ptrdiff_t m_iStartAccount = 0x44; // int32_t + constexpr std::ptrdiff_t m_iTotalCashSpent = 0x48; // int32_t + constexpr std::ptrdiff_t m_iCashSpentThisRound = 0x4C; // int32_t + constexpr std::ptrdiff_t m_nPreviousAccount = 0x50; // int32_t +} + +namespace CCSPlayerController_InventoryServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_unMusicID = 0x40; // uint16_t + constexpr std::ptrdiff_t m_rank = 0x44; // MedalRank_t[6] + constexpr std::ptrdiff_t m_nPersonaDataPublicLevel = 0x5C; // int32_t + constexpr std::ptrdiff_t m_nPersonaDataPublicCommendsLeader = 0x60; // int32_t + constexpr std::ptrdiff_t m_nPersonaDataPublicCommendsTeacher = 0x64; // int32_t + constexpr std::ptrdiff_t m_nPersonaDataPublicCommendsFriendly = 0x68; // int32_t + constexpr std::ptrdiff_t m_vecServerAuthoritativeWeaponSlots = 0x70; // C_UtlVectorEmbeddedNetworkVar +} + +namespace CCSPlayer_ActionTrackingServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_hLastWeaponBeforeC4AutoSwitch = 0x40; // CHandle + constexpr std::ptrdiff_t m_bIsRescuing = 0x44; // bool + constexpr std::ptrdiff_t m_weaponPurchasesThisMatch = 0x48; // WeaponPurchaseTracker_t + constexpr std::ptrdiff_t m_weaponPurchasesThisRound = 0xA0; // WeaponPurchaseTracker_t +} + +namespace CCSPlayer_BulletServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_totalHitsOnServer = 0x40; // int32_t +} + +namespace CCSPlayer_BuyServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_vecSellbackPurchaseEntries = 0x40; // C_UtlVectorEmbeddedNetworkVar +} + +namespace CCSPlayer_CameraServices { // CCSPlayerBase_CameraServices + constexpr std::ptrdiff_t m_flDeathCamTilt = 0x228; // float +} + +namespace CCSPlayer_GlowServices { // CPlayerPawnComponent +} + +namespace CCSPlayer_HostageServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_hCarriedHostage = 0x40; // CHandle + constexpr std::ptrdiff_t m_hCarriedHostageProp = 0x44; // CHandle +} + +namespace CCSPlayer_ItemServices { // CPlayer_ItemServices + constexpr std::ptrdiff_t m_bHasDefuser = 0x40; // bool + constexpr std::ptrdiff_t m_bHasHelmet = 0x41; // bool + constexpr std::ptrdiff_t m_bHasHeavyArmor = 0x42; // bool +} + +namespace CCSPlayer_MovementServices { // CPlayer_MovementServices_Humanoid + constexpr std::ptrdiff_t m_flMaxFallVelocity = 0x210; // float + constexpr std::ptrdiff_t m_vecLadderNormal = 0x214; // Vector + constexpr std::ptrdiff_t m_nLadderSurfacePropIndex = 0x220; // int32_t + constexpr std::ptrdiff_t m_flDuckAmount = 0x224; // float + constexpr std::ptrdiff_t m_flDuckSpeed = 0x228; // float + constexpr std::ptrdiff_t m_bDuckOverride = 0x22C; // bool + constexpr std::ptrdiff_t m_bDesiresDuck = 0x22D; // bool + constexpr std::ptrdiff_t m_flDuckOffset = 0x230; // float + constexpr std::ptrdiff_t m_nDuckTimeMsecs = 0x234; // uint32_t + constexpr std::ptrdiff_t m_nDuckJumpTimeMsecs = 0x238; // uint32_t + constexpr std::ptrdiff_t m_nJumpTimeMsecs = 0x23C; // uint32_t + constexpr std::ptrdiff_t m_flLastDuckTime = 0x240; // float + constexpr std::ptrdiff_t m_vecLastPositionAtFullCrouchSpeed = 0x250; // Vector2D + constexpr std::ptrdiff_t m_duckUntilOnGround = 0x258; // bool + constexpr std::ptrdiff_t m_bHasWalkMovedSinceLastJump = 0x259; // bool + constexpr std::ptrdiff_t m_bInStuckTest = 0x25A; // bool + constexpr std::ptrdiff_t m_flStuckCheckTime = 0x268; // float[64][2] + constexpr std::ptrdiff_t m_nTraceCount = 0x468; // int32_t + constexpr std::ptrdiff_t m_StuckLast = 0x46C; // int32_t + constexpr std::ptrdiff_t m_bSpeedCropped = 0x470; // bool + constexpr std::ptrdiff_t m_nOldWaterLevel = 0x474; // int32_t + constexpr std::ptrdiff_t m_flWaterEntryTime = 0x478; // float + constexpr std::ptrdiff_t m_vecForward = 0x47C; // Vector + constexpr std::ptrdiff_t m_vecLeft = 0x488; // Vector + constexpr std::ptrdiff_t m_vecUp = 0x494; // Vector + constexpr std::ptrdiff_t m_vecPreviouslyPredictedOrigin = 0x4A0; // Vector + constexpr std::ptrdiff_t m_bOldJumpPressed = 0x4AC; // bool + constexpr std::ptrdiff_t m_flJumpPressedTime = 0x4B0; // float + constexpr std::ptrdiff_t m_flJumpUntil = 0x4B4; // float + constexpr std::ptrdiff_t m_flJumpVel = 0x4B8; // float + constexpr std::ptrdiff_t m_fStashGrenadeParameterWhen = 0x4BC; // GameTime_t + constexpr std::ptrdiff_t m_nButtonDownMaskPrev = 0x4C0; // uint64_t + constexpr std::ptrdiff_t m_flOffsetTickCompleteTime = 0x4C8; // float + constexpr std::ptrdiff_t m_flOffsetTickStashedSpeed = 0x4CC; // float + constexpr std::ptrdiff_t m_flStamina = 0x4D0; // float + constexpr std::ptrdiff_t m_bUpdatePredictedOriginAfterDataUpdate = 0x4D4; // bool +} + +namespace CCSPlayer_PingServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_hPlayerPing = 0x40; // CHandle +} + +namespace CCSPlayer_UseServices { // CPlayer_UseServices +} + +namespace CCSPlayer_ViewModelServices { // CPlayer_ViewModelServices + constexpr std::ptrdiff_t m_hViewModel = 0x40; // CHandle[3] +} + +namespace CCSPlayer_WaterServices { // CPlayer_WaterServices + constexpr std::ptrdiff_t m_flWaterJumpTime = 0x40; // float + constexpr std::ptrdiff_t m_vecWaterJumpVel = 0x44; // Vector + constexpr std::ptrdiff_t m_flSwimSoundTime = 0x50; // float +} + +namespace CCSPlayer_WeaponServices { // CPlayer_WeaponServices + constexpr std::ptrdiff_t m_flNextAttack = 0xA8; // GameTime_t + constexpr std::ptrdiff_t m_bIsLookingAtWeapon = 0xAC; // bool + constexpr std::ptrdiff_t m_bIsHoldingLookAtWeapon = 0xAD; // bool +} + +namespace CCSWeaponBaseVData { // CBasePlayerWeaponVData + constexpr std::ptrdiff_t m_WeaponType = 0x240; // CSWeaponType + constexpr std::ptrdiff_t m_WeaponCategory = 0x244; // CSWeaponCategory + constexpr std::ptrdiff_t m_szViewModel = 0x248; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szPlayerModel = 0x328; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szWorldDroppedModel = 0x408; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szAimsightLensMaskModel = 0x4E8; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMagazineModel = 0x5C8; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szHeatEffect = 0x6A8; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szEjectBrassEffect = 0x788; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMuzzleFlashParticleAlt = 0x868; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMuzzleFlashThirdPersonParticle = 0x948; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMuzzleFlashThirdPersonParticleAlt = 0xA28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szTracerParticle = 0xB08; // CResourceNameTyped> + constexpr std::ptrdiff_t m_GearSlot = 0xBE8; // gear_slot_t + constexpr std::ptrdiff_t m_GearSlotPosition = 0xBEC; // int32_t + constexpr std::ptrdiff_t m_DefaultLoadoutSlot = 0xBF0; // loadout_slot_t + constexpr std::ptrdiff_t m_sWrongTeamMsg = 0xBF8; // CUtlString + constexpr std::ptrdiff_t m_nPrice = 0xC00; // int32_t + constexpr std::ptrdiff_t m_nKillAward = 0xC04; // int32_t + constexpr std::ptrdiff_t m_nPrimaryReserveAmmoMax = 0xC08; // int32_t + constexpr std::ptrdiff_t m_nSecondaryReserveAmmoMax = 0xC0C; // int32_t + constexpr std::ptrdiff_t m_bMeleeWeapon = 0xC10; // bool + constexpr std::ptrdiff_t m_bHasBurstMode = 0xC11; // bool + constexpr std::ptrdiff_t m_bIsRevolver = 0xC12; // bool + constexpr std::ptrdiff_t m_bCannotShootUnderwater = 0xC13; // bool + constexpr std::ptrdiff_t m_szName = 0xC18; // CUtlString + constexpr std::ptrdiff_t m_szAnimExtension = 0xC20; // CUtlString + constexpr std::ptrdiff_t m_eSilencerType = 0xC28; // CSWeaponSilencerType + constexpr std::ptrdiff_t m_nCrosshairMinDistance = 0xC2C; // int32_t + constexpr std::ptrdiff_t m_nCrosshairDeltaDistance = 0xC30; // int32_t + constexpr std::ptrdiff_t m_flCycleTime = 0xC34; // CFiringModeFloat + constexpr std::ptrdiff_t m_flMaxSpeed = 0xC3C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flSpread = 0xC44; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyCrouch = 0xC4C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyStand = 0xC54; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyJump = 0xC5C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyLand = 0xC64; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyLadder = 0xC6C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyFire = 0xC74; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyMove = 0xC7C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilAngle = 0xC84; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilAngleVariance = 0xC8C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilMagnitude = 0xC94; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilMagnitudeVariance = 0xC9C; // CFiringModeFloat + constexpr std::ptrdiff_t m_nTracerFrequency = 0xCA4; // CFiringModeInt + constexpr std::ptrdiff_t m_flInaccuracyJumpInitial = 0xCAC; // float + constexpr std::ptrdiff_t m_flInaccuracyJumpApex = 0xCB0; // float + constexpr std::ptrdiff_t m_flInaccuracyReload = 0xCB4; // float + constexpr std::ptrdiff_t m_nRecoilSeed = 0xCB8; // int32_t + constexpr std::ptrdiff_t m_nSpreadSeed = 0xCBC; // int32_t + constexpr std::ptrdiff_t m_flTimeToIdleAfterFire = 0xCC0; // float + constexpr std::ptrdiff_t m_flIdleInterval = 0xCC4; // float + constexpr std::ptrdiff_t m_flAttackMovespeedFactor = 0xCC8; // float + constexpr std::ptrdiff_t m_flHeatPerShot = 0xCCC; // float + constexpr std::ptrdiff_t m_flInaccuracyPitchShift = 0xCD0; // float + constexpr std::ptrdiff_t m_flInaccuracyAltSoundThreshold = 0xCD4; // float + constexpr std::ptrdiff_t m_flBotAudibleRange = 0xCD8; // float + constexpr std::ptrdiff_t m_szUseRadioSubtitle = 0xCE0; // CUtlString + constexpr std::ptrdiff_t m_bUnzoomsAfterShot = 0xCE8; // bool + constexpr std::ptrdiff_t m_bHideViewModelWhenZoomed = 0xCE9; // bool + constexpr std::ptrdiff_t m_nZoomLevels = 0xCEC; // int32_t + constexpr std::ptrdiff_t m_nZoomFOV1 = 0xCF0; // int32_t + constexpr std::ptrdiff_t m_nZoomFOV2 = 0xCF4; // int32_t + constexpr std::ptrdiff_t m_flZoomTime0 = 0xCF8; // float + constexpr std::ptrdiff_t m_flZoomTime1 = 0xCFC; // float + constexpr std::ptrdiff_t m_flZoomTime2 = 0xD00; // float + constexpr std::ptrdiff_t m_flIronSightPullUpSpeed = 0xD04; // float + constexpr std::ptrdiff_t m_flIronSightPutDownSpeed = 0xD08; // float + constexpr std::ptrdiff_t m_flIronSightFOV = 0xD0C; // float + constexpr std::ptrdiff_t m_flIronSightPivotForward = 0xD10; // float + constexpr std::ptrdiff_t m_flIronSightLooseness = 0xD14; // float + constexpr std::ptrdiff_t m_angPivotAngle = 0xD18; // QAngle + constexpr std::ptrdiff_t m_vecIronSightEyePos = 0xD24; // Vector + constexpr std::ptrdiff_t m_nDamage = 0xD30; // int32_t + constexpr std::ptrdiff_t m_flHeadshotMultiplier = 0xD34; // float + constexpr std::ptrdiff_t m_flArmorRatio = 0xD38; // float + constexpr std::ptrdiff_t m_flPenetration = 0xD3C; // float + constexpr std::ptrdiff_t m_flRange = 0xD40; // float + constexpr std::ptrdiff_t m_flRangeModifier = 0xD44; // float + constexpr std::ptrdiff_t m_flFlinchVelocityModifierLarge = 0xD48; // float + constexpr std::ptrdiff_t m_flFlinchVelocityModifierSmall = 0xD4C; // float + constexpr std::ptrdiff_t m_flRecoveryTimeCrouch = 0xD50; // float + constexpr std::ptrdiff_t m_flRecoveryTimeStand = 0xD54; // float + constexpr std::ptrdiff_t m_flRecoveryTimeCrouchFinal = 0xD58; // float + constexpr std::ptrdiff_t m_flRecoveryTimeStandFinal = 0xD5C; // float + constexpr std::ptrdiff_t m_nRecoveryTransitionStartBullet = 0xD60; // int32_t + constexpr std::ptrdiff_t m_nRecoveryTransitionEndBullet = 0xD64; // int32_t + constexpr std::ptrdiff_t m_flThrowVelocity = 0xD68; // float + constexpr std::ptrdiff_t m_vSmokeColor = 0xD6C; // Vector + constexpr std::ptrdiff_t m_szAnimClass = 0xD78; // CUtlString +} + +namespace CClientAlphaProperty { // IClientAlphaProperty + constexpr std::ptrdiff_t m_nRenderFX = 0x10; // uint8_t + constexpr std::ptrdiff_t m_nRenderMode = 0x11; // uint8_t + constexpr std::ptrdiff_t m_bAlphaOverride = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bShadowAlphaOverride = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_nReserved = 0x0; // bitfield:6 + constexpr std::ptrdiff_t m_nAlpha = 0x13; // uint8_t + constexpr std::ptrdiff_t m_nDesyncOffset = 0x14; // uint16_t + constexpr std::ptrdiff_t m_nReserved2 = 0x16; // uint16_t + constexpr std::ptrdiff_t m_nDistFadeStart = 0x18; // uint16_t + constexpr std::ptrdiff_t m_nDistFadeEnd = 0x1A; // uint16_t + constexpr std::ptrdiff_t m_flFadeScale = 0x1C; // float + constexpr std::ptrdiff_t m_flRenderFxStartTime = 0x20; // GameTime_t + constexpr std::ptrdiff_t m_flRenderFxDuration = 0x24; // float +} + +namespace CCollisionProperty { + constexpr std::ptrdiff_t m_collisionAttribute = 0x10; // VPhysicsCollisionAttribute_t + constexpr std::ptrdiff_t m_vecMins = 0x40; // Vector + constexpr std::ptrdiff_t m_vecMaxs = 0x4C; // Vector + constexpr std::ptrdiff_t m_usSolidFlags = 0x5A; // uint8_t + constexpr std::ptrdiff_t m_nSolidType = 0x5B; // SolidType_t + constexpr std::ptrdiff_t m_triggerBloat = 0x5C; // uint8_t + constexpr std::ptrdiff_t m_nSurroundType = 0x5D; // SurroundingBoundsType_t + constexpr std::ptrdiff_t m_CollisionGroup = 0x5E; // uint8_t + constexpr std::ptrdiff_t m_nEnablePhysics = 0x5F; // uint8_t + constexpr std::ptrdiff_t m_flBoundingRadius = 0x60; // float + constexpr std::ptrdiff_t m_vecSpecifiedSurroundingMins = 0x64; // Vector + constexpr std::ptrdiff_t m_vecSpecifiedSurroundingMaxs = 0x70; // Vector + constexpr std::ptrdiff_t m_vecSurroundingMaxs = 0x7C; // Vector + constexpr std::ptrdiff_t m_vecSurroundingMins = 0x88; // Vector + constexpr std::ptrdiff_t m_vCapsuleCenter1 = 0x94; // Vector + constexpr std::ptrdiff_t m_vCapsuleCenter2 = 0xA0; // Vector + constexpr std::ptrdiff_t m_flCapsuleRadius = 0xAC; // float +} + +namespace CComicBook { + constexpr std::ptrdiff_t m_CoverImage = 0x8; // CPanoramaImageName + constexpr std::ptrdiff_t m_XmlFile = 0x18; // CUtlString +} + +namespace CCompositeMaterialEditorDoc { + constexpr std::ptrdiff_t m_nVersion = 0x8; // int32_t + constexpr std::ptrdiff_t m_Points = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_KVthumbnail = 0x28; // KeyValues3 +} + +namespace CDamageRecord { + constexpr std::ptrdiff_t m_PlayerDamager = 0x28; // CHandle + constexpr std::ptrdiff_t m_PlayerRecipient = 0x2C; // CHandle + constexpr std::ptrdiff_t m_hPlayerControllerDamager = 0x30; // CHandle + constexpr std::ptrdiff_t m_hPlayerControllerRecipient = 0x34; // CHandle + constexpr std::ptrdiff_t m_szPlayerDamagerName = 0x38; // CUtlString + constexpr std::ptrdiff_t m_szPlayerRecipientName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_DamagerXuid = 0x48; // uint64_t + constexpr std::ptrdiff_t m_RecipientXuid = 0x50; // uint64_t + constexpr std::ptrdiff_t m_iDamage = 0x58; // int32_t + constexpr std::ptrdiff_t m_iActualHealthRemoved = 0x5C; // int32_t + constexpr std::ptrdiff_t m_iNumHits = 0x60; // int32_t + constexpr std::ptrdiff_t m_iLastBulletUpdate = 0x64; // int32_t + constexpr std::ptrdiff_t m_bIsOtherEnemy = 0x68; // bool + constexpr std::ptrdiff_t m_killType = 0x69; // EKillTypes_t +} + +namespace CDecalInfo { + constexpr std::ptrdiff_t m_flAnimationScale = 0x0; // float + constexpr std::ptrdiff_t m_flAnimationLifeSpan = 0x4; // float + constexpr std::ptrdiff_t m_flPlaceTime = 0x8; // float + constexpr std::ptrdiff_t m_flFadeStartTime = 0xC; // float + constexpr std::ptrdiff_t m_flFadeDuration = 0x10; // float + constexpr std::ptrdiff_t m_nVBSlot = 0x14; // int32_t + constexpr std::ptrdiff_t m_nBoneIndex = 0x18; // int32_t + constexpr std::ptrdiff_t m_pNext = 0x28; // CDecalInfo* + constexpr std::ptrdiff_t m_pPrev = 0x30; // CDecalInfo* + constexpr std::ptrdiff_t m_nDecalMaterialIndex = 0x90; // int32_t +} + +namespace CEconItemAttribute { + constexpr std::ptrdiff_t m_iAttributeDefinitionIndex = 0x30; // uint16_t + constexpr std::ptrdiff_t m_flValue = 0x34; // float + constexpr std::ptrdiff_t m_flInitialValue = 0x38; // float + constexpr std::ptrdiff_t m_nRefundableCurrency = 0x3C; // int32_t + constexpr std::ptrdiff_t m_bSetBonus = 0x40; // bool +} + +namespace CEffectData { + constexpr std::ptrdiff_t m_vOrigin = 0x8; // Vector + constexpr std::ptrdiff_t m_vStart = 0x14; // Vector + constexpr std::ptrdiff_t m_vNormal = 0x20; // Vector + constexpr std::ptrdiff_t m_vAngles = 0x2C; // QAngle + constexpr std::ptrdiff_t m_hEntity = 0x38; // CEntityHandle + constexpr std::ptrdiff_t m_hOtherEntity = 0x3C; // CEntityHandle + constexpr std::ptrdiff_t m_flScale = 0x40; // float + constexpr std::ptrdiff_t m_flMagnitude = 0x44; // float + constexpr std::ptrdiff_t m_flRadius = 0x48; // float + constexpr std::ptrdiff_t m_nSurfaceProp = 0x4C; // CUtlStringToken + constexpr std::ptrdiff_t m_nEffectIndex = 0x50; // CWeakHandle + constexpr std::ptrdiff_t m_nDamageType = 0x58; // uint32_t + constexpr std::ptrdiff_t m_nPenetrate = 0x5C; // uint8_t + constexpr std::ptrdiff_t m_nMaterial = 0x5E; // uint16_t + constexpr std::ptrdiff_t m_nHitBox = 0x60; // uint16_t + constexpr std::ptrdiff_t m_nColor = 0x62; // uint8_t + constexpr std::ptrdiff_t m_fFlags = 0x63; // uint8_t + constexpr std::ptrdiff_t m_nAttachmentIndex = 0x64; // AttachmentHandle_t + constexpr std::ptrdiff_t m_nAttachmentName = 0x68; // CUtlStringToken + constexpr std::ptrdiff_t m_iEffectName = 0x6C; // uint16_t + constexpr std::ptrdiff_t m_nExplosionType = 0x6E; // uint8_t +} + +namespace CEntityComponent { +} + +namespace CEntityIdentity { + constexpr std::ptrdiff_t m_nameStringableIndex = 0x14; // int32_t + constexpr std::ptrdiff_t m_name = 0x18; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_designerName = 0x20; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flags = 0x30; // uint32_t + constexpr std::ptrdiff_t m_worldGroupId = 0x38; // WorldGroupId_t + constexpr std::ptrdiff_t m_fDataObjectTypes = 0x3C; // uint32_t + constexpr std::ptrdiff_t m_PathIndex = 0x40; // ChangeAccessorFieldPathIndex_t + constexpr std::ptrdiff_t m_pPrev = 0x58; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNext = 0x60; // CEntityIdentity* + constexpr std::ptrdiff_t m_pPrevByClass = 0x68; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNextByClass = 0x70; // CEntityIdentity* +} + +namespace CEntityInstance { + constexpr std::ptrdiff_t m_iszPrivateVScripts = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pEntity = 0x10; // CEntityIdentity* + constexpr std::ptrdiff_t m_CScriptComponent = 0x28; // CScriptComponent* +} + +namespace CFireOverlay { // CGlowOverlay + constexpr std::ptrdiff_t m_pOwner = 0xD0; // C_FireSmoke* + constexpr std::ptrdiff_t m_vBaseColors = 0xD8; // Vector[4] + constexpr std::ptrdiff_t m_flScale = 0x108; // float + constexpr std::ptrdiff_t m_nGUID = 0x10C; // int32_t +} + +namespace CFlashlightEffect { + constexpr std::ptrdiff_t m_bIsOn = 0x10; // bool + constexpr std::ptrdiff_t m_bMuzzleFlashEnabled = 0x20; // bool + constexpr std::ptrdiff_t m_flMuzzleFlashBrightness = 0x24; // float + constexpr std::ptrdiff_t m_quatMuzzleFlashOrientation = 0x30; // Quaternion + constexpr std::ptrdiff_t m_vecMuzzleFlashOrigin = 0x40; // Vector + constexpr std::ptrdiff_t m_flFov = 0x4C; // float + constexpr std::ptrdiff_t m_flFarZ = 0x50; // float + constexpr std::ptrdiff_t m_flLinearAtten = 0x54; // float + constexpr std::ptrdiff_t m_bCastsShadows = 0x58; // bool + constexpr std::ptrdiff_t m_flCurrentPullBackDist = 0x5C; // float + constexpr std::ptrdiff_t m_FlashlightTexture = 0x60; // CStrongHandle + constexpr std::ptrdiff_t m_MuzzleFlashTexture = 0x68; // CStrongHandle + constexpr std::ptrdiff_t m_textureName = 0x70; // char[64] +} + +namespace CFuncWater { // C_BaseModelEntity + constexpr std::ptrdiff_t m_BuoyancyHelper = 0xCC0; // CBuoyancyHelper +} + +namespace CGameSceneNode { + constexpr std::ptrdiff_t m_nodeToWorld = 0x10; // CTransform + constexpr std::ptrdiff_t m_pOwner = 0x30; // CEntityInstance* + constexpr std::ptrdiff_t m_pParent = 0x38; // CGameSceneNode* + constexpr std::ptrdiff_t m_pChild = 0x40; // CGameSceneNode* + constexpr std::ptrdiff_t m_pNextSibling = 0x48; // CGameSceneNode* + constexpr std::ptrdiff_t m_hParent = 0x70; // CGameSceneNodeHandle + constexpr std::ptrdiff_t m_vecOrigin = 0x80; // CNetworkOriginCellCoordQuantizedVector + constexpr std::ptrdiff_t m_angRotation = 0xB8; // QAngle + constexpr std::ptrdiff_t m_flScale = 0xC4; // float + constexpr std::ptrdiff_t m_vecAbsOrigin = 0xC8; // Vector + constexpr std::ptrdiff_t m_angAbsRotation = 0xD4; // QAngle + constexpr std::ptrdiff_t m_flAbsScale = 0xE0; // float + constexpr std::ptrdiff_t m_nParentAttachmentOrBone = 0xE4; // int16_t + constexpr std::ptrdiff_t m_bDebugAbsOriginChanges = 0xE6; // bool + constexpr std::ptrdiff_t m_bDormant = 0xE7; // bool + constexpr std::ptrdiff_t m_bForceParentToBeNetworked = 0xE8; // bool + constexpr std::ptrdiff_t m_bDirtyHierarchy = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bDirtyBoneMergeInfo = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNetworkedPositionChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNetworkedAnglesChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNetworkedScaleChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bWillBeCallingPostDataUpdate = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNotifyBoneTransformsChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bBoneMergeFlex = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_nLatchAbsOrigin = 0x0; // bitfield:2 + constexpr std::ptrdiff_t m_bDirtyBoneMergeBoneToRoot = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_nHierarchicalDepth = 0xEB; // uint8_t + constexpr std::ptrdiff_t m_nHierarchyType = 0xEC; // uint8_t + constexpr std::ptrdiff_t m_nDoNotSetAnimTimeInInvalidatePhysicsCount = 0xED; // uint8_t + constexpr std::ptrdiff_t m_name = 0xF0; // CUtlStringToken + constexpr std::ptrdiff_t m_hierarchyAttachName = 0x130; // CUtlStringToken + constexpr std::ptrdiff_t m_flZOffset = 0x134; // float + constexpr std::ptrdiff_t m_vRenderOrigin = 0x138; // Vector +} + +namespace CGameSceneNodeHandle { + constexpr std::ptrdiff_t m_hOwner = 0x8; // CEntityHandle + constexpr std::ptrdiff_t m_name = 0xC; // CUtlStringToken +} + +namespace CGlobalLightBase { + constexpr std::ptrdiff_t m_bSpotLight = 0x10; // bool + constexpr std::ptrdiff_t m_SpotLightOrigin = 0x14; // Vector + constexpr std::ptrdiff_t m_SpotLightAngles = 0x20; // QAngle + constexpr std::ptrdiff_t m_ShadowDirection = 0x2C; // Vector + constexpr std::ptrdiff_t m_AmbientDirection = 0x38; // Vector + constexpr std::ptrdiff_t m_SpecularDirection = 0x44; // Vector + constexpr std::ptrdiff_t m_InspectorSpecularDirection = 0x50; // Vector + constexpr std::ptrdiff_t m_flSpecularPower = 0x5C; // float + constexpr std::ptrdiff_t m_flSpecularIndependence = 0x60; // float + constexpr std::ptrdiff_t m_SpecularColor = 0x64; // Color + constexpr std::ptrdiff_t m_bStartDisabled = 0x68; // bool + constexpr std::ptrdiff_t m_bEnabled = 0x69; // bool + constexpr std::ptrdiff_t m_LightColor = 0x6A; // Color + constexpr std::ptrdiff_t m_AmbientColor1 = 0x6E; // Color + constexpr std::ptrdiff_t m_AmbientColor2 = 0x72; // Color + constexpr std::ptrdiff_t m_AmbientColor3 = 0x76; // Color + constexpr std::ptrdiff_t m_flSunDistance = 0x7C; // float + constexpr std::ptrdiff_t m_flFOV = 0x80; // float + constexpr std::ptrdiff_t m_flNearZ = 0x84; // float + constexpr std::ptrdiff_t m_flFarZ = 0x88; // float + constexpr std::ptrdiff_t m_bEnableShadows = 0x8C; // bool + constexpr std::ptrdiff_t m_bOldEnableShadows = 0x8D; // bool + constexpr std::ptrdiff_t m_bBackgroundClearNotRequired = 0x8E; // bool + constexpr std::ptrdiff_t m_flCloudScale = 0x90; // float + constexpr std::ptrdiff_t m_flCloud1Speed = 0x94; // float + constexpr std::ptrdiff_t m_flCloud1Direction = 0x98; // float + constexpr std::ptrdiff_t m_flCloud2Speed = 0x9C; // float + constexpr std::ptrdiff_t m_flCloud2Direction = 0xA0; // float + constexpr std::ptrdiff_t m_flAmbientScale1 = 0xB0; // float + constexpr std::ptrdiff_t m_flAmbientScale2 = 0xB4; // float + constexpr std::ptrdiff_t m_flGroundScale = 0xB8; // float + constexpr std::ptrdiff_t m_flLightScale = 0xBC; // float + constexpr std::ptrdiff_t m_flFoWDarkness = 0xC0; // float + constexpr std::ptrdiff_t m_bEnableSeparateSkyboxFog = 0xC4; // bool + constexpr std::ptrdiff_t m_vFowColor = 0xC8; // Vector + constexpr std::ptrdiff_t m_ViewOrigin = 0xD4; // Vector + constexpr std::ptrdiff_t m_ViewAngles = 0xE0; // QAngle + constexpr std::ptrdiff_t m_flViewFoV = 0xEC; // float + constexpr std::ptrdiff_t m_WorldPoints = 0xF0; // Vector[8] + constexpr std::ptrdiff_t m_vFogOffsetLayer0 = 0x4A8; // Vector2D + constexpr std::ptrdiff_t m_vFogOffsetLayer1 = 0x4B0; // Vector2D + constexpr std::ptrdiff_t m_hEnvWind = 0x4B8; // CHandle + constexpr std::ptrdiff_t m_hEnvSky = 0x4BC; // CHandle +} + +namespace CGlowOverlay { + constexpr std::ptrdiff_t m_vPos = 0x8; // Vector + constexpr std::ptrdiff_t m_bDirectional = 0x14; // bool + constexpr std::ptrdiff_t m_vDirection = 0x18; // Vector + constexpr std::ptrdiff_t m_bInSky = 0x24; // bool + constexpr std::ptrdiff_t m_skyObstructionScale = 0x28; // float + constexpr std::ptrdiff_t m_Sprites = 0x30; // CGlowSprite[4] + constexpr std::ptrdiff_t m_nSprites = 0xB0; // int32_t + constexpr std::ptrdiff_t m_flProxyRadius = 0xB4; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0xB8; // float + constexpr std::ptrdiff_t m_flGlowObstructionScale = 0xBC; // float + constexpr std::ptrdiff_t m_bCacheGlowObstruction = 0xC0; // bool + constexpr std::ptrdiff_t m_bCacheSkyObstruction = 0xC1; // bool + constexpr std::ptrdiff_t m_bActivated = 0xC2; // int16_t + constexpr std::ptrdiff_t m_ListIndex = 0xC4; // uint16_t + constexpr std::ptrdiff_t m_queryHandle = 0xC8; // int32_t +} + +namespace CGlowProperty { + constexpr std::ptrdiff_t m_fGlowColor = 0x8; // Vector + constexpr std::ptrdiff_t m_iGlowType = 0x30; // int32_t + constexpr std::ptrdiff_t m_iGlowTeam = 0x34; // int32_t + constexpr std::ptrdiff_t m_nGlowRange = 0x38; // int32_t + constexpr std::ptrdiff_t m_nGlowRangeMin = 0x3C; // int32_t + constexpr std::ptrdiff_t m_glowColorOverride = 0x40; // Color + constexpr std::ptrdiff_t m_bFlashing = 0x44; // bool + constexpr std::ptrdiff_t m_flGlowTime = 0x48; // float + constexpr std::ptrdiff_t m_flGlowStartTime = 0x4C; // float + constexpr std::ptrdiff_t m_bEligibleForScreenHighlight = 0x50; // bool + constexpr std::ptrdiff_t m_bGlowing = 0x51; // bool +} + +namespace CGlowSprite { + constexpr std::ptrdiff_t m_vColor = 0x0; // Vector + constexpr std::ptrdiff_t m_flHorzSize = 0xC; // float + constexpr std::ptrdiff_t m_flVertSize = 0x10; // float + constexpr std::ptrdiff_t m_hMaterial = 0x18; // CStrongHandle +} + +namespace CGrenadeTracer { // C_BaseModelEntity + constexpr std::ptrdiff_t m_flTracerDuration = 0xCE0; // float + constexpr std::ptrdiff_t m_nType = 0xCE4; // GrenadeType_t +} + +namespace CHitboxComponent { // CEntityComponent + constexpr std::ptrdiff_t m_bvDisabledHitGroups = 0x24; // uint32_t[1] +} + +namespace CHostageRescueZone { // CHostageRescueZoneShim +} + +namespace CHostageRescueZoneShim { // C_BaseTrigger +} + +namespace CInfoDynamicShadowHint { // C_PointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x540; // bool + constexpr std::ptrdiff_t m_flRange = 0x544; // float + constexpr std::ptrdiff_t m_nImportance = 0x548; // int32_t + constexpr std::ptrdiff_t m_nLightChoice = 0x54C; // int32_t + constexpr std::ptrdiff_t m_hLight = 0x550; // CHandle +} + +namespace CInfoDynamicShadowHintBox { // CInfoDynamicShadowHint + constexpr std::ptrdiff_t m_vBoxMins = 0x558; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x564; // Vector +} + +namespace CInfoOffscreenPanoramaTexture { // C_PointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x540; // bool + constexpr std::ptrdiff_t m_nResolutionX = 0x544; // int32_t + constexpr std::ptrdiff_t m_nResolutionY = 0x548; // int32_t + constexpr std::ptrdiff_t m_szLayoutFileName = 0x550; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_RenderAttrName = 0x558; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_TargetEntities = 0x560; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_nTargetChangeCount = 0x578; // int32_t + constexpr std::ptrdiff_t m_vecCSSClasses = 0x580; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_bCheckCSSClasses = 0x6F8; // bool +} + +namespace CInfoParticleTarget { // C_PointEntity +} + +namespace CInfoTarget { // C_PointEntity +} + +namespace CInfoWorldLayer { // C_BaseEntity + constexpr std::ptrdiff_t m_pOutputOnEntitiesSpawned = 0x540; // CEntityIOOutput + constexpr std::ptrdiff_t m_worldName = 0x568; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_layerName = 0x570; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bWorldLayerVisible = 0x578; // bool + constexpr std::ptrdiff_t m_bEntitiesSpawned = 0x579; // bool + constexpr std::ptrdiff_t m_bCreateAsChildSpawnGroup = 0x57A; // bool + constexpr std::ptrdiff_t m_hLayerSpawnGroup = 0x57C; // uint32_t + constexpr std::ptrdiff_t m_bWorldLayerActuallyVisible = 0x580; // bool +} + +namespace CInterpolatedValue { + constexpr std::ptrdiff_t m_flStartTime = 0x0; // float + constexpr std::ptrdiff_t m_flEndTime = 0x4; // float + constexpr std::ptrdiff_t m_flStartValue = 0x8; // float + constexpr std::ptrdiff_t m_flEndValue = 0xC; // float + constexpr std::ptrdiff_t m_nInterpType = 0x10; // int32_t +} + +namespace CLightComponent { // CEntityComponent + constexpr std::ptrdiff_t __m_pChainEntity = 0x48; // CNetworkVarChainer + constexpr std::ptrdiff_t m_Color = 0x85; // Color + constexpr std::ptrdiff_t m_SecondaryColor = 0x89; // Color + constexpr std::ptrdiff_t m_flBrightness = 0x90; // float + constexpr std::ptrdiff_t m_flBrightnessScale = 0x94; // float + constexpr std::ptrdiff_t m_flBrightnessMult = 0x98; // float + constexpr std::ptrdiff_t m_flRange = 0x9C; // float + constexpr std::ptrdiff_t m_flFalloff = 0xA0; // float + constexpr std::ptrdiff_t m_flAttenuation0 = 0xA4; // float + constexpr std::ptrdiff_t m_flAttenuation1 = 0xA8; // float + constexpr std::ptrdiff_t m_flAttenuation2 = 0xAC; // float + constexpr std::ptrdiff_t m_flTheta = 0xB0; // float + constexpr std::ptrdiff_t m_flPhi = 0xB4; // float + constexpr std::ptrdiff_t m_hLightCookie = 0xB8; // CStrongHandle + constexpr std::ptrdiff_t m_nCascades = 0xC0; // int32_t + constexpr std::ptrdiff_t m_nCastShadows = 0xC4; // int32_t + constexpr std::ptrdiff_t m_nShadowWidth = 0xC8; // int32_t + constexpr std::ptrdiff_t m_nShadowHeight = 0xCC; // int32_t + constexpr std::ptrdiff_t m_bRenderDiffuse = 0xD0; // bool + constexpr std::ptrdiff_t m_nRenderSpecular = 0xD4; // int32_t + constexpr std::ptrdiff_t m_bRenderTransmissive = 0xD8; // bool + constexpr std::ptrdiff_t m_flOrthoLightWidth = 0xDC; // float + constexpr std::ptrdiff_t m_flOrthoLightHeight = 0xE0; // float + constexpr std::ptrdiff_t m_nStyle = 0xE4; // int32_t + constexpr std::ptrdiff_t m_Pattern = 0xE8; // CUtlString + constexpr std::ptrdiff_t m_nCascadeRenderStaticObjects = 0xF0; // int32_t + constexpr std::ptrdiff_t m_flShadowCascadeCrossFade = 0xF4; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistanceFade = 0xF8; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance0 = 0xFC; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance1 = 0x100; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance2 = 0x104; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance3 = 0x108; // float + constexpr std::ptrdiff_t m_nShadowCascadeResolution0 = 0x10C; // int32_t + constexpr std::ptrdiff_t m_nShadowCascadeResolution1 = 0x110; // int32_t + constexpr std::ptrdiff_t m_nShadowCascadeResolution2 = 0x114; // int32_t + constexpr std::ptrdiff_t m_nShadowCascadeResolution3 = 0x118; // int32_t + constexpr std::ptrdiff_t m_bUsesBakedShadowing = 0x11C; // bool + constexpr std::ptrdiff_t m_nShadowPriority = 0x120; // int32_t + constexpr std::ptrdiff_t m_nBakedShadowIndex = 0x124; // int32_t + constexpr std::ptrdiff_t m_bRenderToCubemaps = 0x128; // bool + constexpr std::ptrdiff_t m_nDirectLight = 0x12C; // int32_t + constexpr std::ptrdiff_t m_nIndirectLight = 0x130; // int32_t + constexpr std::ptrdiff_t m_flFadeMinDist = 0x134; // float + constexpr std::ptrdiff_t m_flFadeMaxDist = 0x138; // float + constexpr std::ptrdiff_t m_flShadowFadeMinDist = 0x13C; // float + constexpr std::ptrdiff_t m_flShadowFadeMaxDist = 0x140; // float + constexpr std::ptrdiff_t m_bEnabled = 0x144; // bool + constexpr std::ptrdiff_t m_bFlicker = 0x145; // bool + constexpr std::ptrdiff_t m_bPrecomputedFieldsValid = 0x146; // bool + constexpr std::ptrdiff_t m_vPrecomputedBoundsMins = 0x148; // Vector + constexpr std::ptrdiff_t m_vPrecomputedBoundsMaxs = 0x154; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBOrigin = 0x160; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBAngles = 0x16C; // QAngle + constexpr std::ptrdiff_t m_vPrecomputedOBBExtent = 0x178; // Vector + constexpr std::ptrdiff_t m_flPrecomputedMaxRange = 0x184; // float + constexpr std::ptrdiff_t m_nFogLightingMode = 0x188; // int32_t + constexpr std::ptrdiff_t m_flFogContributionStength = 0x18C; // float + constexpr std::ptrdiff_t m_flNearClipPlane = 0x190; // float + constexpr std::ptrdiff_t m_SkyColor = 0x194; // Color + constexpr std::ptrdiff_t m_flSkyIntensity = 0x198; // float + constexpr std::ptrdiff_t m_SkyAmbientBounce = 0x19C; // Color + constexpr std::ptrdiff_t m_bUseSecondaryColor = 0x1A0; // bool + constexpr std::ptrdiff_t m_bMixedShadows = 0x1A1; // bool + constexpr std::ptrdiff_t m_flLightStyleStartTime = 0x1A4; // GameTime_t + constexpr std::ptrdiff_t m_flCapsuleLength = 0x1A8; // float + constexpr std::ptrdiff_t m_flMinRoughness = 0x1AC; // float +} + +namespace CLogicRelay { // CLogicalEntity + constexpr std::ptrdiff_t m_OnTrigger = 0x540; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnSpawn = 0x568; // CEntityIOOutput + constexpr std::ptrdiff_t m_bDisabled = 0x590; // bool + constexpr std::ptrdiff_t m_bWaitForRefire = 0x591; // bool + constexpr std::ptrdiff_t m_bTriggerOnce = 0x592; // bool + constexpr std::ptrdiff_t m_bFastRetrigger = 0x593; // bool + constexpr std::ptrdiff_t m_bPassthoughCaller = 0x594; // bool +} + +namespace CLogicalEntity { // C_BaseEntity +} + +namespace CModelState { + constexpr std::ptrdiff_t m_hModel = 0xA0; // CStrongHandle + constexpr std::ptrdiff_t m_ModelName = 0xA8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bClientClothCreationSuppressed = 0xE8; // bool + constexpr std::ptrdiff_t m_MeshGroupMask = 0x180; // uint64_t + constexpr std::ptrdiff_t m_nIdealMotionType = 0x222; // int8_t + constexpr std::ptrdiff_t m_nForceLOD = 0x223; // int8_t + constexpr std::ptrdiff_t m_nClothUpdateFlags = 0x224; // int8_t +} + +namespace CNetworkedSequenceOperation { + constexpr std::ptrdiff_t m_hSequence = 0x8; // HSequence + constexpr std::ptrdiff_t m_flPrevCycle = 0xC; // float + constexpr std::ptrdiff_t m_flCycle = 0x10; // float + constexpr std::ptrdiff_t m_flWeight = 0x14; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_bSequenceChangeNetworked = 0x1C; // bool + constexpr std::ptrdiff_t m_bDiscontinuity = 0x1D; // bool + constexpr std::ptrdiff_t m_flPrevCycleFromDiscontinuity = 0x20; // float + constexpr std::ptrdiff_t m_flPrevCycleForAnimEventDetection = 0x24; // float +} + +namespace CPlayerSprayDecalRenderHelper { +} + +namespace CPlayer_AutoaimServices { // CPlayerPawnComponent +} + +namespace CPlayer_CameraServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_vecCsViewPunchAngle = 0x40; // QAngle + constexpr std::ptrdiff_t m_nCsViewPunchAngleTick = 0x4C; // GameTick_t + constexpr std::ptrdiff_t m_flCsViewPunchAngleTickRatio = 0x50; // float + constexpr std::ptrdiff_t m_PlayerFog = 0x58; // C_fogplayerparams_t + constexpr std::ptrdiff_t m_hColorCorrectionCtrl = 0x98; // CHandle + constexpr std::ptrdiff_t m_hViewEntity = 0x9C; // CHandle + constexpr std::ptrdiff_t m_hTonemapController = 0xA0; // CHandle + constexpr std::ptrdiff_t m_audio = 0xA8; // audioparams_t + constexpr std::ptrdiff_t m_PostProcessingVolumes = 0x120; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_flOldPlayerZ = 0x138; // float + constexpr std::ptrdiff_t m_flOldPlayerViewOffsetZ = 0x13C; // float + constexpr std::ptrdiff_t m_CurrentFog = 0x140; // fogparams_t + constexpr std::ptrdiff_t m_hOldFogController = 0x1A8; // CHandle + constexpr std::ptrdiff_t m_bOverrideFogColor = 0x1AC; // bool[5] + constexpr std::ptrdiff_t m_OverrideFogColor = 0x1B1; // Color[5] + constexpr std::ptrdiff_t m_bOverrideFogStartEnd = 0x1C5; // bool[5] + constexpr std::ptrdiff_t m_fOverrideFogStart = 0x1CC; // float[5] + constexpr std::ptrdiff_t m_fOverrideFogEnd = 0x1E0; // float[5] + constexpr std::ptrdiff_t m_hActivePostProcessingVolume = 0x1F4; // CHandle + constexpr std::ptrdiff_t m_angDemoViewAngles = 0x1F8; // QAngle +} + +namespace CPlayer_FlashlightServices { // CPlayerPawnComponent +} + +namespace CPlayer_ItemServices { // CPlayerPawnComponent +} + +namespace CPlayer_MovementServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_nImpulse = 0x40; // int32_t + constexpr std::ptrdiff_t m_nButtons = 0x48; // CInButtonState + constexpr std::ptrdiff_t m_nQueuedButtonDownMask = 0x68; // uint64_t + constexpr std::ptrdiff_t m_nQueuedButtonChangeMask = 0x70; // uint64_t + constexpr std::ptrdiff_t m_nButtonDoublePressed = 0x78; // uint64_t + constexpr std::ptrdiff_t m_pButtonPressedCmdNumber = 0x80; // uint32_t[64] + constexpr std::ptrdiff_t m_nLastCommandNumberProcessed = 0x180; // uint32_t + constexpr std::ptrdiff_t m_nToggleButtonDownMask = 0x188; // uint64_t + constexpr std::ptrdiff_t m_flMaxspeed = 0x190; // float + constexpr std::ptrdiff_t m_arrForceSubtickMoveWhen = 0x194; // float[4] + constexpr std::ptrdiff_t m_flForwardMove = 0x1A4; // float + constexpr std::ptrdiff_t m_flLeftMove = 0x1A8; // float + constexpr std::ptrdiff_t m_flUpMove = 0x1AC; // float + constexpr std::ptrdiff_t m_vecLastMovementImpulses = 0x1B0; // Vector + constexpr std::ptrdiff_t m_vecOldViewAngles = 0x1BC; // QAngle +} + +namespace CPlayer_MovementServices_Humanoid { // CPlayer_MovementServices + constexpr std::ptrdiff_t m_flStepSoundTime = 0x1D0; // float + constexpr std::ptrdiff_t m_flFallVelocity = 0x1D4; // float + constexpr std::ptrdiff_t m_bInCrouch = 0x1D8; // bool + constexpr std::ptrdiff_t m_nCrouchState = 0x1DC; // uint32_t + constexpr std::ptrdiff_t m_flCrouchTransitionStartTime = 0x1E0; // GameTime_t + constexpr std::ptrdiff_t m_bDucked = 0x1E4; // bool + constexpr std::ptrdiff_t m_bDucking = 0x1E5; // bool + constexpr std::ptrdiff_t m_bInDuckJump = 0x1E6; // bool + constexpr std::ptrdiff_t m_groundNormal = 0x1E8; // Vector + constexpr std::ptrdiff_t m_flSurfaceFriction = 0x1F4; // float + constexpr std::ptrdiff_t m_surfaceProps = 0x1F8; // CUtlStringToken + constexpr std::ptrdiff_t m_nStepside = 0x208; // int32_t +} + +namespace CPlayer_ObserverServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_iObserverMode = 0x40; // uint8_t + constexpr std::ptrdiff_t m_hObserverTarget = 0x44; // CHandle + constexpr std::ptrdiff_t m_iObserverLastMode = 0x48; // ObserverMode_t + constexpr std::ptrdiff_t m_bForcedObserverMode = 0x4C; // bool + constexpr std::ptrdiff_t m_flObserverChaseDistance = 0x50; // float + constexpr std::ptrdiff_t m_flObserverChaseDistanceCalcTime = 0x54; // GameTime_t +} + +namespace CPlayer_UseServices { // CPlayerPawnComponent +} + +namespace CPlayer_ViewModelServices { // CPlayerPawnComponent +} + +namespace CPlayer_WaterServices { // CPlayerPawnComponent +} + +namespace CPlayer_WeaponServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_bAllowSwitchToNoWeapon = 0x40; // bool + constexpr std::ptrdiff_t m_hMyWeapons = 0x48; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_hActiveWeapon = 0x60; // CHandle + constexpr std::ptrdiff_t m_hLastWeapon = 0x64; // CHandle + constexpr std::ptrdiff_t m_iAmmo = 0x68; // uint16_t[32] +} + +namespace CPointOffScreenIndicatorUi { // C_PointClientUIWorldPanel + constexpr std::ptrdiff_t m_bBeenEnabled = 0xF20; // bool + constexpr std::ptrdiff_t m_bHide = 0xF21; // bool + constexpr std::ptrdiff_t m_flSeenTargetTime = 0xF24; // float + constexpr std::ptrdiff_t m_pTargetPanel = 0xF28; // C_PointClientUIWorldPanel* +} + +namespace CPointTemplate { // CLogicalEntity + constexpr std::ptrdiff_t m_iszWorldName = 0x540; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSource2EntityLumpName = 0x548; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszEntityFilterName = 0x550; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flTimeoutInterval = 0x558; // float + constexpr std::ptrdiff_t m_bAsynchronouslySpawnEntities = 0x55C; // bool + constexpr std::ptrdiff_t m_pOutputOnSpawned = 0x560; // CEntityIOOutput + constexpr std::ptrdiff_t m_clientOnlyEntityBehavior = 0x588; // PointTemplateClientOnlyEntityBehavior_t + constexpr std::ptrdiff_t m_ownerSpawnGroupType = 0x58C; // PointTemplateOwnerSpawnGroupType_t + constexpr std::ptrdiff_t m_createdSpawnGroupHandles = 0x590; // CUtlVector + constexpr std::ptrdiff_t m_SpawnedEntityHandles = 0x5A8; // CUtlVector + constexpr std::ptrdiff_t m_ScriptSpawnCallback = 0x5C0; // HSCRIPT + constexpr std::ptrdiff_t m_ScriptCallbackScope = 0x5C8; // HSCRIPT +} + +namespace CPrecipitationVData { // CEntitySubclassVDataBase + constexpr std::ptrdiff_t m_szParticlePrecipitationEffect = 0x28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_flInnerDistance = 0x108; // float + constexpr std::ptrdiff_t m_nAttachType = 0x10C; // ParticleAttachment_t + constexpr std::ptrdiff_t m_bBatchSameVolumeType = 0x110; // bool + constexpr std::ptrdiff_t m_nRTEnvCP = 0x114; // int32_t + constexpr std::ptrdiff_t m_nRTEnvCPComponent = 0x118; // int32_t + constexpr std::ptrdiff_t m_szModifier = 0x120; // CUtlString +} + +namespace CProjectedTextureBase { + constexpr std::ptrdiff_t m_hTargetEntity = 0xC; // CHandle + constexpr std::ptrdiff_t m_bState = 0x10; // bool + constexpr std::ptrdiff_t m_bAlwaysUpdate = 0x11; // bool + constexpr std::ptrdiff_t m_flLightFOV = 0x14; // float + constexpr std::ptrdiff_t m_bEnableShadows = 0x18; // bool + constexpr std::ptrdiff_t m_bSimpleProjection = 0x19; // bool + constexpr std::ptrdiff_t m_bLightOnlyTarget = 0x1A; // bool + constexpr std::ptrdiff_t m_bLightWorld = 0x1B; // bool + constexpr std::ptrdiff_t m_bCameraSpace = 0x1C; // bool + constexpr std::ptrdiff_t m_flBrightnessScale = 0x20; // float + constexpr std::ptrdiff_t m_LightColor = 0x24; // Color + constexpr std::ptrdiff_t m_flIntensity = 0x28; // float + constexpr std::ptrdiff_t m_flLinearAttenuation = 0x2C; // float + constexpr std::ptrdiff_t m_flQuadraticAttenuation = 0x30; // float + constexpr std::ptrdiff_t m_bVolumetric = 0x34; // bool + constexpr std::ptrdiff_t m_flVolumetricIntensity = 0x38; // float + constexpr std::ptrdiff_t m_flNoiseStrength = 0x3C; // float + constexpr std::ptrdiff_t m_flFlashlightTime = 0x40; // float + constexpr std::ptrdiff_t m_nNumPlanes = 0x44; // uint32_t + constexpr std::ptrdiff_t m_flPlaneOffset = 0x48; // float + constexpr std::ptrdiff_t m_flColorTransitionTime = 0x4C; // float + constexpr std::ptrdiff_t m_flAmbient = 0x50; // float + constexpr std::ptrdiff_t m_SpotlightTextureName = 0x54; // char[512] + constexpr std::ptrdiff_t m_nSpotlightTextureFrame = 0x254; // int32_t + constexpr std::ptrdiff_t m_nShadowQuality = 0x258; // uint32_t + constexpr std::ptrdiff_t m_flNearZ = 0x25C; // float + constexpr std::ptrdiff_t m_flFarZ = 0x260; // float + constexpr std::ptrdiff_t m_flProjectionSize = 0x264; // float + constexpr std::ptrdiff_t m_flRotation = 0x268; // float + constexpr std::ptrdiff_t m_bFlipHorizontal = 0x26C; // bool +} + +namespace CRenderComponent { // CEntityComponent + constexpr std::ptrdiff_t __m_pChainEntity = 0x10; // CNetworkVarChainer + constexpr std::ptrdiff_t m_bIsRenderingWithViewModels = 0x50; // bool + constexpr std::ptrdiff_t m_nSplitscreenFlags = 0x54; // uint32_t + constexpr std::ptrdiff_t m_bEnableRendering = 0x60; // bool + constexpr std::ptrdiff_t m_bInterpolationReadyToDraw = 0xB0; // bool +} + +namespace CSMatchStats_t { // CSPerRoundStats_t + constexpr std::ptrdiff_t m_iEnemy5Ks = 0x68; // int32_t + constexpr std::ptrdiff_t m_iEnemy4Ks = 0x6C; // int32_t + constexpr std::ptrdiff_t m_iEnemy3Ks = 0x70; // int32_t +} + +namespace CSPerRoundStats_t { + constexpr std::ptrdiff_t m_iKills = 0x30; // int32_t + constexpr std::ptrdiff_t m_iDeaths = 0x34; // int32_t + constexpr std::ptrdiff_t m_iAssists = 0x38; // int32_t + constexpr std::ptrdiff_t m_iDamage = 0x3C; // int32_t + constexpr std::ptrdiff_t m_iEquipmentValue = 0x40; // int32_t + constexpr std::ptrdiff_t m_iMoneySaved = 0x44; // int32_t + constexpr std::ptrdiff_t m_iKillReward = 0x48; // int32_t + constexpr std::ptrdiff_t m_iLiveTime = 0x4C; // int32_t + constexpr std::ptrdiff_t m_iHeadShotKills = 0x50; // int32_t + constexpr std::ptrdiff_t m_iObjective = 0x54; // int32_t + constexpr std::ptrdiff_t m_iCashEarned = 0x58; // int32_t + constexpr std::ptrdiff_t m_iUtilityDamage = 0x5C; // int32_t + constexpr std::ptrdiff_t m_iEnemiesFlashed = 0x60; // int32_t +} + +namespace CScriptComponent { // CEntityComponent + constexpr std::ptrdiff_t m_scriptClassName = 0x30; // CUtlSymbolLarge +} + +namespace CServerOnlyModelEntity { // C_BaseModelEntity +} + +namespace CSkeletonInstance { // CGameSceneNode + constexpr std::ptrdiff_t m_modelState = 0x160; // CModelState + constexpr std::ptrdiff_t m_bIsAnimationEnabled = 0x390; // bool + constexpr std::ptrdiff_t m_bUseParentRenderBounds = 0x391; // bool + constexpr std::ptrdiff_t m_bDisableSolidCollisionsForHierarchy = 0x392; // bool + constexpr std::ptrdiff_t m_bDirtyMotionType = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bIsGeneratingLatchedParentSpaceState = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_materialGroup = 0x394; // CUtlStringToken + constexpr std::ptrdiff_t m_nHitboxSet = 0x398; // uint8_t +} + +namespace CSkyboxReference { // C_BaseEntity + constexpr std::ptrdiff_t m_worldGroupId = 0x540; // WorldGroupId_t + constexpr std::ptrdiff_t m_hSkyCamera = 0x544; // CHandle +} + +namespace CTablet { // C_CSWeaponBase +} + +namespace CTimeline { // IntervalTimer + constexpr std::ptrdiff_t m_flValues = 0x10; // float[64] + constexpr std::ptrdiff_t m_nValueCounts = 0x110; // int32_t[64] + constexpr std::ptrdiff_t m_nBucketCount = 0x210; // int32_t + constexpr std::ptrdiff_t m_flInterval = 0x214; // float + constexpr std::ptrdiff_t m_flFinalValue = 0x218; // float + constexpr std::ptrdiff_t m_nCompressionType = 0x21C; // TimelineCompression_t + constexpr std::ptrdiff_t m_bStopped = 0x220; // bool +} + +namespace CTripWireFire { // C_BaseCSGrenade +} + +namespace CTripWireFireProjectile { // C_BaseGrenade +} + +namespace CWaterSplasher { // C_BaseModelEntity +} + +namespace CWeaponZoneRepulsor { // C_CSWeaponBaseGun +} + +namespace C_AK47 { // C_CSWeaponBaseGun +} + +namespace C_AttributeContainer { // CAttributeManager + constexpr std::ptrdiff_t m_Item = 0x50; // C_EconItemView + constexpr std::ptrdiff_t m_iExternalItemProviderRegisteredToken = 0x498; // int32_t + constexpr std::ptrdiff_t m_ullRegisteredAsItemID = 0x4A0; // uint64_t +} + +namespace C_BarnLight { // C_BaseModelEntity + constexpr std::ptrdiff_t m_bEnabled = 0xCC0; // bool + constexpr std::ptrdiff_t m_nColorMode = 0xCC4; // int32_t + constexpr std::ptrdiff_t m_Color = 0xCC8; // Color + constexpr std::ptrdiff_t m_flColorTemperature = 0xCCC; // float + constexpr std::ptrdiff_t m_flBrightness = 0xCD0; // float + constexpr std::ptrdiff_t m_flBrightnessScale = 0xCD4; // float + constexpr std::ptrdiff_t m_nDirectLight = 0xCD8; // int32_t + constexpr std::ptrdiff_t m_nBakedShadowIndex = 0xCDC; // int32_t + constexpr std::ptrdiff_t m_nLuminaireShape = 0xCE0; // int32_t + constexpr std::ptrdiff_t m_flLuminaireSize = 0xCE4; // float + constexpr std::ptrdiff_t m_flLuminaireAnisotropy = 0xCE8; // float + constexpr std::ptrdiff_t m_LightStyleString = 0xCF0; // CUtlString + constexpr std::ptrdiff_t m_flLightStyleStartTime = 0xCF8; // GameTime_t + constexpr std::ptrdiff_t m_QueuedLightStyleStrings = 0xD00; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_LightStyleEvents = 0xD18; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_LightStyleTargets = 0xD30; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_StyleEvent = 0xD48; // CEntityIOOutput[4] + constexpr std::ptrdiff_t m_hLightCookie = 0xDE8; // CStrongHandle + constexpr std::ptrdiff_t m_flShape = 0xDF0; // float + constexpr std::ptrdiff_t m_flSoftX = 0xDF4; // float + constexpr std::ptrdiff_t m_flSoftY = 0xDF8; // float + constexpr std::ptrdiff_t m_flSkirt = 0xDFC; // float + constexpr std::ptrdiff_t m_flSkirtNear = 0xE00; // float + constexpr std::ptrdiff_t m_vSizeParams = 0xE04; // Vector + constexpr std::ptrdiff_t m_flRange = 0xE10; // float + constexpr std::ptrdiff_t m_vShear = 0xE14; // Vector + constexpr std::ptrdiff_t m_nBakeSpecularToCubemaps = 0xE20; // int32_t + constexpr std::ptrdiff_t m_vBakeSpecularToCubemapsSize = 0xE24; // Vector + constexpr std::ptrdiff_t m_nCastShadows = 0xE30; // int32_t + constexpr std::ptrdiff_t m_nShadowMapSize = 0xE34; // int32_t + constexpr std::ptrdiff_t m_nShadowPriority = 0xE38; // int32_t + constexpr std::ptrdiff_t m_bContactShadow = 0xE3C; // bool + constexpr std::ptrdiff_t m_nBounceLight = 0xE40; // int32_t + constexpr std::ptrdiff_t m_flBounceScale = 0xE44; // float + constexpr std::ptrdiff_t m_flMinRoughness = 0xE48; // float + constexpr std::ptrdiff_t m_vAlternateColor = 0xE4C; // Vector + constexpr std::ptrdiff_t m_fAlternateColorBrightness = 0xE58; // float + constexpr std::ptrdiff_t m_nFog = 0xE5C; // int32_t + constexpr std::ptrdiff_t m_flFogStrength = 0xE60; // float + constexpr std::ptrdiff_t m_nFogShadows = 0xE64; // int32_t + constexpr std::ptrdiff_t m_flFogScale = 0xE68; // float + constexpr std::ptrdiff_t m_flFadeSizeStart = 0xE6C; // float + constexpr std::ptrdiff_t m_flFadeSizeEnd = 0xE70; // float + constexpr std::ptrdiff_t m_flShadowFadeSizeStart = 0xE74; // float + constexpr std::ptrdiff_t m_flShadowFadeSizeEnd = 0xE78; // float + constexpr std::ptrdiff_t m_bPrecomputedFieldsValid = 0xE7C; // bool + constexpr std::ptrdiff_t m_vPrecomputedBoundsMins = 0xE80; // Vector + constexpr std::ptrdiff_t m_vPrecomputedBoundsMaxs = 0xE8C; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBOrigin = 0xE98; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBAngles = 0xEA4; // QAngle + constexpr std::ptrdiff_t m_vPrecomputedOBBExtent = 0xEB0; // Vector +} + +namespace C_BaseButton { // C_BaseToggle + constexpr std::ptrdiff_t m_glowEntity = 0xCC0; // CHandle + constexpr std::ptrdiff_t m_usable = 0xCC4; // bool + constexpr std::ptrdiff_t m_szDisplayText = 0xCC8; // CUtlSymbolLarge +} + +namespace C_BaseCSGrenade { // C_CSWeaponBase + constexpr std::ptrdiff_t m_bClientPredictDelete = 0x1990; // bool + constexpr std::ptrdiff_t m_bRedraw = 0x1991; // bool + constexpr std::ptrdiff_t m_bIsHeldByPlayer = 0x1992; // bool + constexpr std::ptrdiff_t m_bPinPulled = 0x1993; // bool + constexpr std::ptrdiff_t m_bJumpThrow = 0x1994; // bool + constexpr std::ptrdiff_t m_eThrowStatus = 0x1998; // EGrenadeThrowState + constexpr std::ptrdiff_t m_fThrowTime = 0x199C; // GameTime_t + constexpr std::ptrdiff_t m_flThrowStrength = 0x19A0; // float + constexpr std::ptrdiff_t m_flThrowStrengthApproach = 0x19A4; // float + constexpr std::ptrdiff_t m_fDropTime = 0x19A8; // GameTime_t +} + +namespace C_BaseCSGrenadeProjectile { // C_BaseGrenade + constexpr std::ptrdiff_t m_vInitialVelocity = 0x1068; // Vector + constexpr std::ptrdiff_t m_nBounces = 0x1074; // int32_t + constexpr std::ptrdiff_t m_nExplodeEffectIndex = 0x1078; // CStrongHandle + constexpr std::ptrdiff_t m_nExplodeEffectTickBegin = 0x1080; // int32_t + constexpr std::ptrdiff_t m_vecExplodeEffectOrigin = 0x1084; // Vector + constexpr std::ptrdiff_t m_flSpawnTime = 0x1090; // GameTime_t + constexpr std::ptrdiff_t vecLastTrailLinePos = 0x1094; // Vector + constexpr std::ptrdiff_t flNextTrailLineTime = 0x10A0; // GameTime_t + constexpr std::ptrdiff_t m_bExplodeEffectBegan = 0x10A4; // bool + constexpr std::ptrdiff_t m_bCanCreateGrenadeTrail = 0x10A5; // bool + constexpr std::ptrdiff_t m_nSnapshotTrajectoryEffectIndex = 0x10A8; // ParticleIndex_t + constexpr std::ptrdiff_t m_hSnapshotTrajectoryParticleSnapshot = 0x10B0; // CStrongHandle + constexpr std::ptrdiff_t m_arrTrajectoryTrailPoints = 0x10B8; // CUtlVector + constexpr std::ptrdiff_t m_arrTrajectoryTrailPointCreationTimes = 0x10D0; // CUtlVector + constexpr std::ptrdiff_t m_flTrajectoryTrailEffectCreationTime = 0x10E8; // float +} + +namespace C_BaseClientUIEntity { // C_BaseModelEntity + constexpr std::ptrdiff_t m_bEnabled = 0xCC8; // bool + constexpr std::ptrdiff_t m_DialogXMLName = 0xCD0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_PanelClassName = 0xCD8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_PanelID = 0xCE0; // CUtlSymbolLarge +} + +namespace C_BaseCombatCharacter { // C_BaseFlex + constexpr std::ptrdiff_t m_hMyWearables = 0x1018; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_bloodColor = 0x1030; // int32_t + constexpr std::ptrdiff_t m_leftFootAttachment = 0x1034; // AttachmentHandle_t + constexpr std::ptrdiff_t m_rightFootAttachment = 0x1035; // AttachmentHandle_t + constexpr std::ptrdiff_t m_nWaterWakeMode = 0x1038; // C_BaseCombatCharacter::WaterWakeMode_t + constexpr std::ptrdiff_t m_flWaterWorldZ = 0x103C; // float + constexpr std::ptrdiff_t m_flWaterNextTraceTime = 0x1040; // float + constexpr std::ptrdiff_t m_flFieldOfView = 0x1044; // float +} + +namespace C_BaseDoor { // C_BaseToggle + constexpr std::ptrdiff_t m_bIsUsable = 0xCC0; // bool +} + +namespace C_BaseEntity { // CEntityInstance + constexpr std::ptrdiff_t m_CBodyComponent = 0x30; // CBodyComponent* + constexpr std::ptrdiff_t m_NetworkTransmitComponent = 0x38; // CNetworkTransmitComponent + constexpr std::ptrdiff_t m_nLastThinkTick = 0x308; // GameTick_t + constexpr std::ptrdiff_t m_pGameSceneNode = 0x310; // CGameSceneNode* + constexpr std::ptrdiff_t m_pRenderComponent = 0x318; // CRenderComponent* + constexpr std::ptrdiff_t m_pCollision = 0x320; // CCollisionProperty* + constexpr std::ptrdiff_t m_iMaxHealth = 0x328; // int32_t + constexpr std::ptrdiff_t m_iHealth = 0x32C; // int32_t + constexpr std::ptrdiff_t m_lifeState = 0x330; // uint8_t + constexpr std::ptrdiff_t m_bTakesDamage = 0x331; // bool + constexpr std::ptrdiff_t m_nTakeDamageFlags = 0x334; // TakeDamageFlags_t + constexpr std::ptrdiff_t m_ubInterpolationFrame = 0x338; // uint8_t + constexpr std::ptrdiff_t m_hSceneObjectController = 0x33C; // CHandle + constexpr std::ptrdiff_t m_nNoInterpolationTick = 0x340; // int32_t + constexpr std::ptrdiff_t m_nVisibilityNoInterpolationTick = 0x344; // int32_t + constexpr std::ptrdiff_t m_flProxyRandomValue = 0x348; // float + constexpr std::ptrdiff_t m_iEFlags = 0x34C; // int32_t + constexpr std::ptrdiff_t m_nWaterType = 0x350; // uint8_t + constexpr std::ptrdiff_t m_bInterpolateEvenWithNoModel = 0x351; // bool + constexpr std::ptrdiff_t m_bPredictionEligible = 0x352; // bool + constexpr std::ptrdiff_t m_bApplyLayerMatchIDToModel = 0x353; // bool + constexpr std::ptrdiff_t m_tokLayerMatchID = 0x354; // CUtlStringToken + constexpr std::ptrdiff_t m_nSubclassID = 0x358; // CUtlStringToken + constexpr std::ptrdiff_t m_nSimulationTick = 0x368; // int32_t + constexpr std::ptrdiff_t m_iCurrentThinkContext = 0x36C; // int32_t + constexpr std::ptrdiff_t m_aThinkFunctions = 0x370; // CUtlVector + constexpr std::ptrdiff_t m_flAnimTime = 0x388; // float + constexpr std::ptrdiff_t m_flSimulationTime = 0x38C; // float + constexpr std::ptrdiff_t m_nSceneObjectOverrideFlags = 0x390; // uint8_t + constexpr std::ptrdiff_t m_bHasSuccessfullyInterpolated = 0x391; // bool + constexpr std::ptrdiff_t m_bHasAddedVarsToInterpolation = 0x392; // bool + constexpr std::ptrdiff_t m_bRenderEvenWhenNotSuccessfullyInterpolated = 0x393; // bool + constexpr std::ptrdiff_t m_nInterpolationLatchDirtyFlags = 0x394; // int32_t[2] + constexpr std::ptrdiff_t m_ListEntry = 0x39C; // uint16_t[11] + constexpr std::ptrdiff_t m_flCreateTime = 0x3B4; // GameTime_t + constexpr std::ptrdiff_t m_flSpeed = 0x3B8; // float + constexpr std::ptrdiff_t m_EntClientFlags = 0x3BC; // uint16_t + constexpr std::ptrdiff_t m_bClientSideRagdoll = 0x3BE; // bool + constexpr std::ptrdiff_t m_iTeamNum = 0x3BF; // uint8_t + constexpr std::ptrdiff_t m_spawnflags = 0x3C0; // uint32_t + constexpr std::ptrdiff_t m_nNextThinkTick = 0x3C4; // GameTick_t + constexpr std::ptrdiff_t m_fFlags = 0x3C8; // uint32_t + constexpr std::ptrdiff_t m_vecAbsVelocity = 0x3CC; // Vector + constexpr std::ptrdiff_t m_vecVelocity = 0x3D8; // CNetworkVelocityVector + constexpr std::ptrdiff_t m_vecBaseVelocity = 0x408; // Vector + constexpr std::ptrdiff_t m_hEffectEntity = 0x414; // CHandle + constexpr std::ptrdiff_t m_hOwnerEntity = 0x418; // CHandle + constexpr std::ptrdiff_t m_MoveCollide = 0x41C; // MoveCollide_t + constexpr std::ptrdiff_t m_MoveType = 0x41D; // MoveType_t + constexpr std::ptrdiff_t m_flWaterLevel = 0x420; // float + constexpr std::ptrdiff_t m_fEffects = 0x424; // uint32_t + constexpr std::ptrdiff_t m_hGroundEntity = 0x428; // CHandle + constexpr std::ptrdiff_t m_flFriction = 0x42C; // float + constexpr std::ptrdiff_t m_flElasticity = 0x430; // float + constexpr std::ptrdiff_t m_flGravityScale = 0x434; // float + constexpr std::ptrdiff_t m_flTimeScale = 0x438; // float + constexpr std::ptrdiff_t m_bSimulatedEveryTick = 0x43C; // bool + constexpr std::ptrdiff_t m_bAnimatedEveryTick = 0x43D; // bool + constexpr std::ptrdiff_t m_flNavIgnoreUntilTime = 0x440; // GameTime_t + constexpr std::ptrdiff_t m_hThink = 0x444; // uint16_t + constexpr std::ptrdiff_t m_fBBoxVisFlags = 0x450; // uint8_t + constexpr std::ptrdiff_t m_bPredictable = 0x451; // bool + constexpr std::ptrdiff_t m_bRenderWithViewModels = 0x452; // bool + constexpr std::ptrdiff_t m_nSplitUserPlayerPredictionSlot = 0x454; // CSplitScreenSlot + constexpr std::ptrdiff_t m_nFirstPredictableCommand = 0x458; // int32_t + constexpr std::ptrdiff_t m_nLastPredictableCommand = 0x45C; // int32_t + constexpr std::ptrdiff_t m_hOldMoveParent = 0x460; // CHandle + constexpr std::ptrdiff_t m_Particles = 0x468; // CParticleProperty + constexpr std::ptrdiff_t m_vecPredictedScriptFloats = 0x490; // CUtlVector + constexpr std::ptrdiff_t m_vecPredictedScriptFloatIDs = 0x4A8; // CUtlVector + constexpr std::ptrdiff_t m_nNextScriptVarRecordID = 0x4D8; // int32_t + constexpr std::ptrdiff_t m_vecAngVelocity = 0x4E8; // QAngle + constexpr std::ptrdiff_t m_DataChangeEventRef = 0x4F4; // int32_t + constexpr std::ptrdiff_t m_dependencies = 0x4F8; // CUtlVector + constexpr std::ptrdiff_t m_nCreationTick = 0x510; // int32_t + constexpr std::ptrdiff_t m_bAnimTimeChanged = 0x529; // bool + constexpr std::ptrdiff_t m_bSimulationTimeChanged = 0x52A; // bool + constexpr std::ptrdiff_t m_sUniqueHammerID = 0x538; // CUtlString +} + +namespace C_BaseFire { // C_BaseEntity + constexpr std::ptrdiff_t m_flScale = 0x540; // float + constexpr std::ptrdiff_t m_flStartScale = 0x544; // float + constexpr std::ptrdiff_t m_flScaleTime = 0x548; // float + constexpr std::ptrdiff_t m_nFlags = 0x54C; // uint32_t +} + +namespace C_BaseFlex { // CBaseAnimGraph + constexpr std::ptrdiff_t m_flexWeight = 0xE90; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_vLookTargetPosition = 0xEA8; // Vector + constexpr std::ptrdiff_t m_blinktoggle = 0xEC0; // bool + constexpr std::ptrdiff_t m_nLastFlexUpdateFrameCount = 0xF20; // int32_t + constexpr std::ptrdiff_t m_CachedViewTarget = 0xF24; // Vector + constexpr std::ptrdiff_t m_nNextSceneEventId = 0xF30; // uint32_t + constexpr std::ptrdiff_t m_iBlink = 0xF34; // int32_t + constexpr std::ptrdiff_t m_blinktime = 0xF38; // float + constexpr std::ptrdiff_t m_prevblinktoggle = 0xF3C; // bool + constexpr std::ptrdiff_t m_iJawOpen = 0xF40; // int32_t + constexpr std::ptrdiff_t m_flJawOpenAmount = 0xF44; // float + constexpr std::ptrdiff_t m_flBlinkAmount = 0xF48; // float + constexpr std::ptrdiff_t m_iMouthAttachment = 0xF4C; // AttachmentHandle_t + constexpr std::ptrdiff_t m_iEyeAttachment = 0xF4D; // AttachmentHandle_t + constexpr std::ptrdiff_t m_bResetFlexWeightsOnModelChange = 0xF4E; // bool + constexpr std::ptrdiff_t m_nEyeOcclusionRendererBone = 0xF68; // int32_t + constexpr std::ptrdiff_t m_mEyeOcclusionRendererCameraToBoneTransform = 0xF6C; // matrix3x4_t + constexpr std::ptrdiff_t m_vEyeOcclusionRendererHalfExtent = 0xF9C; // Vector + constexpr std::ptrdiff_t m_PhonemeClasses = 0xFB8; // C_BaseFlex::Emphasized_Phoneme[3] +} + +namespace C_BaseFlex_Emphasized_Phoneme { + constexpr std::ptrdiff_t m_sClassName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_flAmount = 0x18; // float + constexpr std::ptrdiff_t m_bRequired = 0x1C; // bool + constexpr std::ptrdiff_t m_bBasechecked = 0x1D; // bool + constexpr std::ptrdiff_t m_bValid = 0x1E; // bool +} + +namespace C_BaseGrenade { // C_BaseFlex + constexpr std::ptrdiff_t m_bHasWarnedAI = 0x1018; // bool + constexpr std::ptrdiff_t m_bIsSmokeGrenade = 0x1019; // bool + constexpr std::ptrdiff_t m_bIsLive = 0x101A; // bool + constexpr std::ptrdiff_t m_DmgRadius = 0x101C; // float + constexpr std::ptrdiff_t m_flDetonateTime = 0x1020; // GameTime_t + constexpr std::ptrdiff_t m_flWarnAITime = 0x1024; // float + constexpr std::ptrdiff_t m_flDamage = 0x1028; // float + constexpr std::ptrdiff_t m_iszBounceSound = 0x1030; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_ExplosionSound = 0x1038; // CUtlString + constexpr std::ptrdiff_t m_hThrower = 0x1044; // CHandle + constexpr std::ptrdiff_t m_flNextAttack = 0x105C; // GameTime_t + constexpr std::ptrdiff_t m_hOriginalThrower = 0x1060; // CHandle +} + +namespace C_BaseModelEntity { // C_BaseEntity + constexpr std::ptrdiff_t m_CRenderComponent = 0xA10; // CRenderComponent* + constexpr std::ptrdiff_t m_CHitboxComponent = 0xA18; // CHitboxComponent + constexpr std::ptrdiff_t m_bInitModelEffects = 0xA60; // bool + constexpr std::ptrdiff_t m_bIsStaticProp = 0xA61; // bool + constexpr std::ptrdiff_t m_nLastAddDecal = 0xA64; // int32_t + constexpr std::ptrdiff_t m_nDecalsAdded = 0xA68; // int32_t + constexpr std::ptrdiff_t m_iOldHealth = 0xA6C; // int32_t + constexpr std::ptrdiff_t m_nRenderMode = 0xA70; // RenderMode_t + constexpr std::ptrdiff_t m_nRenderFX = 0xA71; // RenderFx_t + constexpr std::ptrdiff_t m_bAllowFadeInView = 0xA72; // bool + constexpr std::ptrdiff_t m_clrRender = 0xA73; // Color + constexpr std::ptrdiff_t m_vecRenderAttributes = 0xA78; // C_UtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_bRenderToCubemaps = 0xAE0; // bool + constexpr std::ptrdiff_t m_Collision = 0xAE8; // CCollisionProperty + constexpr std::ptrdiff_t m_Glow = 0xB98; // CGlowProperty + constexpr std::ptrdiff_t m_flGlowBackfaceMult = 0xBF0; // float + constexpr std::ptrdiff_t m_fadeMinDist = 0xBF4; // float + constexpr std::ptrdiff_t m_fadeMaxDist = 0xBF8; // float + constexpr std::ptrdiff_t m_flFadeScale = 0xBFC; // float + constexpr std::ptrdiff_t m_flShadowStrength = 0xC00; // float + constexpr std::ptrdiff_t m_nObjectCulling = 0xC04; // uint8_t + constexpr std::ptrdiff_t m_nAddDecal = 0xC08; // int32_t + constexpr std::ptrdiff_t m_vDecalPosition = 0xC0C; // Vector + constexpr std::ptrdiff_t m_vDecalForwardAxis = 0xC18; // Vector + constexpr std::ptrdiff_t m_flDecalHealBloodRate = 0xC24; // float + constexpr std::ptrdiff_t m_flDecalHealHeightRate = 0xC28; // float + constexpr std::ptrdiff_t m_ConfigEntitiesToPropagateMaterialDecalsTo = 0xC30; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_vecViewOffset = 0xC48; // CNetworkViewOffsetVector + constexpr std::ptrdiff_t m_pClientAlphaProperty = 0xC78; // CClientAlphaProperty* + constexpr std::ptrdiff_t m_ClientOverrideTint = 0xC80; // Color + constexpr std::ptrdiff_t m_bUseClientOverrideTint = 0xC84; // bool +} + +namespace C_BasePlayerPawn { // C_BaseCombatCharacter + constexpr std::ptrdiff_t m_pWeaponServices = 0x10A8; // CPlayer_WeaponServices* + constexpr std::ptrdiff_t m_pItemServices = 0x10B0; // CPlayer_ItemServices* + constexpr std::ptrdiff_t m_pAutoaimServices = 0x10B8; // CPlayer_AutoaimServices* + constexpr std::ptrdiff_t m_pObserverServices = 0x10C0; // CPlayer_ObserverServices* + constexpr std::ptrdiff_t m_pWaterServices = 0x10C8; // CPlayer_WaterServices* + constexpr std::ptrdiff_t m_pUseServices = 0x10D0; // CPlayer_UseServices* + constexpr std::ptrdiff_t m_pFlashlightServices = 0x10D8; // CPlayer_FlashlightServices* + constexpr std::ptrdiff_t m_pCameraServices = 0x10E0; // CPlayer_CameraServices* + constexpr std::ptrdiff_t m_pMovementServices = 0x10E8; // CPlayer_MovementServices* + constexpr std::ptrdiff_t m_ServerViewAngleChanges = 0x10F8; // C_UtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_nHighestConsumedServerViewAngleChangeIndex = 0x1148; // uint32_t + constexpr std::ptrdiff_t v_angle = 0x114C; // QAngle + constexpr std::ptrdiff_t v_anglePrevious = 0x1158; // QAngle + constexpr std::ptrdiff_t m_iHideHUD = 0x1164; // uint32_t + constexpr std::ptrdiff_t m_skybox3d = 0x1168; // sky3dparams_t + constexpr std::ptrdiff_t m_flDeathTime = 0x11F8; // GameTime_t + constexpr std::ptrdiff_t m_vecPredictionError = 0x11FC; // Vector + constexpr std::ptrdiff_t m_flPredictionErrorTime = 0x1208; // GameTime_t + constexpr std::ptrdiff_t m_vecLastCameraSetupLocalOrigin = 0x120C; // Vector + constexpr std::ptrdiff_t m_flLastCameraSetupTime = 0x1218; // GameTime_t + constexpr std::ptrdiff_t m_flFOVSensitivityAdjust = 0x121C; // float + constexpr std::ptrdiff_t m_flMouseSensitivity = 0x1220; // float + constexpr std::ptrdiff_t m_vOldOrigin = 0x1224; // Vector + constexpr std::ptrdiff_t m_flOldSimulationTime = 0x1230; // float + constexpr std::ptrdiff_t m_nLastExecutedCommandNumber = 0x1234; // int32_t + constexpr std::ptrdiff_t m_nLastExecutedCommandTick = 0x1238; // int32_t + constexpr std::ptrdiff_t m_hController = 0x123C; // CHandle + constexpr std::ptrdiff_t m_bIsSwappingToPredictableController = 0x1240; // bool +} + +namespace C_BasePlayerWeapon { // C_EconEntity + constexpr std::ptrdiff_t m_nNextPrimaryAttackTick = 0x1560; // GameTick_t + constexpr std::ptrdiff_t m_flNextPrimaryAttackTickRatio = 0x1564; // float + constexpr std::ptrdiff_t m_nNextSecondaryAttackTick = 0x1568; // GameTick_t + constexpr std::ptrdiff_t m_flNextSecondaryAttackTickRatio = 0x156C; // float + constexpr std::ptrdiff_t m_iClip1 = 0x1570; // int32_t + constexpr std::ptrdiff_t m_iClip2 = 0x1574; // int32_t + constexpr std::ptrdiff_t m_pReserveAmmo = 0x1578; // int32_t[2] +} + +namespace C_BasePropDoor { // C_DynamicProp + constexpr std::ptrdiff_t m_eDoorState = 0x10F8; // DoorState_t + constexpr std::ptrdiff_t m_modelChanged = 0x10FC; // bool + constexpr std::ptrdiff_t m_bLocked = 0x10FD; // bool + constexpr std::ptrdiff_t m_closedPosition = 0x1100; // Vector + constexpr std::ptrdiff_t m_closedAngles = 0x110C; // QAngle + constexpr std::ptrdiff_t m_hMaster = 0x1118; // CHandle + constexpr std::ptrdiff_t m_vWhereToSetLightingOrigin = 0x111C; // Vector +} + +namespace C_BaseToggle { // C_BaseModelEntity +} + +namespace C_BaseTrigger { // C_BaseToggle + constexpr std::ptrdiff_t m_bDisabled = 0xCC0; // bool + constexpr std::ptrdiff_t m_bClientSidePredicted = 0xCC1; // bool +} + +namespace C_BaseViewModel { // CBaseAnimGraph + constexpr std::ptrdiff_t m_vecLastFacing = 0xE88; // Vector + constexpr std::ptrdiff_t m_nViewModelIndex = 0xE94; // uint32_t + constexpr std::ptrdiff_t m_nAnimationParity = 0xE98; // uint32_t + constexpr std::ptrdiff_t m_flAnimationStartTime = 0xE9C; // float + constexpr std::ptrdiff_t m_hWeapon = 0xEA0; // CHandle + constexpr std::ptrdiff_t m_sVMName = 0xEA8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sAnimationPrefix = 0xEB0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hWeaponModel = 0xEB8; // CHandle + constexpr std::ptrdiff_t m_iCameraAttachment = 0xEBC; // AttachmentHandle_t + constexpr std::ptrdiff_t m_vecLastCameraAngles = 0xEC0; // QAngle + constexpr std::ptrdiff_t m_previousElapsedDuration = 0xECC; // float + constexpr std::ptrdiff_t m_previousCycle = 0xED0; // float + constexpr std::ptrdiff_t m_nOldAnimationParity = 0xED4; // int32_t + constexpr std::ptrdiff_t m_hOldLayerSequence = 0xED8; // HSequence + constexpr std::ptrdiff_t m_oldLayer = 0xEDC; // int32_t + constexpr std::ptrdiff_t m_oldLayerStartTime = 0xEE0; // float + constexpr std::ptrdiff_t m_hControlPanel = 0xEE4; // CHandle +} + +namespace C_Beam { // C_BaseModelEntity + constexpr std::ptrdiff_t m_flFrameRate = 0xCC0; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0xCC4; // float + constexpr std::ptrdiff_t m_flFireTime = 0xCC8; // GameTime_t + constexpr std::ptrdiff_t m_flDamage = 0xCCC; // float + constexpr std::ptrdiff_t m_nNumBeamEnts = 0xCD0; // uint8_t + constexpr std::ptrdiff_t m_queryHandleHalo = 0xCD4; // int32_t + constexpr std::ptrdiff_t m_hBaseMaterial = 0xCF8; // CStrongHandle + constexpr std::ptrdiff_t m_nHaloIndex = 0xD00; // CStrongHandle + constexpr std::ptrdiff_t m_nBeamType = 0xD08; // BeamType_t + constexpr std::ptrdiff_t m_nBeamFlags = 0xD0C; // uint32_t + constexpr std::ptrdiff_t m_hAttachEntity = 0xD10; // CHandle[10] + constexpr std::ptrdiff_t m_nAttachIndex = 0xD38; // AttachmentHandle_t[10] + constexpr std::ptrdiff_t m_fWidth = 0xD44; // float + constexpr std::ptrdiff_t m_fEndWidth = 0xD48; // float + constexpr std::ptrdiff_t m_fFadeLength = 0xD4C; // float + constexpr std::ptrdiff_t m_fHaloScale = 0xD50; // float + constexpr std::ptrdiff_t m_fAmplitude = 0xD54; // float + constexpr std::ptrdiff_t m_fStartFrame = 0xD58; // float + constexpr std::ptrdiff_t m_fSpeed = 0xD5C; // float + constexpr std::ptrdiff_t m_flFrame = 0xD60; // float + constexpr std::ptrdiff_t m_nClipStyle = 0xD64; // BeamClipStyle_t + constexpr std::ptrdiff_t m_bTurnedOff = 0xD68; // bool + constexpr std::ptrdiff_t m_vecEndPos = 0xD6C; // Vector + constexpr std::ptrdiff_t m_hEndEntity = 0xD78; // CHandle +} + +namespace C_Breakable { // C_BaseModelEntity +} + +namespace C_BreakableProp { // CBaseProp + constexpr std::ptrdiff_t m_OnBreak = 0xEC8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnHealthChanged = 0xEF0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnTakeDamage = 0xF18; // CEntityIOOutput + constexpr std::ptrdiff_t m_impactEnergyScale = 0xF40; // float + constexpr std::ptrdiff_t m_iMinHealthDmg = 0xF44; // int32_t + constexpr std::ptrdiff_t m_flPressureDelay = 0xF48; // float + constexpr std::ptrdiff_t m_hBreaker = 0xF4C; // CHandle + constexpr std::ptrdiff_t m_PerformanceMode = 0xF50; // PerformanceMode_t + constexpr std::ptrdiff_t m_flDmgModBullet = 0xF54; // float + constexpr std::ptrdiff_t m_flDmgModClub = 0xF58; // float + constexpr std::ptrdiff_t m_flDmgModExplosive = 0xF5C; // float + constexpr std::ptrdiff_t m_flDmgModFire = 0xF60; // float + constexpr std::ptrdiff_t m_iszPhysicsDamageTableName = 0xF68; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszBasePropData = 0xF70; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iInteractions = 0xF78; // int32_t + constexpr std::ptrdiff_t m_flPreventDamageBeforeTime = 0xF7C; // GameTime_t + constexpr std::ptrdiff_t m_bHasBreakPiecesOrCommands = 0xF80; // bool + constexpr std::ptrdiff_t m_explodeDamage = 0xF84; // float + constexpr std::ptrdiff_t m_explodeRadius = 0xF88; // float + constexpr std::ptrdiff_t m_explosionDelay = 0xF90; // float + constexpr std::ptrdiff_t m_explosionBuildupSound = 0xF98; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_explosionCustomEffect = 0xFA0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_explosionCustomSound = 0xFA8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_explosionModifier = 0xFB0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hPhysicsAttacker = 0xFB8; // CHandle + constexpr std::ptrdiff_t m_flLastPhysicsInfluenceTime = 0xFBC; // GameTime_t + constexpr std::ptrdiff_t m_flDefaultFadeScale = 0xFC0; // float + constexpr std::ptrdiff_t m_hLastAttacker = 0xFC4; // CHandle + constexpr std::ptrdiff_t m_hFlareEnt = 0xFC8; // CHandle + constexpr std::ptrdiff_t m_noGhostCollision = 0xFCC; // bool +} + +namespace C_BulletHitModel { // CBaseAnimGraph + constexpr std::ptrdiff_t m_matLocal = 0xE80; // matrix3x4_t + constexpr std::ptrdiff_t m_iBoneIndex = 0xEB0; // int32_t + constexpr std::ptrdiff_t m_hPlayerParent = 0xEB4; // CHandle + constexpr std::ptrdiff_t m_bIsHit = 0xEB8; // bool + constexpr std::ptrdiff_t m_flTimeCreated = 0xEBC; // float + constexpr std::ptrdiff_t m_vecStartPos = 0xEC0; // Vector +} + +namespace C_C4 { // C_CSWeaponBase + constexpr std::ptrdiff_t m_szScreenText = 0x1990; // char[32] + constexpr std::ptrdiff_t m_bombdroppedlightParticleIndex = 0x19B0; // ParticleIndex_t + constexpr std::ptrdiff_t m_bStartedArming = 0x19B4; // bool + constexpr std::ptrdiff_t m_fArmedTime = 0x19B8; // GameTime_t + constexpr std::ptrdiff_t m_bBombPlacedAnimation = 0x19BC; // bool + constexpr std::ptrdiff_t m_bIsPlantingViaUse = 0x19BD; // bool + constexpr std::ptrdiff_t m_entitySpottedState = 0x19C0; // EntitySpottedState_t + constexpr std::ptrdiff_t m_nSpotRules = 0x19D8; // int32_t + constexpr std::ptrdiff_t m_bPlayedArmingBeeps = 0x19DC; // bool[7] + constexpr std::ptrdiff_t m_bBombPlanted = 0x19E3; // bool + constexpr std::ptrdiff_t m_bDroppedFromDeath = 0x19E4; // bool +} + +namespace C_CSGOViewModel { // C_PredictedViewModel + constexpr std::ptrdiff_t m_bShouldIgnoreOffsetAndAccuracy = 0xF10; // bool + constexpr std::ptrdiff_t m_nWeaponParity = 0xF14; // uint32_t + constexpr std::ptrdiff_t m_nOldWeaponParity = 0xF18; // uint32_t + constexpr std::ptrdiff_t m_nLastKnownAssociatedWeaponEntIndex = 0xF1C; // CEntityIndex + constexpr std::ptrdiff_t m_bNeedToQueueHighResComposite = 0xF20; // bool + constexpr std::ptrdiff_t m_vLoweredWeaponOffset = 0xF64; // QAngle +} + +namespace C_CSGO_CounterTerroristTeamIntroCamera { // C_CSGO_TeamPreviewCamera +} + +namespace C_CSGO_CounterTerroristWingmanIntroCamera { // C_CSGO_TeamPreviewCamera +} + +namespace C_CSGO_EndOfMatchCamera { // C_CSGO_TeamPreviewCamera +} + +namespace C_CSGO_EndOfMatchCharacterPosition { // C_CSGO_TeamPreviewCharacterPosition +} + +namespace C_CSGO_EndOfMatchLineupEnd { // C_CSGO_EndOfMatchLineupEndpoint +} + +namespace C_CSGO_EndOfMatchLineupEndpoint { // C_BaseEntity +} + +namespace C_CSGO_EndOfMatchLineupStart { // C_CSGO_EndOfMatchLineupEndpoint +} + +namespace C_CSGO_MapPreviewCameraPath { // C_BaseEntity + constexpr std::ptrdiff_t m_flZFar = 0x540; // float + constexpr std::ptrdiff_t m_flZNear = 0x544; // float + constexpr std::ptrdiff_t m_bLoop = 0x548; // bool + constexpr std::ptrdiff_t m_bVerticalFOV = 0x549; // bool + constexpr std::ptrdiff_t m_bConstantSpeed = 0x54A; // bool + constexpr std::ptrdiff_t m_flDuration = 0x54C; // float + constexpr std::ptrdiff_t m_flPathLength = 0x590; // float + constexpr std::ptrdiff_t m_flPathDuration = 0x594; // float +} + +namespace C_CSGO_MapPreviewCameraPathNode { // C_BaseEntity + constexpr std::ptrdiff_t m_szParentPathUniqueID = 0x540; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nPathIndex = 0x548; // int32_t + constexpr std::ptrdiff_t m_vInTangentLocal = 0x54C; // Vector + constexpr std::ptrdiff_t m_vOutTangentLocal = 0x558; // Vector + constexpr std::ptrdiff_t m_flFOV = 0x564; // float + constexpr std::ptrdiff_t m_flSpeed = 0x568; // float + constexpr std::ptrdiff_t m_flEaseIn = 0x56C; // float + constexpr std::ptrdiff_t m_flEaseOut = 0x570; // float + constexpr std::ptrdiff_t m_vInTangentWorld = 0x574; // Vector + constexpr std::ptrdiff_t m_vOutTangentWorld = 0x580; // Vector +} + +namespace C_CSGO_PreviewModel { // C_BaseFlex + constexpr std::ptrdiff_t m_animgraph = 0x1018; // CUtlString + constexpr std::ptrdiff_t m_animgraphCharacterModeString = 0x1020; // CUtlString + constexpr std::ptrdiff_t m_defaultAnim = 0x1028; // CUtlString + constexpr std::ptrdiff_t m_nDefaultAnimLoopMode = 0x1030; // AnimLoopMode_t + constexpr std::ptrdiff_t m_flInitialModelScale = 0x1034; // float +} + +namespace C_CSGO_PreviewModelAlias_csgo_item_previewmodel { // C_CSGO_PreviewModel +} + +namespace C_CSGO_PreviewPlayer { // C_CSPlayerPawn + constexpr std::ptrdiff_t m_animgraph = 0x22E0; // CUtlString + constexpr std::ptrdiff_t m_animgraphCharacterModeString = 0x22E8; // CUtlString + constexpr std::ptrdiff_t m_flInitialModelScale = 0x22F0; // float +} + +namespace C_CSGO_PreviewPlayerAlias_csgo_player_previewmodel { // C_CSGO_PreviewPlayer +} + +namespace C_CSGO_TeamIntroCharacterPosition { // C_CSGO_TeamPreviewCharacterPosition +} + +namespace C_CSGO_TeamIntroCounterTerroristPosition { // C_CSGO_TeamIntroCharacterPosition +} + +namespace C_CSGO_TeamIntroTerroristPosition { // C_CSGO_TeamIntroCharacterPosition +} + +namespace C_CSGO_TeamPreviewCamera { // C_CSGO_MapPreviewCameraPath + constexpr std::ptrdiff_t m_nVariant = 0x5A0; // int32_t + constexpr std::ptrdiff_t m_bDofEnabled = 0x5A4; // bool + constexpr std::ptrdiff_t m_flDofNearBlurry = 0x5A8; // float + constexpr std::ptrdiff_t m_flDofNearCrisp = 0x5AC; // float + constexpr std::ptrdiff_t m_flDofFarCrisp = 0x5B0; // float + constexpr std::ptrdiff_t m_flDofFarBlurry = 0x5B4; // float + constexpr std::ptrdiff_t m_flDofTiltToGround = 0x5B8; // float +} + +namespace C_CSGO_TeamPreviewCharacterPosition { // C_BaseEntity + constexpr std::ptrdiff_t m_nVariant = 0x540; // int32_t + constexpr std::ptrdiff_t m_nRandom = 0x544; // int32_t + constexpr std::ptrdiff_t m_nOrdinal = 0x548; // int32_t + constexpr std::ptrdiff_t m_sWeaponName = 0x550; // CUtlString + constexpr std::ptrdiff_t m_xuid = 0x558; // uint64_t + constexpr std::ptrdiff_t m_agentItem = 0x560; // C_EconItemView + constexpr std::ptrdiff_t m_glovesItem = 0x9A8; // C_EconItemView + constexpr std::ptrdiff_t m_weaponItem = 0xDF0; // C_EconItemView +} + +namespace C_CSGO_TeamPreviewModel { // C_CSGO_PreviewPlayer +} + +namespace C_CSGO_TeamSelectCamera { // C_CSGO_TeamPreviewCamera +} + +namespace C_CSGO_TeamSelectCharacterPosition { // C_CSGO_TeamPreviewCharacterPosition +} + +namespace C_CSGO_TeamSelectCounterTerroristPosition { // C_CSGO_TeamSelectCharacterPosition +} + +namespace C_CSGO_TeamSelectTerroristPosition { // C_CSGO_TeamSelectCharacterPosition +} + +namespace C_CSGO_TerroristTeamIntroCamera { // C_CSGO_TeamPreviewCamera +} + +namespace C_CSGO_TerroristWingmanIntroCamera { // C_CSGO_TeamPreviewCamera +} + +namespace C_CSGameRules { // C_TeamplayRules + constexpr std::ptrdiff_t __m_pChainEntity = 0x8; // CNetworkVarChainer + constexpr std::ptrdiff_t m_bFreezePeriod = 0x30; // bool + constexpr std::ptrdiff_t m_bWarmupPeriod = 0x31; // bool + constexpr std::ptrdiff_t m_fWarmupPeriodEnd = 0x34; // GameTime_t + constexpr std::ptrdiff_t m_fWarmupPeriodStart = 0x38; // GameTime_t + constexpr std::ptrdiff_t m_nTotalPausedTicks = 0x3C; // int32_t + constexpr std::ptrdiff_t m_nPauseStartTick = 0x40; // int32_t + constexpr std::ptrdiff_t m_bServerPaused = 0x44; // bool + constexpr std::ptrdiff_t m_bGamePaused = 0x45; // bool + constexpr std::ptrdiff_t m_bTerroristTimeOutActive = 0x46; // bool + constexpr std::ptrdiff_t m_bCTTimeOutActive = 0x47; // bool + constexpr std::ptrdiff_t m_flTerroristTimeOutRemaining = 0x48; // float + constexpr std::ptrdiff_t m_flCTTimeOutRemaining = 0x4C; // float + constexpr std::ptrdiff_t m_nTerroristTimeOuts = 0x50; // int32_t + constexpr std::ptrdiff_t m_nCTTimeOuts = 0x54; // int32_t + constexpr std::ptrdiff_t m_bTechnicalTimeOut = 0x58; // bool + constexpr std::ptrdiff_t m_bMatchWaitingForResume = 0x59; // bool + constexpr std::ptrdiff_t m_iRoundTime = 0x5C; // int32_t + constexpr std::ptrdiff_t m_fMatchStartTime = 0x60; // float + constexpr std::ptrdiff_t m_fRoundStartTime = 0x64; // GameTime_t + constexpr std::ptrdiff_t m_flRestartRoundTime = 0x68; // GameTime_t + constexpr std::ptrdiff_t m_bGameRestart = 0x6C; // bool + constexpr std::ptrdiff_t m_flGameStartTime = 0x70; // float + constexpr std::ptrdiff_t m_timeUntilNextPhaseStarts = 0x74; // float + constexpr std::ptrdiff_t m_gamePhase = 0x78; // int32_t + constexpr std::ptrdiff_t m_totalRoundsPlayed = 0x7C; // int32_t + constexpr std::ptrdiff_t m_nRoundsPlayedThisPhase = 0x80; // int32_t + constexpr std::ptrdiff_t m_nOvertimePlaying = 0x84; // int32_t + constexpr std::ptrdiff_t m_iHostagesRemaining = 0x88; // int32_t + constexpr std::ptrdiff_t m_bAnyHostageReached = 0x8C; // bool + constexpr std::ptrdiff_t m_bMapHasBombTarget = 0x8D; // bool + constexpr std::ptrdiff_t m_bMapHasRescueZone = 0x8E; // bool + constexpr std::ptrdiff_t m_bMapHasBuyZone = 0x8F; // bool + constexpr std::ptrdiff_t m_bIsQueuedMatchmaking = 0x90; // bool + constexpr std::ptrdiff_t m_nQueuedMatchmakingMode = 0x94; // int32_t + constexpr std::ptrdiff_t m_bIsValveDS = 0x98; // bool + constexpr std::ptrdiff_t m_bLogoMap = 0x99; // bool + constexpr std::ptrdiff_t m_bPlayAllStepSoundsOnServer = 0x9A; // bool + constexpr std::ptrdiff_t m_iSpectatorSlotCount = 0x9C; // int32_t + constexpr std::ptrdiff_t m_MatchDevice = 0xA0; // int32_t + constexpr std::ptrdiff_t m_bHasMatchStarted = 0xA4; // bool + constexpr std::ptrdiff_t m_nNextMapInMapgroup = 0xA8; // int32_t + constexpr std::ptrdiff_t m_szTournamentEventName = 0xAC; // char[512] + constexpr std::ptrdiff_t m_szTournamentEventStage = 0x2AC; // char[512] + constexpr std::ptrdiff_t m_szMatchStatTxt = 0x4AC; // char[512] + constexpr std::ptrdiff_t m_szTournamentPredictionsTxt = 0x6AC; // char[512] + constexpr std::ptrdiff_t m_nTournamentPredictionsPct = 0x8AC; // int32_t + constexpr std::ptrdiff_t m_flCMMItemDropRevealStartTime = 0x8B0; // GameTime_t + constexpr std::ptrdiff_t m_flCMMItemDropRevealEndTime = 0x8B4; // GameTime_t + constexpr std::ptrdiff_t m_bIsDroppingItems = 0x8B8; // bool + constexpr std::ptrdiff_t m_bIsQuestEligible = 0x8B9; // bool + constexpr std::ptrdiff_t m_bIsHltvActive = 0x8BA; // bool + constexpr std::ptrdiff_t m_nGuardianModeWaveNumber = 0x8BC; // int32_t + constexpr std::ptrdiff_t m_nGuardianModeSpecialKillsRemaining = 0x8C0; // int32_t + constexpr std::ptrdiff_t m_nGuardianModeSpecialWeaponNeeded = 0x8C4; // int32_t + constexpr std::ptrdiff_t m_nGuardianGrenadesToGiveBots = 0x8C8; // int32_t + constexpr std::ptrdiff_t m_nNumHeaviesToSpawn = 0x8CC; // int32_t + constexpr std::ptrdiff_t m_numGlobalGiftsGiven = 0x8D0; // uint32_t + constexpr std::ptrdiff_t m_numGlobalGifters = 0x8D4; // uint32_t + constexpr std::ptrdiff_t m_numGlobalGiftsPeriodSeconds = 0x8D8; // uint32_t + constexpr std::ptrdiff_t m_arrFeaturedGiftersAccounts = 0x8DC; // uint32_t[4] + constexpr std::ptrdiff_t m_arrFeaturedGiftersGifts = 0x8EC; // uint32_t[4] + constexpr std::ptrdiff_t m_arrProhibitedItemIndices = 0x8FC; // uint16_t[100] + constexpr std::ptrdiff_t m_arrTournamentActiveCasterAccounts = 0x9C4; // uint32_t[4] + constexpr std::ptrdiff_t m_numBestOfMaps = 0x9D4; // int32_t + constexpr std::ptrdiff_t m_nHalloweenMaskListSeed = 0x9D8; // int32_t + constexpr std::ptrdiff_t m_bBombDropped = 0x9DC; // bool + constexpr std::ptrdiff_t m_bBombPlanted = 0x9DD; // bool + constexpr std::ptrdiff_t m_iRoundWinStatus = 0x9E0; // int32_t + constexpr std::ptrdiff_t m_eRoundWinReason = 0x9E4; // int32_t + constexpr std::ptrdiff_t m_bTCantBuy = 0x9E8; // bool + constexpr std::ptrdiff_t m_bCTCantBuy = 0x9E9; // bool + constexpr std::ptrdiff_t m_flGuardianBuyUntilTime = 0x9EC; // GameTime_t + constexpr std::ptrdiff_t m_iMatchStats_RoundResults = 0x9F0; // int32_t[30] + constexpr std::ptrdiff_t m_iMatchStats_PlayersAlive_CT = 0xA68; // int32_t[30] + constexpr std::ptrdiff_t m_iMatchStats_PlayersAlive_T = 0xAE0; // int32_t[30] + constexpr std::ptrdiff_t m_TeamRespawnWaveTimes = 0xB58; // float[32] + constexpr std::ptrdiff_t m_flNextRespawnWave = 0xBD8; // GameTime_t[32] + constexpr std::ptrdiff_t m_nServerQuestID = 0xC58; // int32_t + constexpr std::ptrdiff_t m_vMinimapMins = 0xC5C; // Vector + constexpr std::ptrdiff_t m_vMinimapMaxs = 0xC68; // Vector + constexpr std::ptrdiff_t m_MinimapVerticalSectionHeights = 0xC74; // float[8] + constexpr std::ptrdiff_t m_bDontIncrementCoopWave = 0xC94; // bool + constexpr std::ptrdiff_t m_bSpawnedTerrorHuntHeavy = 0xC95; // bool + constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteTypes = 0xC98; // int32_t[10] + constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteOptions = 0xCC0; // int32_t[10] + constexpr std::ptrdiff_t m_nEndMatchMapVoteWinner = 0xCE8; // int32_t + constexpr std::ptrdiff_t m_iNumConsecutiveCTLoses = 0xCEC; // int32_t + constexpr std::ptrdiff_t m_iNumConsecutiveTerroristLoses = 0xCF0; // int32_t + constexpr std::ptrdiff_t m_bMarkClientStopRecordAtRoundEnd = 0xD10; // bool + constexpr std::ptrdiff_t m_bMatchAbortedDueToPlayerBan = 0xD68; // bool + constexpr std::ptrdiff_t m_bHasTriggeredRoundStartMusic = 0xD69; // bool + constexpr std::ptrdiff_t m_bHasTriggeredCoopSpawnReset = 0xD6A; // bool + constexpr std::ptrdiff_t m_bSwitchingTeamsAtRoundReset = 0xD6B; // bool + constexpr std::ptrdiff_t m_pGameModeRules = 0xD88; // CCSGameModeRules* + constexpr std::ptrdiff_t m_RetakeRules = 0xD90; // C_RetakeGameRules + constexpr std::ptrdiff_t m_nMatchEndCount = 0xEA8; // uint8_t + constexpr std::ptrdiff_t m_nTTeamIntroVariant = 0xEAC; // int32_t + constexpr std::ptrdiff_t m_nCTTeamIntroVariant = 0xEB0; // int32_t + constexpr std::ptrdiff_t m_bTeamIntroPeriod = 0xEB4; // bool + constexpr std::ptrdiff_t m_flLastPerfSampleTime = 0x4EC0; // double +} + +namespace C_CSGameRulesProxy { // C_GameRulesProxy + constexpr std::ptrdiff_t m_pGameRules = 0x540; // C_CSGameRules* +} + +namespace C_CSMinimapBoundary { // C_BaseEntity +} + +namespace C_CSObserverPawn { // C_CSPlayerPawnBase + constexpr std::ptrdiff_t m_hDetectParentChange = 0x16B0; // CEntityHandle +} + +namespace C_CSPlayerPawn { // C_CSPlayerPawnBase + constexpr std::ptrdiff_t m_pBulletServices = 0x16B0; // CCSPlayer_BulletServices* + constexpr std::ptrdiff_t m_pHostageServices = 0x16B8; // CCSPlayer_HostageServices* + constexpr std::ptrdiff_t m_pBuyServices = 0x16C0; // CCSPlayer_BuyServices* + constexpr std::ptrdiff_t m_pGlowServices = 0x16C8; // CCSPlayer_GlowServices* + constexpr std::ptrdiff_t m_pActionTrackingServices = 0x16D0; // CCSPlayer_ActionTrackingServices* + constexpr std::ptrdiff_t m_flHealthShotBoostExpirationTime = 0x16D8; // GameTime_t + constexpr std::ptrdiff_t m_flLastFiredWeaponTime = 0x16DC; // GameTime_t + constexpr std::ptrdiff_t m_bHasFemaleVoice = 0x16E0; // bool + constexpr std::ptrdiff_t m_flLandseconds = 0x16E4; // float + constexpr std::ptrdiff_t m_flOldFallVelocity = 0x16E8; // float + constexpr std::ptrdiff_t m_szLastPlaceName = 0x16EC; // char[18] + constexpr std::ptrdiff_t m_bPrevDefuser = 0x16FE; // bool + constexpr std::ptrdiff_t m_bPrevHelmet = 0x16FF; // bool + constexpr std::ptrdiff_t m_nPrevArmorVal = 0x1700; // int32_t + constexpr std::ptrdiff_t m_nPrevGrenadeAmmoCount = 0x1704; // int32_t + constexpr std::ptrdiff_t m_unPreviousWeaponHash = 0x1708; // uint32_t + constexpr std::ptrdiff_t m_unWeaponHash = 0x170C; // uint32_t + constexpr std::ptrdiff_t m_bInBuyZone = 0x1710; // bool + constexpr std::ptrdiff_t m_bPreviouslyInBuyZone = 0x1711; // bool + constexpr std::ptrdiff_t m_aimPunchAngle = 0x1714; // QAngle + constexpr std::ptrdiff_t m_aimPunchAngleVel = 0x1720; // QAngle + constexpr std::ptrdiff_t m_aimPunchTickBase = 0x172C; // int32_t + constexpr std::ptrdiff_t m_aimPunchTickFraction = 0x1730; // float + constexpr std::ptrdiff_t m_aimPunchCache = 0x1738; // CUtlVector + constexpr std::ptrdiff_t m_bInLanding = 0x1758; // bool + constexpr std::ptrdiff_t m_flLandingTime = 0x175C; // float + constexpr std::ptrdiff_t m_bInHostageRescueZone = 0x1760; // bool + constexpr std::ptrdiff_t m_bInBombZone = 0x1761; // bool + constexpr std::ptrdiff_t m_bIsBuyMenuOpen = 0x1762; // bool + constexpr std::ptrdiff_t m_flTimeOfLastInjury = 0x1764; // GameTime_t + constexpr std::ptrdiff_t m_flNextSprayDecalTime = 0x1768; // GameTime_t + constexpr std::ptrdiff_t m_iRetakesOffering = 0x1880; // int32_t + constexpr std::ptrdiff_t m_iRetakesOfferingCard = 0x1884; // int32_t + constexpr std::ptrdiff_t m_bRetakesHasDefuseKit = 0x1888; // bool + constexpr std::ptrdiff_t m_bRetakesMVPLastRound = 0x1889; // bool + constexpr std::ptrdiff_t m_iRetakesMVPBoostItem = 0x188C; // int32_t + constexpr std::ptrdiff_t m_RetakesMVPBoostExtraUtility = 0x1890; // loadout_slot_t + constexpr std::ptrdiff_t m_bNeedToReApplyGloves = 0x18B0; // bool + constexpr std::ptrdiff_t m_EconGloves = 0x18B8; // C_EconItemView + constexpr std::ptrdiff_t m_bMustSyncRagdollState = 0x1D00; // bool + constexpr std::ptrdiff_t m_nRagdollDamageBone = 0x1D04; // int32_t + constexpr std::ptrdiff_t m_vRagdollDamageForce = 0x1D08; // Vector + constexpr std::ptrdiff_t m_vRagdollDamagePosition = 0x1D14; // Vector + constexpr std::ptrdiff_t m_szRagdollDamageWeaponName = 0x1D20; // char[64] + constexpr std::ptrdiff_t m_bRagdollDamageHeadshot = 0x1D60; // bool + constexpr std::ptrdiff_t m_vRagdollServerOrigin = 0x1D64; // Vector + constexpr std::ptrdiff_t m_bLastHeadBoneTransformIsValid = 0x22A8; // bool + constexpr std::ptrdiff_t m_lastLandTime = 0x22AC; // GameTime_t + constexpr std::ptrdiff_t m_bOnGroundLastTick = 0x22B0; // bool + constexpr std::ptrdiff_t m_qDeathEyeAngles = 0x22CC; // QAngle + constexpr std::ptrdiff_t m_bSkipOneHeadConstraintUpdate = 0x22D8; // bool +} + +namespace C_CSPlayerPawnBase { // C_BasePlayerPawn + constexpr std::ptrdiff_t m_pPingServices = 0x1268; // CCSPlayer_PingServices* + constexpr std::ptrdiff_t m_pViewModelServices = 0x1270; // CPlayer_ViewModelServices* + constexpr std::ptrdiff_t m_fRenderingClipPlane = 0x1278; // float[4] + constexpr std::ptrdiff_t m_nLastClipPlaneSetupFrame = 0x1288; // int32_t + constexpr std::ptrdiff_t m_vecLastClipCameraPos = 0x128C; // Vector + constexpr std::ptrdiff_t m_vecLastClipCameraForward = 0x1298; // Vector + constexpr std::ptrdiff_t m_bClipHitStaticWorld = 0x12A4; // bool + constexpr std::ptrdiff_t m_bCachedPlaneIsValid = 0x12A5; // bool + constexpr std::ptrdiff_t m_pClippingWeapon = 0x12A8; // C_CSWeaponBase* + constexpr std::ptrdiff_t m_previousPlayerState = 0x12B0; // CSPlayerState + constexpr std::ptrdiff_t m_flLastCollisionCeiling = 0x12B4; // float + constexpr std::ptrdiff_t m_flLastCollisionCeilingChangeTime = 0x12B8; // float + constexpr std::ptrdiff_t m_grenadeParameterStashTime = 0x12D8; // GameTime_t + constexpr std::ptrdiff_t m_bGrenadeParametersStashed = 0x12DC; // bool + constexpr std::ptrdiff_t m_angStashedShootAngles = 0x12E0; // QAngle + constexpr std::ptrdiff_t m_vecStashedGrenadeThrowPosition = 0x12EC; // Vector + constexpr std::ptrdiff_t m_vecStashedVelocity = 0x12F8; // Vector + constexpr std::ptrdiff_t m_angShootAngleHistory = 0x1304; // QAngle[2] + constexpr std::ptrdiff_t m_vecThrowPositionHistory = 0x131C; // Vector[2] + constexpr std::ptrdiff_t m_vecVelocityHistory = 0x1334; // Vector[2] + constexpr std::ptrdiff_t m_thirdPersonHeading = 0x1350; // QAngle + constexpr std::ptrdiff_t m_flSlopeDropOffset = 0x1368; // float + constexpr std::ptrdiff_t m_flSlopeDropHeight = 0x1378; // float + constexpr std::ptrdiff_t m_vHeadConstraintOffset = 0x1388; // Vector + constexpr std::ptrdiff_t m_bIsScoped = 0x13A0; // bool + constexpr std::ptrdiff_t m_bIsWalking = 0x13A1; // bool + constexpr std::ptrdiff_t m_bResumeZoom = 0x13A2; // bool + constexpr std::ptrdiff_t m_iPlayerState = 0x13A4; // CSPlayerState + constexpr std::ptrdiff_t m_bIsDefusing = 0x13A8; // bool + constexpr std::ptrdiff_t m_bIsGrabbingHostage = 0x13A9; // bool + constexpr std::ptrdiff_t m_iBlockingUseActionInProgress = 0x13AC; // CSPlayerBlockingUseAction_t + constexpr std::ptrdiff_t m_bIsRescuing = 0x13B0; // bool + constexpr std::ptrdiff_t m_fImmuneToGunGameDamageTime = 0x13B4; // GameTime_t + constexpr std::ptrdiff_t m_fImmuneToGunGameDamageTimeLast = 0x13B8; // GameTime_t + constexpr std::ptrdiff_t m_bGunGameImmunity = 0x13BC; // bool + constexpr std::ptrdiff_t m_bHasMovedSinceSpawn = 0x13BD; // bool + constexpr std::ptrdiff_t m_fMolotovUseTime = 0x13C0; // float + constexpr std::ptrdiff_t m_fMolotovDamageTime = 0x13C4; // float + constexpr std::ptrdiff_t m_nWhichBombZone = 0x13C8; // int32_t + constexpr std::ptrdiff_t m_bInNoDefuseArea = 0x13CC; // bool + constexpr std::ptrdiff_t m_iThrowGrenadeCounter = 0x13D0; // int32_t + constexpr std::ptrdiff_t m_bWaitForNoAttack = 0x13D4; // bool + constexpr std::ptrdiff_t m_flGuardianTooFarDistFrac = 0x13D8; // float + constexpr std::ptrdiff_t m_flDetectedByEnemySensorTime = 0x13DC; // GameTime_t + constexpr std::ptrdiff_t m_flNextGuardianTooFarWarning = 0x13E0; // float + constexpr std::ptrdiff_t m_bSuppressGuardianTooFarWarningAudio = 0x13E4; // bool + constexpr std::ptrdiff_t m_bKilledByTaser = 0x13E5; // bool + constexpr std::ptrdiff_t m_iMoveState = 0x13E8; // int32_t + constexpr std::ptrdiff_t m_bCanMoveDuringFreezePeriod = 0x13EC; // bool + constexpr std::ptrdiff_t m_flLowerBodyYawTarget = 0x13F0; // float + constexpr std::ptrdiff_t m_bStrafing = 0x13F4; // bool + constexpr std::ptrdiff_t m_flLastSpawnTimeIndex = 0x13F8; // GameTime_t + constexpr std::ptrdiff_t m_flEmitSoundTime = 0x13FC; // GameTime_t + constexpr std::ptrdiff_t m_iAddonBits = 0x1400; // int32_t + constexpr std::ptrdiff_t m_iPrimaryAddon = 0x1404; // int32_t + constexpr std::ptrdiff_t m_iSecondaryAddon = 0x1408; // int32_t + constexpr std::ptrdiff_t m_iProgressBarDuration = 0x140C; // int32_t + constexpr std::ptrdiff_t m_flProgressBarStartTime = 0x1410; // float + constexpr std::ptrdiff_t m_iDirection = 0x1414; // int32_t + constexpr std::ptrdiff_t m_iShotsFired = 0x1418; // int32_t + constexpr std::ptrdiff_t m_bNightVisionOn = 0x141C; // bool + constexpr std::ptrdiff_t m_bHasNightVision = 0x141D; // bool + constexpr std::ptrdiff_t m_flVelocityModifier = 0x1420; // float + constexpr std::ptrdiff_t m_flHitHeading = 0x1424; // float + constexpr std::ptrdiff_t m_nHitBodyPart = 0x1428; // int32_t + constexpr std::ptrdiff_t m_iStartAccount = 0x142C; // int32_t + constexpr std::ptrdiff_t m_vecIntroStartEyePosition = 0x1430; // Vector + constexpr std::ptrdiff_t m_vecIntroStartPlayerForward = 0x143C; // Vector + constexpr std::ptrdiff_t m_flClientDeathTime = 0x1448; // GameTime_t + constexpr std::ptrdiff_t m_flNightVisionAlpha = 0x144C; // float + constexpr std::ptrdiff_t m_bScreenTearFrameCaptured = 0x1450; // bool + constexpr std::ptrdiff_t m_flFlashBangTime = 0x1454; // float + constexpr std::ptrdiff_t m_flFlashScreenshotAlpha = 0x1458; // float + constexpr std::ptrdiff_t m_flFlashOverlayAlpha = 0x145C; // float + constexpr std::ptrdiff_t m_bFlashBuildUp = 0x1460; // bool + constexpr std::ptrdiff_t m_bFlashDspHasBeenCleared = 0x1461; // bool + constexpr std::ptrdiff_t m_bFlashScreenshotHasBeenGrabbed = 0x1462; // bool + constexpr std::ptrdiff_t m_flFlashMaxAlpha = 0x1464; // float + constexpr std::ptrdiff_t m_flFlashDuration = 0x1468; // float + constexpr std::ptrdiff_t m_lastStandingPos = 0x146C; // Vector + constexpr std::ptrdiff_t m_vecLastMuzzleFlashPos = 0x1478; // Vector + constexpr std::ptrdiff_t m_angLastMuzzleFlashAngle = 0x1484; // QAngle + constexpr std::ptrdiff_t m_hMuzzleFlashShape = 0x1490; // CHandle + constexpr std::ptrdiff_t m_iHealthBarRenderMaskIndex = 0x1494; // int32_t + constexpr std::ptrdiff_t m_flHealthFadeValue = 0x1498; // float + constexpr std::ptrdiff_t m_flHealthFadeAlpha = 0x149C; // float + constexpr std::ptrdiff_t m_nMyCollisionGroup = 0x14A0; // int32_t + constexpr std::ptrdiff_t m_ignoreLadderJumpTime = 0x14A4; // float + constexpr std::ptrdiff_t m_ladderSurpressionTimer = 0x14A8; // CountdownTimer + constexpr std::ptrdiff_t m_lastLadderNormal = 0x14C0; // Vector + constexpr std::ptrdiff_t m_lastLadderPos = 0x14CC; // Vector + constexpr std::ptrdiff_t m_flDeathCCWeight = 0x14E0; // float + constexpr std::ptrdiff_t m_bOldIsScoped = 0x14E4; // bool + constexpr std::ptrdiff_t m_flPrevRoundEndTime = 0x14E8; // float + constexpr std::ptrdiff_t m_flPrevMatchEndTime = 0x14EC; // float + constexpr std::ptrdiff_t m_unCurrentEquipmentValue = 0x14F0; // uint16_t + constexpr std::ptrdiff_t m_unRoundStartEquipmentValue = 0x14F2; // uint16_t + constexpr std::ptrdiff_t m_unFreezetimeEndEquipmentValue = 0x14F4; // uint16_t + constexpr std::ptrdiff_t m_vecThirdPersonViewPositionOverride = 0x14F8; // Vector + constexpr std::ptrdiff_t m_nHeavyAssaultSuitCooldownRemaining = 0x1504; // int32_t + constexpr std::ptrdiff_t m_ArmorValue = 0x1508; // int32_t + constexpr std::ptrdiff_t m_angEyeAngles = 0x1510; // QAngle + constexpr std::ptrdiff_t m_fNextThinkPushAway = 0x1528; // float + constexpr std::ptrdiff_t m_bShouldAutobuyDMWeapons = 0x152C; // bool + constexpr std::ptrdiff_t m_bShouldAutobuyNow = 0x152D; // bool + constexpr std::ptrdiff_t m_bHud_MiniScoreHidden = 0x152E; // bool + constexpr std::ptrdiff_t m_bHud_RadarHidden = 0x152F; // bool + constexpr std::ptrdiff_t m_nLastKillerIndex = 0x1530; // CEntityIndex + constexpr std::ptrdiff_t m_nLastConcurrentKilled = 0x1534; // int32_t + constexpr std::ptrdiff_t m_nDeathCamMusic = 0x1538; // int32_t + constexpr std::ptrdiff_t m_iIDEntIndex = 0x153C; // CEntityIndex + constexpr std::ptrdiff_t m_delayTargetIDTimer = 0x1540; // CountdownTimer + constexpr std::ptrdiff_t m_iTargetedWeaponEntIndex = 0x1558; // CEntityIndex + constexpr std::ptrdiff_t m_iOldIDEntIndex = 0x155C; // CEntityIndex + constexpr std::ptrdiff_t m_holdTargetIDTimer = 0x1560; // CountdownTimer + constexpr std::ptrdiff_t m_flCurrentMusicStartTime = 0x157C; // float + constexpr std::ptrdiff_t m_flMusicRoundStartTime = 0x1580; // float + constexpr std::ptrdiff_t m_bDeferStartMusicOnWarmup = 0x1584; // bool + constexpr std::ptrdiff_t m_cycleLatch = 0x1588; // int32_t + constexpr std::ptrdiff_t m_serverIntendedCycle = 0x158C; // float + constexpr std::ptrdiff_t m_vecPlayerPatchEconIndices = 0x1590; // uint32_t[5] + constexpr std::ptrdiff_t m_bHideTargetID = 0x15AC; // bool + constexpr std::ptrdiff_t m_nextTaserShakeTime = 0x15B0; // float + constexpr std::ptrdiff_t m_firstTaserShakeTime = 0x15B4; // float + constexpr std::ptrdiff_t m_flLastSmokeOverlayAlpha = 0x15B8; // float + constexpr std::ptrdiff_t m_vLastSmokeOverlayColor = 0x15BC; // Vector + constexpr std::ptrdiff_t m_nPlayerSmokedFx = 0x15C8; // ParticleIndex_t + constexpr std::ptrdiff_t m_flNextMagDropTime = 0x15CC; // float + constexpr std::ptrdiff_t m_nLastMagDropAttachmentIndex = 0x15D0; // int32_t + constexpr std::ptrdiff_t m_vecBulletHitModels = 0x15D8; // CUtlVector + constexpr std::ptrdiff_t m_vecPickupModelSlerpers = 0x15F0; // CUtlVector + constexpr std::ptrdiff_t m_vecLastAliveLocalVelocity = 0x1608; // Vector + constexpr std::ptrdiff_t m_entitySpottedState = 0x1630; // EntitySpottedState_t + constexpr std::ptrdiff_t m_nSurvivalTeamNumber = 0x1648; // int32_t + constexpr std::ptrdiff_t m_bGuardianShouldSprayCustomXMark = 0x164C; // bool + constexpr std::ptrdiff_t m_bHasDeathInfo = 0x164D; // bool + constexpr std::ptrdiff_t m_flDeathInfoTime = 0x1650; // float + constexpr std::ptrdiff_t m_vecDeathInfoOrigin = 0x1654; // Vector + constexpr std::ptrdiff_t m_bKilledByHeadshot = 0x1660; // bool + constexpr std::ptrdiff_t m_hOriginalController = 0x1664; // CHandle +} + +namespace C_CSPlayerResource { // C_BaseEntity + constexpr std::ptrdiff_t m_bHostageAlive = 0x540; // bool[12] + constexpr std::ptrdiff_t m_isHostageFollowingSomeone = 0x54C; // bool[12] + constexpr std::ptrdiff_t m_iHostageEntityIDs = 0x558; // CEntityIndex[12] + constexpr std::ptrdiff_t m_bombsiteCenterA = 0x588; // Vector + constexpr std::ptrdiff_t m_bombsiteCenterB = 0x594; // Vector + constexpr std::ptrdiff_t m_hostageRescueX = 0x5A0; // int32_t[4] + constexpr std::ptrdiff_t m_hostageRescueY = 0x5B0; // int32_t[4] + constexpr std::ptrdiff_t m_hostageRescueZ = 0x5C0; // int32_t[4] + constexpr std::ptrdiff_t m_bEndMatchNextMapAllVoted = 0x5D0; // bool + constexpr std::ptrdiff_t m_foundGoalPositions = 0x5D1; // bool +} + +namespace C_CSTeam { // C_Team + constexpr std::ptrdiff_t m_szTeamMatchStat = 0x5F8; // char[512] + constexpr std::ptrdiff_t m_numMapVictories = 0x7F8; // int32_t + constexpr std::ptrdiff_t m_bSurrendered = 0x7FC; // bool + constexpr std::ptrdiff_t m_scoreFirstHalf = 0x800; // int32_t + constexpr std::ptrdiff_t m_scoreSecondHalf = 0x804; // int32_t + constexpr std::ptrdiff_t m_scoreOvertime = 0x808; // int32_t + constexpr std::ptrdiff_t m_szClanTeamname = 0x80C; // char[129] + constexpr std::ptrdiff_t m_iClanID = 0x890; // uint32_t + constexpr std::ptrdiff_t m_szTeamFlagImage = 0x894; // char[8] + constexpr std::ptrdiff_t m_szTeamLogoImage = 0x89C; // char[8] +} + +namespace C_CSWeaponBase { // C_BasePlayerWeapon + constexpr std::ptrdiff_t m_flFireSequenceStartTime = 0x15D0; // float + constexpr std::ptrdiff_t m_nFireSequenceStartTimeChange = 0x15D4; // int32_t + constexpr std::ptrdiff_t m_nFireSequenceStartTimeAck = 0x15D8; // int32_t + constexpr std::ptrdiff_t m_bPlayerFireEventIsPrimary = 0x15DC; // bool + constexpr std::ptrdiff_t m_seqIdle = 0x15E0; // HSequence + constexpr std::ptrdiff_t m_seqFirePrimary = 0x15E4; // HSequence + constexpr std::ptrdiff_t m_seqFireSecondary = 0x15E8; // HSequence + constexpr std::ptrdiff_t m_thirdPersonFireSequences = 0x15F0; // CUtlVector + constexpr std::ptrdiff_t m_hCurrentThirdPersonSequence = 0x1608; // HSequence + constexpr std::ptrdiff_t m_nSilencerBoneIndex = 0x160C; // int32_t + constexpr std::ptrdiff_t m_thirdPersonSequences = 0x1610; // HSequence[6] + constexpr std::ptrdiff_t m_ClientPreviousWeaponState = 0x1640; // CSWeaponState_t + constexpr std::ptrdiff_t m_iState = 0x1644; // CSWeaponState_t + constexpr std::ptrdiff_t m_flCrosshairDistance = 0x1648; // float + constexpr std::ptrdiff_t m_iAmmoLastCheck = 0x164C; // int32_t + constexpr std::ptrdiff_t m_iAlpha = 0x1650; // int32_t + constexpr std::ptrdiff_t m_iScopeTextureID = 0x1654; // int32_t + constexpr std::ptrdiff_t m_iCrosshairTextureID = 0x1658; // int32_t + constexpr std::ptrdiff_t m_flGunAccuracyPosition = 0x165C; // float + constexpr std::ptrdiff_t m_nViewModelIndex = 0x1660; // uint32_t + constexpr std::ptrdiff_t m_bReloadsWithClips = 0x1664; // bool + constexpr std::ptrdiff_t m_flTimeWeaponIdle = 0x1668; // GameTime_t + constexpr std::ptrdiff_t m_bFireOnEmpty = 0x166C; // bool + constexpr std::ptrdiff_t m_OnPlayerPickup = 0x1670; // CEntityIOOutput + constexpr std::ptrdiff_t m_weaponMode = 0x1698; // CSWeaponMode + constexpr std::ptrdiff_t m_flTurningInaccuracyDelta = 0x169C; // float + constexpr std::ptrdiff_t m_vecTurningInaccuracyEyeDirLast = 0x16A0; // Vector + constexpr std::ptrdiff_t m_flTurningInaccuracy = 0x16AC; // float + constexpr std::ptrdiff_t m_fAccuracyPenalty = 0x16B0; // float + constexpr std::ptrdiff_t m_flLastAccuracyUpdateTime = 0x16B4; // GameTime_t + constexpr std::ptrdiff_t m_fAccuracySmoothedForZoom = 0x16B8; // float + constexpr std::ptrdiff_t m_fScopeZoomEndTime = 0x16BC; // GameTime_t + constexpr std::ptrdiff_t m_iRecoilIndex = 0x16C0; // int32_t + constexpr std::ptrdiff_t m_flRecoilIndex = 0x16C4; // float + constexpr std::ptrdiff_t m_bBurstMode = 0x16C8; // bool + constexpr std::ptrdiff_t m_flPostponeFireReadyTime = 0x16CC; // GameTime_t + constexpr std::ptrdiff_t m_bInReload = 0x16D0; // bool + constexpr std::ptrdiff_t m_bReloadVisuallyComplete = 0x16D1; // bool + constexpr std::ptrdiff_t m_flDroppedAtTime = 0x16D4; // GameTime_t + constexpr std::ptrdiff_t m_bIsHauledBack = 0x16D8; // bool + constexpr std::ptrdiff_t m_bSilencerOn = 0x16D9; // bool + constexpr std::ptrdiff_t m_flTimeSilencerSwitchComplete = 0x16DC; // GameTime_t + constexpr std::ptrdiff_t m_iOriginalTeamNumber = 0x16E0; // int32_t + constexpr std::ptrdiff_t m_flNextAttackRenderTimeOffset = 0x16E4; // float + constexpr std::ptrdiff_t m_bVisualsDataSet = 0x1768; // bool + constexpr std::ptrdiff_t m_bOldFirstPersonSpectatedState = 0x1769; // bool + constexpr std::ptrdiff_t m_hOurPing = 0x176C; // CHandle + constexpr std::ptrdiff_t m_nOurPingIndex = 0x1770; // CEntityIndex + constexpr std::ptrdiff_t m_vecOurPingPos = 0x1774; // Vector + constexpr std::ptrdiff_t m_bGlowForPing = 0x1780; // bool + constexpr std::ptrdiff_t m_bUIWeapon = 0x1781; // bool + constexpr std::ptrdiff_t m_hPrevOwner = 0x1790; // CHandle + constexpr std::ptrdiff_t m_nDropTick = 0x1794; // GameTick_t + constexpr std::ptrdiff_t m_donated = 0x17B4; // bool + constexpr std::ptrdiff_t m_fLastShotTime = 0x17B8; // GameTime_t + constexpr std::ptrdiff_t m_bWasOwnedByCT = 0x17BC; // bool + constexpr std::ptrdiff_t m_bWasOwnedByTerrorist = 0x17BD; // bool + constexpr std::ptrdiff_t m_gunHeat = 0x17C0; // float + constexpr std::ptrdiff_t m_smokeAttachments = 0x17C4; // uint32_t + constexpr std::ptrdiff_t m_lastSmokeTime = 0x17C8; // GameTime_t + constexpr std::ptrdiff_t m_flNextClientFireBulletTime = 0x17CC; // float + constexpr std::ptrdiff_t m_flNextClientFireBulletTime_Repredict = 0x17D0; // float + constexpr std::ptrdiff_t m_IronSightController = 0x1890; // C_IronSightController + constexpr std::ptrdiff_t m_iIronSightMode = 0x1940; // int32_t + constexpr std::ptrdiff_t m_flLastLOSTraceFailureTime = 0x1950; // GameTime_t + constexpr std::ptrdiff_t m_iNumEmptyAttacks = 0x1954; // int32_t +} + +namespace C_CSWeaponBaseGun { // C_CSWeaponBase + constexpr std::ptrdiff_t m_zoomLevel = 0x1990; // int32_t + constexpr std::ptrdiff_t m_iBurstShotsRemaining = 0x1994; // int32_t + constexpr std::ptrdiff_t m_iSilencerBodygroup = 0x1998; // int32_t + constexpr std::ptrdiff_t m_silencedModelIndex = 0x19A8; // int32_t + constexpr std::ptrdiff_t m_inPrecache = 0x19AC; // bool + constexpr std::ptrdiff_t m_bNeedsBoltAction = 0x19AD; // bool +} + +namespace C_Chicken { // C_DynamicProp + constexpr std::ptrdiff_t m_hHolidayHatAddon = 0x10F0; // CHandle + constexpr std::ptrdiff_t m_jumpedThisFrame = 0x10F4; // bool + constexpr std::ptrdiff_t m_leader = 0x10F8; // CHandle + constexpr std::ptrdiff_t m_AttributeManager = 0x1100; // C_AttributeContainer + constexpr std::ptrdiff_t m_OriginalOwnerXuidLow = 0x15A8; // uint32_t + constexpr std::ptrdiff_t m_OriginalOwnerXuidHigh = 0x15AC; // uint32_t + constexpr std::ptrdiff_t m_bAttributesInitialized = 0x15B0; // bool + constexpr std::ptrdiff_t m_hWaterWakeParticles = 0x15B4; // ParticleIndex_t +} + +namespace C_ClientRagdoll { // CBaseAnimGraph + constexpr std::ptrdiff_t m_bFadeOut = 0xE80; // bool + constexpr std::ptrdiff_t m_bImportant = 0xE81; // bool + constexpr std::ptrdiff_t m_flEffectTime = 0xE84; // GameTime_t + constexpr std::ptrdiff_t m_gibDespawnTime = 0xE88; // GameTime_t + constexpr std::ptrdiff_t m_iCurrentFriction = 0xE8C; // int32_t + constexpr std::ptrdiff_t m_iMinFriction = 0xE90; // int32_t + constexpr std::ptrdiff_t m_iMaxFriction = 0xE94; // int32_t + constexpr std::ptrdiff_t m_iFrictionAnimState = 0xE98; // int32_t + constexpr std::ptrdiff_t m_bReleaseRagdoll = 0xE9C; // bool + constexpr std::ptrdiff_t m_iEyeAttachment = 0xE9D; // AttachmentHandle_t + constexpr std::ptrdiff_t m_bFadingOut = 0xE9E; // bool + constexpr std::ptrdiff_t m_flScaleEnd = 0xEA0; // float[10] + constexpr std::ptrdiff_t m_flScaleTimeStart = 0xEC8; // GameTime_t[10] + constexpr std::ptrdiff_t m_flScaleTimeEnd = 0xEF0; // GameTime_t[10] +} + +namespace C_ColorCorrection { // C_BaseEntity + constexpr std::ptrdiff_t m_vecOrigin = 0x540; // Vector + constexpr std::ptrdiff_t m_MinFalloff = 0x54C; // float + constexpr std::ptrdiff_t m_MaxFalloff = 0x550; // float + constexpr std::ptrdiff_t m_flFadeInDuration = 0x554; // float + constexpr std::ptrdiff_t m_flFadeOutDuration = 0x558; // float + constexpr std::ptrdiff_t m_flMaxWeight = 0x55C; // float + constexpr std::ptrdiff_t m_flCurWeight = 0x560; // float + constexpr std::ptrdiff_t m_netlookupFilename = 0x564; // char[512] + constexpr std::ptrdiff_t m_bEnabled = 0x764; // bool + constexpr std::ptrdiff_t m_bMaster = 0x765; // bool + constexpr std::ptrdiff_t m_bClientSide = 0x766; // bool + constexpr std::ptrdiff_t m_bExclusive = 0x767; // bool + constexpr std::ptrdiff_t m_bEnabledOnClient = 0x768; // bool[1] + constexpr std::ptrdiff_t m_flCurWeightOnClient = 0x76C; // float[1] + constexpr std::ptrdiff_t m_bFadingIn = 0x770; // bool[1] + constexpr std::ptrdiff_t m_flFadeStartWeight = 0x774; // float[1] + constexpr std::ptrdiff_t m_flFadeStartTime = 0x778; // float[1] + constexpr std::ptrdiff_t m_flFadeDuration = 0x77C; // float[1] +} + +namespace C_ColorCorrectionVolume { // C_BaseTrigger + constexpr std::ptrdiff_t m_LastEnterWeight = 0xCC8; // float + constexpr std::ptrdiff_t m_LastEnterTime = 0xCCC; // float + constexpr std::ptrdiff_t m_LastExitWeight = 0xCD0; // float + constexpr std::ptrdiff_t m_LastExitTime = 0xCD4; // float + constexpr std::ptrdiff_t m_bEnabled = 0xCD8; // bool + constexpr std::ptrdiff_t m_MaxWeight = 0xCDC; // float + constexpr std::ptrdiff_t m_FadeDuration = 0xCE0; // float + constexpr std::ptrdiff_t m_Weight = 0xCE4; // float + constexpr std::ptrdiff_t m_lookupFilename = 0xCE8; // char[512] +} + +namespace C_CommandContext { + constexpr std::ptrdiff_t needsprocessing = 0x0; // bool + constexpr std::ptrdiff_t command_number = 0x78; // int32_t +} + +namespace C_CsmFovOverride { // C_BaseEntity + constexpr std::ptrdiff_t m_cameraName = 0x540; // CUtlString + constexpr std::ptrdiff_t m_flCsmFovOverrideValue = 0x548; // float +} + +namespace C_DEagle { // C_CSWeaponBaseGun +} + +namespace C_DecoyGrenade { // C_BaseCSGrenade +} + +namespace C_DecoyProjectile { // C_BaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_nDecoyShotTick = 0x10F0; // int32_t + constexpr std::ptrdiff_t m_nClientLastKnownDecoyShotTick = 0x10F4; // int32_t + constexpr std::ptrdiff_t m_flTimeParticleEffectSpawn = 0x1118; // GameTime_t +} + +namespace C_DynamicLight { // C_BaseModelEntity + constexpr std::ptrdiff_t m_Flags = 0xCC0; // uint8_t + constexpr std::ptrdiff_t m_LightStyle = 0xCC1; // uint8_t + constexpr std::ptrdiff_t m_Radius = 0xCC4; // float + constexpr std::ptrdiff_t m_Exponent = 0xCC8; // int32_t + constexpr std::ptrdiff_t m_InnerAngle = 0xCCC; // float + constexpr std::ptrdiff_t m_OuterAngle = 0xCD0; // float + constexpr std::ptrdiff_t m_SpotRadius = 0xCD4; // float +} + +namespace C_DynamicProp { // C_BreakableProp + constexpr std::ptrdiff_t m_bUseHitboxesForRenderBox = 0xFD0; // bool + constexpr std::ptrdiff_t m_bUseAnimGraph = 0xFD1; // bool + constexpr std::ptrdiff_t m_pOutputAnimBegun = 0xFD8; // CEntityIOOutput + constexpr std::ptrdiff_t m_pOutputAnimOver = 0x1000; // CEntityIOOutput + constexpr std::ptrdiff_t m_pOutputAnimLoopCycleOver = 0x1028; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAnimReachedStart = 0x1050; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAnimReachedEnd = 0x1078; // CEntityIOOutput + constexpr std::ptrdiff_t m_iszDefaultAnim = 0x10A0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nDefaultAnimLoopMode = 0x10A8; // AnimLoopMode_t + constexpr std::ptrdiff_t m_bAnimateOnServer = 0x10AC; // bool + constexpr std::ptrdiff_t m_bRandomizeCycle = 0x10AD; // bool + constexpr std::ptrdiff_t m_bStartDisabled = 0x10AE; // bool + constexpr std::ptrdiff_t m_bScriptedMovement = 0x10AF; // bool + constexpr std::ptrdiff_t m_bFiredStartEndOutput = 0x10B0; // bool + constexpr std::ptrdiff_t m_bForceNpcExclude = 0x10B1; // bool + constexpr std::ptrdiff_t m_bCreateNonSolid = 0x10B2; // bool + constexpr std::ptrdiff_t m_bIsOverrideProp = 0x10B3; // bool + constexpr std::ptrdiff_t m_iInitialGlowState = 0x10B4; // int32_t + constexpr std::ptrdiff_t m_nGlowRange = 0x10B8; // int32_t + constexpr std::ptrdiff_t m_nGlowRangeMin = 0x10BC; // int32_t + constexpr std::ptrdiff_t m_glowColor = 0x10C0; // Color + constexpr std::ptrdiff_t m_nGlowTeam = 0x10C4; // int32_t + constexpr std::ptrdiff_t m_iCachedFrameCount = 0x10C8; // int32_t + constexpr std::ptrdiff_t m_vecCachedRenderMins = 0x10CC; // Vector + constexpr std::ptrdiff_t m_vecCachedRenderMaxs = 0x10D8; // Vector +} + +namespace C_DynamicPropAlias_cable_dynamic { // C_DynamicProp +} + +namespace C_DynamicPropAlias_dynamic_prop { // C_DynamicProp +} + +namespace C_DynamicPropAlias_prop_dynamic_override { // C_DynamicProp +} + +namespace C_EconEntity { // C_BaseFlex + constexpr std::ptrdiff_t m_flFlexDelayTime = 0x1028; // float + constexpr std::ptrdiff_t m_flFlexDelayedWeight = 0x1030; // float* + constexpr std::ptrdiff_t m_bAttributesInitialized = 0x1038; // bool + constexpr std::ptrdiff_t m_AttributeManager = 0x1040; // C_AttributeContainer + constexpr std::ptrdiff_t m_OriginalOwnerXuidLow = 0x14E8; // uint32_t + constexpr std::ptrdiff_t m_OriginalOwnerXuidHigh = 0x14EC; // uint32_t + constexpr std::ptrdiff_t m_nFallbackPaintKit = 0x14F0; // int32_t + constexpr std::ptrdiff_t m_nFallbackSeed = 0x14F4; // int32_t + constexpr std::ptrdiff_t m_flFallbackWear = 0x14F8; // float + constexpr std::ptrdiff_t m_nFallbackStatTrak = 0x14FC; // int32_t + constexpr std::ptrdiff_t m_bClientside = 0x1500; // bool + constexpr std::ptrdiff_t m_bParticleSystemsCreated = 0x1501; // bool + constexpr std::ptrdiff_t m_vecAttachedParticles = 0x1508; // CUtlVector + constexpr std::ptrdiff_t m_hViewmodelAttachment = 0x1520; // CHandle + constexpr std::ptrdiff_t m_iOldTeam = 0x1524; // int32_t + constexpr std::ptrdiff_t m_bAttachmentDirty = 0x1528; // bool + constexpr std::ptrdiff_t m_nUnloadedModelIndex = 0x152C; // int32_t + constexpr std::ptrdiff_t m_iNumOwnerValidationRetries = 0x1530; // int32_t + constexpr std::ptrdiff_t m_hOldProvidee = 0x1540; // CHandle + constexpr std::ptrdiff_t m_vecAttachedModels = 0x1548; // CUtlVector +} + +namespace C_EconEntity_AttachedModelData_t { + constexpr std::ptrdiff_t m_iModelDisplayFlags = 0x0; // int32_t +} + +namespace C_EconItemView { // IEconItemInterface + constexpr std::ptrdiff_t m_bInventoryImageRgbaRequested = 0x60; // bool + constexpr std::ptrdiff_t m_bInventoryImageTriedCache = 0x61; // bool + constexpr std::ptrdiff_t m_nInventoryImageRgbaWidth = 0x80; // int32_t + constexpr std::ptrdiff_t m_nInventoryImageRgbaHeight = 0x84; // int32_t + constexpr std::ptrdiff_t m_szCurrentLoadCachedFileName = 0x88; // char[260] + constexpr std::ptrdiff_t m_bRestoreCustomMaterialAfterPrecache = 0x1B8; // bool + constexpr std::ptrdiff_t m_iItemDefinitionIndex = 0x1BA; // uint16_t + constexpr std::ptrdiff_t m_iEntityQuality = 0x1BC; // int32_t + constexpr std::ptrdiff_t m_iEntityLevel = 0x1C0; // uint32_t + constexpr std::ptrdiff_t m_iItemID = 0x1C8; // uint64_t + constexpr std::ptrdiff_t m_iItemIDHigh = 0x1D0; // uint32_t + constexpr std::ptrdiff_t m_iItemIDLow = 0x1D4; // uint32_t + constexpr std::ptrdiff_t m_iAccountID = 0x1D8; // uint32_t + constexpr std::ptrdiff_t m_iInventoryPosition = 0x1DC; // uint32_t + constexpr std::ptrdiff_t m_bInitialized = 0x1E8; // bool + constexpr std::ptrdiff_t m_bIsStoreItem = 0x1E9; // bool + constexpr std::ptrdiff_t m_bIsTradeItem = 0x1EA; // bool + constexpr std::ptrdiff_t m_iEntityQuantity = 0x1EC; // int32_t + constexpr std::ptrdiff_t m_iRarityOverride = 0x1F0; // int32_t + constexpr std::ptrdiff_t m_iQualityOverride = 0x1F4; // int32_t + constexpr std::ptrdiff_t m_unClientFlags = 0x1F8; // uint8_t + constexpr std::ptrdiff_t m_unOverrideStyle = 0x1F9; // uint8_t + constexpr std::ptrdiff_t m_AttributeList = 0x210; // CAttributeList + constexpr std::ptrdiff_t m_NetworkedDynamicAttributes = 0x270; // CAttributeList + constexpr std::ptrdiff_t m_szCustomName = 0x2D0; // char[161] + constexpr std::ptrdiff_t m_szCustomNameOverride = 0x371; // char[161] + constexpr std::ptrdiff_t m_bInitializedTags = 0x440; // bool +} + +namespace C_EconWearable { // C_EconEntity + constexpr std::ptrdiff_t m_nForceSkin = 0x1560; // int32_t + constexpr std::ptrdiff_t m_bAlwaysAllow = 0x1564; // bool +} + +namespace C_EntityDissolve { // C_BaseModelEntity + constexpr std::ptrdiff_t m_flStartTime = 0xCC8; // GameTime_t + constexpr std::ptrdiff_t m_flFadeInStart = 0xCCC; // float + constexpr std::ptrdiff_t m_flFadeInLength = 0xCD0; // float + constexpr std::ptrdiff_t m_flFadeOutModelStart = 0xCD4; // float + constexpr std::ptrdiff_t m_flFadeOutModelLength = 0xCD8; // float + constexpr std::ptrdiff_t m_flFadeOutStart = 0xCDC; // float + constexpr std::ptrdiff_t m_flFadeOutLength = 0xCE0; // float + constexpr std::ptrdiff_t m_flNextSparkTime = 0xCE4; // GameTime_t + constexpr std::ptrdiff_t m_nDissolveType = 0xCE8; // EntityDisolveType_t + constexpr std::ptrdiff_t m_vDissolverOrigin = 0xCEC; // Vector + constexpr std::ptrdiff_t m_nMagnitude = 0xCF8; // uint32_t + constexpr std::ptrdiff_t m_bCoreExplode = 0xCFC; // bool + constexpr std::ptrdiff_t m_bLinkedToServerEnt = 0xCFD; // bool +} + +namespace C_EntityFlame { // C_BaseEntity + constexpr std::ptrdiff_t m_hEntAttached = 0x540; // CHandle + constexpr std::ptrdiff_t m_hOldAttached = 0x568; // CHandle + constexpr std::ptrdiff_t m_bCheapEffect = 0x56C; // bool +} + +namespace C_EnvCombinedLightProbeVolume { // C_BaseEntity + constexpr std::ptrdiff_t m_Color = 0x1598; // Color + constexpr std::ptrdiff_t m_flBrightness = 0x159C; // float + constexpr std::ptrdiff_t m_hCubemapTexture = 0x15A0; // CStrongHandle + constexpr std::ptrdiff_t m_bCustomCubemapTexture = 0x15A8; // bool + constexpr std::ptrdiff_t m_hLightProbeTexture = 0x15B0; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightIndicesTexture = 0x15B8; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightScalarsTexture = 0x15C0; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightShadowsTexture = 0x15C8; // CStrongHandle + constexpr std::ptrdiff_t m_vBoxMins = 0x15D0; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x15DC; // Vector + constexpr std::ptrdiff_t m_bMoveable = 0x15E8; // bool + constexpr std::ptrdiff_t m_nHandshake = 0x15EC; // int32_t + constexpr std::ptrdiff_t m_nEnvCubeMapArrayIndex = 0x15F0; // int32_t + constexpr std::ptrdiff_t m_nPriority = 0x15F4; // int32_t + constexpr std::ptrdiff_t m_bStartDisabled = 0x15F8; // bool + constexpr std::ptrdiff_t m_flEdgeFadeDist = 0x15FC; // float + constexpr std::ptrdiff_t m_vEdgeFadeDists = 0x1600; // Vector + constexpr std::ptrdiff_t m_nLightProbeSizeX = 0x160C; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeY = 0x1610; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeZ = 0x1614; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasX = 0x1618; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasY = 0x161C; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasZ = 0x1620; // int32_t + constexpr std::ptrdiff_t m_bEnabled = 0x1639; // bool +} + +namespace C_EnvCubemap { // C_BaseEntity + constexpr std::ptrdiff_t m_hCubemapTexture = 0x5C0; // CStrongHandle + constexpr std::ptrdiff_t m_bCustomCubemapTexture = 0x5C8; // bool + constexpr std::ptrdiff_t m_flInfluenceRadius = 0x5CC; // float + constexpr std::ptrdiff_t m_vBoxProjectMins = 0x5D0; // Vector + constexpr std::ptrdiff_t m_vBoxProjectMaxs = 0x5DC; // Vector + constexpr std::ptrdiff_t m_bMoveable = 0x5E8; // bool + constexpr std::ptrdiff_t m_nHandshake = 0x5EC; // int32_t + constexpr std::ptrdiff_t m_nEnvCubeMapArrayIndex = 0x5F0; // int32_t + constexpr std::ptrdiff_t m_nPriority = 0x5F4; // int32_t + constexpr std::ptrdiff_t m_flEdgeFadeDist = 0x5F8; // float + constexpr std::ptrdiff_t m_vEdgeFadeDists = 0x5FC; // Vector + constexpr std::ptrdiff_t m_flDiffuseScale = 0x608; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x60C; // bool + constexpr std::ptrdiff_t m_bDefaultEnvMap = 0x60D; // bool + constexpr std::ptrdiff_t m_bDefaultSpecEnvMap = 0x60E; // bool + constexpr std::ptrdiff_t m_bIndoorCubeMap = 0x60F; // bool + constexpr std::ptrdiff_t m_bCopyDiffuseFromDefaultCubemap = 0x610; // bool + constexpr std::ptrdiff_t m_bEnabled = 0x620; // bool +} + +namespace C_EnvCubemapBox { // C_EnvCubemap +} + +namespace C_EnvCubemapFog { // C_BaseEntity + constexpr std::ptrdiff_t m_flEndDistance = 0x540; // float + constexpr std::ptrdiff_t m_flStartDistance = 0x544; // float + constexpr std::ptrdiff_t m_flFogFalloffExponent = 0x548; // float + constexpr std::ptrdiff_t m_bHeightFogEnabled = 0x54C; // bool + constexpr std::ptrdiff_t m_flFogHeightWidth = 0x550; // float + constexpr std::ptrdiff_t m_flFogHeightEnd = 0x554; // float + constexpr std::ptrdiff_t m_flFogHeightStart = 0x558; // float + constexpr std::ptrdiff_t m_flFogHeightExponent = 0x55C; // float + constexpr std::ptrdiff_t m_flLODBias = 0x560; // float + constexpr std::ptrdiff_t m_bActive = 0x564; // bool + constexpr std::ptrdiff_t m_bStartDisabled = 0x565; // bool + constexpr std::ptrdiff_t m_flFogMaxOpacity = 0x568; // float + constexpr std::ptrdiff_t m_nCubemapSourceType = 0x56C; // int32_t + constexpr std::ptrdiff_t m_hSkyMaterial = 0x570; // CStrongHandle + constexpr std::ptrdiff_t m_iszSkyEntity = 0x578; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFogCubemapTexture = 0x580; // CStrongHandle + constexpr std::ptrdiff_t m_bHasHeightFogEnd = 0x588; // bool + constexpr std::ptrdiff_t m_bFirstTime = 0x589; // bool +} + +namespace C_EnvDecal { // C_BaseModelEntity + constexpr std::ptrdiff_t m_hDecalMaterial = 0xCC0; // CStrongHandle + constexpr std::ptrdiff_t m_flWidth = 0xCC8; // float + constexpr std::ptrdiff_t m_flHeight = 0xCCC; // float + constexpr std::ptrdiff_t m_flDepth = 0xCD0; // float + constexpr std::ptrdiff_t m_nRenderOrder = 0xCD4; // uint32_t + constexpr std::ptrdiff_t m_bProjectOnWorld = 0xCD8; // bool + constexpr std::ptrdiff_t m_bProjectOnCharacters = 0xCD9; // bool + constexpr std::ptrdiff_t m_bProjectOnWater = 0xCDA; // bool + constexpr std::ptrdiff_t m_flDepthSortBias = 0xCDC; // float +} + +namespace C_EnvDetailController { // C_BaseEntity + constexpr std::ptrdiff_t m_flFadeStartDist = 0x540; // float + constexpr std::ptrdiff_t m_flFadeEndDist = 0x544; // float +} + +namespace C_EnvLightProbeVolume { // C_BaseEntity + constexpr std::ptrdiff_t m_hLightProbeTexture = 0x1518; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightIndicesTexture = 0x1520; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightScalarsTexture = 0x1528; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightShadowsTexture = 0x1530; // CStrongHandle + constexpr std::ptrdiff_t m_vBoxMins = 0x1538; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x1544; // Vector + constexpr std::ptrdiff_t m_bMoveable = 0x1550; // bool + constexpr std::ptrdiff_t m_nHandshake = 0x1554; // int32_t + constexpr std::ptrdiff_t m_nPriority = 0x1558; // int32_t + constexpr std::ptrdiff_t m_bStartDisabled = 0x155C; // bool + constexpr std::ptrdiff_t m_nLightProbeSizeX = 0x1560; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeY = 0x1564; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeZ = 0x1568; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasX = 0x156C; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasY = 0x1570; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasZ = 0x1574; // int32_t + constexpr std::ptrdiff_t m_bEnabled = 0x1581; // bool +} + +namespace C_EnvParticleGlow { // C_ParticleSystem + constexpr std::ptrdiff_t m_flAlphaScale = 0x1270; // float + constexpr std::ptrdiff_t m_flRadiusScale = 0x1274; // float + constexpr std::ptrdiff_t m_flSelfIllumScale = 0x1278; // float + constexpr std::ptrdiff_t m_ColorTint = 0x127C; // Color + constexpr std::ptrdiff_t m_hTextureOverride = 0x1280; // CStrongHandle +} + +namespace C_EnvProjectedTexture { // C_ModelPointEntity +} + +namespace C_EnvScreenOverlay { // C_PointEntity + constexpr std::ptrdiff_t m_iszOverlayNames = 0x540; // CUtlSymbolLarge[10] + constexpr std::ptrdiff_t m_flOverlayTimes = 0x590; // float[10] + constexpr std::ptrdiff_t m_flStartTime = 0x5B8; // GameTime_t + constexpr std::ptrdiff_t m_iDesiredOverlay = 0x5BC; // int32_t + constexpr std::ptrdiff_t m_bIsActive = 0x5C0; // bool + constexpr std::ptrdiff_t m_bWasActive = 0x5C1; // bool + constexpr std::ptrdiff_t m_iCachedDesiredOverlay = 0x5C4; // int32_t + constexpr std::ptrdiff_t m_iCurrentOverlay = 0x5C8; // int32_t + constexpr std::ptrdiff_t m_flCurrentOverlayTime = 0x5CC; // GameTime_t +} + +namespace C_EnvSky { // C_BaseModelEntity + constexpr std::ptrdiff_t m_hSkyMaterial = 0xCC0; // CStrongHandle + constexpr std::ptrdiff_t m_hSkyMaterialLightingOnly = 0xCC8; // CStrongHandle + constexpr std::ptrdiff_t m_bStartDisabled = 0xCD0; // bool + constexpr std::ptrdiff_t m_vTintColor = 0xCD1; // Color + constexpr std::ptrdiff_t m_vTintColorLightingOnly = 0xCD5; // Color + constexpr std::ptrdiff_t m_flBrightnessScale = 0xCDC; // float + constexpr std::ptrdiff_t m_nFogType = 0xCE0; // int32_t + constexpr std::ptrdiff_t m_flFogMinStart = 0xCE4; // float + constexpr std::ptrdiff_t m_flFogMinEnd = 0xCE8; // float + constexpr std::ptrdiff_t m_flFogMaxStart = 0xCEC; // float + constexpr std::ptrdiff_t m_flFogMaxEnd = 0xCF0; // float + constexpr std::ptrdiff_t m_bEnabled = 0xCF4; // bool +} + +namespace C_EnvVolumetricFogController { // C_BaseEntity + constexpr std::ptrdiff_t m_flScattering = 0x540; // float + constexpr std::ptrdiff_t m_flAnisotropy = 0x544; // float + constexpr std::ptrdiff_t m_flFadeSpeed = 0x548; // float + constexpr std::ptrdiff_t m_flDrawDistance = 0x54C; // float + constexpr std::ptrdiff_t m_flFadeInStart = 0x550; // float + constexpr std::ptrdiff_t m_flFadeInEnd = 0x554; // float + constexpr std::ptrdiff_t m_flIndirectStrength = 0x558; // float + constexpr std::ptrdiff_t m_nIndirectTextureDimX = 0x55C; // int32_t + constexpr std::ptrdiff_t m_nIndirectTextureDimY = 0x560; // int32_t + constexpr std::ptrdiff_t m_nIndirectTextureDimZ = 0x564; // int32_t + constexpr std::ptrdiff_t m_vBoxMins = 0x568; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x574; // Vector + constexpr std::ptrdiff_t m_bActive = 0x580; // bool + constexpr std::ptrdiff_t m_flStartAnisoTime = 0x584; // GameTime_t + constexpr std::ptrdiff_t m_flStartScatterTime = 0x588; // GameTime_t + constexpr std::ptrdiff_t m_flStartDrawDistanceTime = 0x58C; // GameTime_t + constexpr std::ptrdiff_t m_flStartAnisotropy = 0x590; // float + constexpr std::ptrdiff_t m_flStartScattering = 0x594; // float + constexpr std::ptrdiff_t m_flStartDrawDistance = 0x598; // float + constexpr std::ptrdiff_t m_flDefaultAnisotropy = 0x59C; // float + constexpr std::ptrdiff_t m_flDefaultScattering = 0x5A0; // float + constexpr std::ptrdiff_t m_flDefaultDrawDistance = 0x5A4; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x5A8; // bool + constexpr std::ptrdiff_t m_bEnableIndirect = 0x5A9; // bool + constexpr std::ptrdiff_t m_bIsMaster = 0x5AA; // bool + constexpr std::ptrdiff_t m_hFogIndirectTexture = 0x5B0; // CStrongHandle + constexpr std::ptrdiff_t m_nForceRefreshCount = 0x5B8; // int32_t + constexpr std::ptrdiff_t m_bFirstTime = 0x5BC; // bool +} + +namespace C_EnvVolumetricFogVolume { // C_BaseEntity + constexpr std::ptrdiff_t m_bActive = 0x540; // bool + constexpr std::ptrdiff_t m_vBoxMins = 0x544; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x550; // Vector + constexpr std::ptrdiff_t m_bStartDisabled = 0x55C; // bool + constexpr std::ptrdiff_t m_flStrength = 0x560; // float + constexpr std::ptrdiff_t m_nFalloffShape = 0x564; // int32_t + constexpr std::ptrdiff_t m_flFalloffExponent = 0x568; // float +} + +namespace C_EnvWind { // C_BaseEntity + constexpr std::ptrdiff_t m_EnvWindShared = 0x540; // C_EnvWindShared +} + +namespace C_EnvWindClientside { // C_BaseEntity + constexpr std::ptrdiff_t m_EnvWindShared = 0x540; // C_EnvWindShared +} + +namespace C_EnvWindShared { + constexpr std::ptrdiff_t m_flStartTime = 0x8; // GameTime_t + constexpr std::ptrdiff_t m_iWindSeed = 0xC; // uint32_t + constexpr std::ptrdiff_t m_iMinWind = 0x10; // uint16_t + constexpr std::ptrdiff_t m_iMaxWind = 0x12; // uint16_t + constexpr std::ptrdiff_t m_windRadius = 0x14; // int32_t + constexpr std::ptrdiff_t m_iMinGust = 0x18; // uint16_t + constexpr std::ptrdiff_t m_iMaxGust = 0x1A; // uint16_t + constexpr std::ptrdiff_t m_flMinGustDelay = 0x1C; // float + constexpr std::ptrdiff_t m_flMaxGustDelay = 0x20; // float + constexpr std::ptrdiff_t m_flGustDuration = 0x24; // float + constexpr std::ptrdiff_t m_iGustDirChange = 0x28; // uint16_t + constexpr std::ptrdiff_t m_location = 0x2C; // Vector + constexpr std::ptrdiff_t m_iszGustSound = 0x38; // int32_t + constexpr std::ptrdiff_t m_iWindDir = 0x3C; // int32_t + constexpr std::ptrdiff_t m_flWindSpeed = 0x40; // float + constexpr std::ptrdiff_t m_currentWindVector = 0x44; // Vector + constexpr std::ptrdiff_t m_CurrentSwayVector = 0x50; // Vector + constexpr std::ptrdiff_t m_PrevSwayVector = 0x5C; // Vector + constexpr std::ptrdiff_t m_iInitialWindDir = 0x68; // uint16_t + constexpr std::ptrdiff_t m_flInitialWindSpeed = 0x6C; // float + constexpr std::ptrdiff_t m_flVariationTime = 0x70; // GameTime_t + constexpr std::ptrdiff_t m_flSwayTime = 0x74; // GameTime_t + constexpr std::ptrdiff_t m_flSimTime = 0x78; // GameTime_t + constexpr std::ptrdiff_t m_flSwitchTime = 0x7C; // GameTime_t + constexpr std::ptrdiff_t m_flAveWindSpeed = 0x80; // float + constexpr std::ptrdiff_t m_bGusting = 0x84; // bool + constexpr std::ptrdiff_t m_flWindAngleVariation = 0x88; // float + constexpr std::ptrdiff_t m_flWindSpeedVariation = 0x8C; // float + constexpr std::ptrdiff_t m_iEntIndex = 0x90; // CEntityIndex +} + +namespace C_EnvWindShared_WindAveEvent_t { + constexpr std::ptrdiff_t m_flStartWindSpeed = 0x0; // float + constexpr std::ptrdiff_t m_flAveWindSpeed = 0x4; // float +} + +namespace C_EnvWindShared_WindVariationEvent_t { + constexpr std::ptrdiff_t m_flWindAngleVariation = 0x0; // float + constexpr std::ptrdiff_t m_flWindSpeedVariation = 0x4; // float +} + +namespace C_FireCrackerBlast { // C_Inferno +} + +namespace C_FireFromAboveSprite { // C_Sprite +} + +namespace C_FireSmoke { // C_BaseFire + constexpr std::ptrdiff_t m_nFlameModelIndex = 0x550; // int32_t + constexpr std::ptrdiff_t m_nFlameFromAboveModelIndex = 0x554; // int32_t + constexpr std::ptrdiff_t m_flScaleRegister = 0x558; // float + constexpr std::ptrdiff_t m_flScaleStart = 0x55C; // float + constexpr std::ptrdiff_t m_flScaleEnd = 0x560; // float + constexpr std::ptrdiff_t m_flScaleTimeStart = 0x564; // GameTime_t + constexpr std::ptrdiff_t m_flScaleTimeEnd = 0x568; // GameTime_t + constexpr std::ptrdiff_t m_flChildFlameSpread = 0x56C; // float + constexpr std::ptrdiff_t m_flClipPerc = 0x580; // float + constexpr std::ptrdiff_t m_bClipTested = 0x584; // bool + constexpr std::ptrdiff_t m_bFadingOut = 0x585; // bool + constexpr std::ptrdiff_t m_tParticleSpawn = 0x588; // TimedEvent + constexpr std::ptrdiff_t m_pFireOverlay = 0x590; // CFireOverlay* +} + +namespace C_FireSprite { // C_Sprite + constexpr std::ptrdiff_t m_vecMoveDir = 0xDF0; // Vector + constexpr std::ptrdiff_t m_bFadeFromAbove = 0xDFC; // bool +} + +namespace C_Fish { // CBaseAnimGraph + constexpr std::ptrdiff_t m_pos = 0xE80; // Vector + constexpr std::ptrdiff_t m_vel = 0xE8C; // Vector + constexpr std::ptrdiff_t m_angles = 0xE98; // QAngle + constexpr std::ptrdiff_t m_localLifeState = 0xEA4; // int32_t + constexpr std::ptrdiff_t m_deathDepth = 0xEA8; // float + constexpr std::ptrdiff_t m_deathAngle = 0xEAC; // float + constexpr std::ptrdiff_t m_buoyancy = 0xEB0; // float + constexpr std::ptrdiff_t m_wiggleTimer = 0xEB8; // CountdownTimer + constexpr std::ptrdiff_t m_wigglePhase = 0xED0; // float + constexpr std::ptrdiff_t m_wiggleRate = 0xED4; // float + constexpr std::ptrdiff_t m_actualPos = 0xED8; // Vector + constexpr std::ptrdiff_t m_actualAngles = 0xEE4; // QAngle + constexpr std::ptrdiff_t m_poolOrigin = 0xEF0; // Vector + constexpr std::ptrdiff_t m_waterLevel = 0xEFC; // float + constexpr std::ptrdiff_t m_gotUpdate = 0xF00; // bool + constexpr std::ptrdiff_t m_x = 0xF04; // float + constexpr std::ptrdiff_t m_y = 0xF08; // float + constexpr std::ptrdiff_t m_z = 0xF0C; // float + constexpr std::ptrdiff_t m_angle = 0xF10; // float + constexpr std::ptrdiff_t m_errorHistory = 0xF14; // float[20] + constexpr std::ptrdiff_t m_errorHistoryIndex = 0xF64; // int32_t + constexpr std::ptrdiff_t m_errorHistoryCount = 0xF68; // int32_t + constexpr std::ptrdiff_t m_averageError = 0xF6C; // float +} + +namespace C_Fists { // C_CSWeaponBase + constexpr std::ptrdiff_t m_bPlayingUninterruptableAct = 0x1990; // bool + constexpr std::ptrdiff_t m_nUninterruptableActivity = 0x1994; // PlayerAnimEvent_t +} + +namespace C_Flashbang { // C_BaseCSGrenade +} + +namespace C_FlashbangProjectile { // C_BaseCSGrenadeProjectile +} + +namespace C_FogController { // C_BaseEntity + constexpr std::ptrdiff_t m_fog = 0x540; // fogparams_t + constexpr std::ptrdiff_t m_bUseAngles = 0x5A8; // bool + constexpr std::ptrdiff_t m_iChangedVariables = 0x5AC; // int32_t +} + +namespace C_FootstepControl { // C_BaseTrigger + constexpr std::ptrdiff_t m_source = 0xCC8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_destination = 0xCD0; // CUtlSymbolLarge +} + +namespace C_FuncBrush { // C_BaseModelEntity +} + +namespace C_FuncConveyor { // C_BaseModelEntity + constexpr std::ptrdiff_t m_vecMoveDirEntitySpace = 0xCC8; // Vector + constexpr std::ptrdiff_t m_flTargetSpeed = 0xCD4; // float + constexpr std::ptrdiff_t m_nTransitionStartTick = 0xCD8; // GameTick_t + constexpr std::ptrdiff_t m_nTransitionDurationTicks = 0xCDC; // int32_t + constexpr std::ptrdiff_t m_flTransitionStartSpeed = 0xCE0; // float + constexpr std::ptrdiff_t m_hConveyorModels = 0xCE8; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_flCurrentConveyorOffset = 0xD00; // float + constexpr std::ptrdiff_t m_flCurrentConveyorSpeed = 0xD04; // float +} + +namespace C_FuncElectrifiedVolume { // C_FuncBrush + constexpr std::ptrdiff_t m_nAmbientEffect = 0xCC0; // ParticleIndex_t + constexpr std::ptrdiff_t m_EffectName = 0xCC8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bState = 0xCD0; // bool +} + +namespace C_FuncLadder { // C_BaseModelEntity + constexpr std::ptrdiff_t m_vecLadderDir = 0xCC0; // Vector + constexpr std::ptrdiff_t m_Dismounts = 0xCD0; // CUtlVector> + constexpr std::ptrdiff_t m_vecLocalTop = 0xCE8; // Vector + constexpr std::ptrdiff_t m_vecPlayerMountPositionTop = 0xCF4; // Vector + constexpr std::ptrdiff_t m_vecPlayerMountPositionBottom = 0xD00; // Vector + constexpr std::ptrdiff_t m_flAutoRideSpeed = 0xD0C; // float + constexpr std::ptrdiff_t m_bDisabled = 0xD10; // bool + constexpr std::ptrdiff_t m_bFakeLadder = 0xD11; // bool + constexpr std::ptrdiff_t m_bHasSlack = 0xD12; // bool +} + +namespace C_FuncMonitor { // C_FuncBrush + constexpr std::ptrdiff_t m_targetCamera = 0xCC0; // CUtlString + constexpr std::ptrdiff_t m_nResolutionEnum = 0xCC8; // int32_t + constexpr std::ptrdiff_t m_bRenderShadows = 0xCCC; // bool + constexpr std::ptrdiff_t m_bUseUniqueColorTarget = 0xCCD; // bool + constexpr std::ptrdiff_t m_brushModelName = 0xCD0; // CUtlString + constexpr std::ptrdiff_t m_hTargetCamera = 0xCD8; // CHandle + constexpr std::ptrdiff_t m_bEnabled = 0xCDC; // bool + constexpr std::ptrdiff_t m_bDraw3DSkybox = 0xCDD; // bool +} + +namespace C_FuncMoveLinear { // C_BaseToggle +} + +namespace C_FuncRotating { // C_BaseModelEntity +} + +namespace C_FuncTrackTrain { // C_BaseModelEntity + constexpr std::ptrdiff_t m_nLongAxis = 0xCC0; // int32_t + constexpr std::ptrdiff_t m_flRadius = 0xCC4; // float + constexpr std::ptrdiff_t m_flLineLength = 0xCC8; // float +} + +namespace C_GameRules { +} + +namespace C_GameRulesProxy { // C_BaseEntity +} + +namespace C_GlobalLight { // C_BaseEntity + constexpr std::ptrdiff_t m_WindClothForceHandle = 0xA00; // uint16_t +} + +namespace C_GradientFog { // C_BaseEntity + constexpr std::ptrdiff_t m_hGradientFogTexture = 0x540; // CStrongHandle + constexpr std::ptrdiff_t m_flFogStartDistance = 0x548; // float + constexpr std::ptrdiff_t m_flFogEndDistance = 0x54C; // float + constexpr std::ptrdiff_t m_bHeightFogEnabled = 0x550; // bool + constexpr std::ptrdiff_t m_flFogStartHeight = 0x554; // float + constexpr std::ptrdiff_t m_flFogEndHeight = 0x558; // float + constexpr std::ptrdiff_t m_flFarZ = 0x55C; // float + constexpr std::ptrdiff_t m_flFogMaxOpacity = 0x560; // float + constexpr std::ptrdiff_t m_flFogFalloffExponent = 0x564; // float + constexpr std::ptrdiff_t m_flFogVerticalExponent = 0x568; // float + constexpr std::ptrdiff_t m_fogColor = 0x56C; // Color + constexpr std::ptrdiff_t m_flFogStrength = 0x570; // float + constexpr std::ptrdiff_t m_flFadeTime = 0x574; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x578; // bool + constexpr std::ptrdiff_t m_bIsEnabled = 0x579; // bool + constexpr std::ptrdiff_t m_bGradientFogNeedsTextures = 0x57A; // bool +} + +namespace C_HEGrenade { // C_BaseCSGrenade +} + +namespace C_HEGrenadeProjectile { // C_BaseCSGrenadeProjectile +} + +namespace C_HandleTest { // C_BaseEntity + constexpr std::ptrdiff_t m_Handle = 0x540; // CHandle + constexpr std::ptrdiff_t m_bSendHandle = 0x544; // bool +} + +namespace C_Hostage { // C_BaseCombatCharacter + constexpr std::ptrdiff_t m_entitySpottedState = 0x10A8; // EntitySpottedState_t + constexpr std::ptrdiff_t m_leader = 0x10C0; // CHandle + constexpr std::ptrdiff_t m_reuseTimer = 0x10C8; // CountdownTimer + constexpr std::ptrdiff_t m_vel = 0x10E0; // Vector + constexpr std::ptrdiff_t m_isRescued = 0x10EC; // bool + constexpr std::ptrdiff_t m_jumpedThisFrame = 0x10ED; // bool + constexpr std::ptrdiff_t m_nHostageState = 0x10F0; // int32_t + constexpr std::ptrdiff_t m_bHandsHaveBeenCut = 0x10F4; // bool + constexpr std::ptrdiff_t m_hHostageGrabber = 0x10F8; // CHandle + constexpr std::ptrdiff_t m_fLastGrabTime = 0x10FC; // GameTime_t + constexpr std::ptrdiff_t m_vecGrabbedPos = 0x1100; // Vector + constexpr std::ptrdiff_t m_flRescueStartTime = 0x110C; // GameTime_t + constexpr std::ptrdiff_t m_flGrabSuccessTime = 0x1110; // GameTime_t + constexpr std::ptrdiff_t m_flDropStartTime = 0x1114; // GameTime_t + constexpr std::ptrdiff_t m_flDeadOrRescuedTime = 0x1118; // GameTime_t + constexpr std::ptrdiff_t m_blinkTimer = 0x1120; // CountdownTimer + constexpr std::ptrdiff_t m_lookAt = 0x1138; // Vector + constexpr std::ptrdiff_t m_lookAroundTimer = 0x1148; // CountdownTimer + constexpr std::ptrdiff_t m_isInit = 0x1160; // bool + constexpr std::ptrdiff_t m_eyeAttachment = 0x1161; // AttachmentHandle_t + constexpr std::ptrdiff_t m_chestAttachment = 0x1162; // AttachmentHandle_t + constexpr std::ptrdiff_t m_pPredictionOwner = 0x1168; // CBasePlayerController* + constexpr std::ptrdiff_t m_fNewestAlphaThinkTime = 0x1170; // GameTime_t +} + +namespace C_HostageCarriableProp { // CBaseAnimGraph +} + +namespace C_IncendiaryGrenade { // C_MolotovGrenade +} + +namespace C_Inferno { // C_BaseModelEntity + constexpr std::ptrdiff_t m_nfxFireDamageEffect = 0xD00; // ParticleIndex_t + constexpr std::ptrdiff_t m_firePositions = 0xD04; // Vector[64] + constexpr std::ptrdiff_t m_fireParentPositions = 0x1004; // Vector[64] + constexpr std::ptrdiff_t m_bFireIsBurning = 0x1304; // bool[64] + constexpr std::ptrdiff_t m_BurnNormal = 0x1344; // Vector[64] + constexpr std::ptrdiff_t m_fireCount = 0x1644; // int32_t + constexpr std::ptrdiff_t m_nInfernoType = 0x1648; // int32_t + constexpr std::ptrdiff_t m_nFireLifetime = 0x164C; // float + constexpr std::ptrdiff_t m_bInPostEffectTime = 0x1650; // bool + constexpr std::ptrdiff_t m_lastFireCount = 0x1654; // int32_t + constexpr std::ptrdiff_t m_nFireEffectTickBegin = 0x1658; // int32_t + constexpr std::ptrdiff_t m_drawableCount = 0x8260; // int32_t + constexpr std::ptrdiff_t m_blosCheck = 0x8264; // bool + constexpr std::ptrdiff_t m_nlosperiod = 0x8268; // int32_t + constexpr std::ptrdiff_t m_maxFireHalfWidth = 0x826C; // float + constexpr std::ptrdiff_t m_maxFireHeight = 0x8270; // float + constexpr std::ptrdiff_t m_minBounds = 0x8274; // Vector + constexpr std::ptrdiff_t m_maxBounds = 0x8280; // Vector + constexpr std::ptrdiff_t m_flLastGrassBurnThink = 0x828C; // float +} + +namespace C_InfoInstructorHintHostageRescueZone { // C_PointEntity +} + +namespace C_InfoLadderDismount { // C_BaseEntity +} + +namespace C_InfoVisibilityBox { // C_BaseEntity + constexpr std::ptrdiff_t m_nMode = 0x544; // int32_t + constexpr std::ptrdiff_t m_vBoxSize = 0x548; // Vector + constexpr std::ptrdiff_t m_bEnabled = 0x554; // bool +} + +namespace C_IronSightController { + constexpr std::ptrdiff_t m_bIronSightAvailable = 0x10; // bool + constexpr std::ptrdiff_t m_flIronSightAmount = 0x14; // float + constexpr std::ptrdiff_t m_flIronSightAmountGained = 0x18; // float + constexpr std::ptrdiff_t m_flIronSightAmountBiased = 0x1C; // float + constexpr std::ptrdiff_t m_flIronSightAmount_Interpolated = 0x20; // float + constexpr std::ptrdiff_t m_flIronSightAmountGained_Interpolated = 0x24; // float + constexpr std::ptrdiff_t m_flIronSightAmountBiased_Interpolated = 0x28; // float + constexpr std::ptrdiff_t m_flInterpolationLastUpdated = 0x2C; // float + constexpr std::ptrdiff_t m_angDeltaAverage = 0x30; // QAngle[8] + constexpr std::ptrdiff_t m_angViewLast = 0x90; // QAngle + constexpr std::ptrdiff_t m_vecDotCoords = 0x9C; // Vector2D + constexpr std::ptrdiff_t m_flDotBlur = 0xA4; // float + constexpr std::ptrdiff_t m_flSpeedRatio = 0xA8; // float +} + +namespace C_Item { // C_EconEntity + constexpr std::ptrdiff_t m_bShouldGlow = 0x1560; // bool + constexpr std::ptrdiff_t m_pReticleHintTextName = 0x1561; // char[256] +} + +namespace C_ItemDogtags { // C_Item + constexpr std::ptrdiff_t m_OwningPlayer = 0x1668; // CHandle + constexpr std::ptrdiff_t m_KillingPlayer = 0x166C; // CHandle +} + +namespace C_Item_Healthshot { // C_WeaponBaseItem +} + +namespace C_Knife { // C_CSWeaponBase +} + +namespace C_LightDirectionalEntity { // C_LightEntity +} + +namespace C_LightEntity { // C_BaseModelEntity + constexpr std::ptrdiff_t m_CLightComponent = 0xCC0; // CLightComponent* +} + +namespace C_LightEnvironmentEntity { // C_LightDirectionalEntity +} + +namespace C_LightGlow { // C_BaseModelEntity + constexpr std::ptrdiff_t m_nHorizontalSize = 0xCC0; // uint32_t + constexpr std::ptrdiff_t m_nVerticalSize = 0xCC4; // uint32_t + constexpr std::ptrdiff_t m_nMinDist = 0xCC8; // uint32_t + constexpr std::ptrdiff_t m_nMaxDist = 0xCCC; // uint32_t + constexpr std::ptrdiff_t m_nOuterMaxDist = 0xCD0; // uint32_t + constexpr std::ptrdiff_t m_flGlowProxySize = 0xCD4; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0xCD8; // float + constexpr std::ptrdiff_t m_Glow = 0xCE0; // C_LightGlowOverlay +} + +namespace C_LightGlowOverlay { // CGlowOverlay + constexpr std::ptrdiff_t m_vecOrigin = 0xD0; // Vector + constexpr std::ptrdiff_t m_vecDirection = 0xDC; // Vector + constexpr std::ptrdiff_t m_nMinDist = 0xE8; // int32_t + constexpr std::ptrdiff_t m_nMaxDist = 0xEC; // int32_t + constexpr std::ptrdiff_t m_nOuterMaxDist = 0xF0; // int32_t + constexpr std::ptrdiff_t m_bOneSided = 0xF4; // bool + constexpr std::ptrdiff_t m_bModulateByDot = 0xF5; // bool +} + +namespace C_LightOrthoEntity { // C_LightEntity +} + +namespace C_LightSpotEntity { // C_LightEntity +} + +namespace C_LocalTempEntity { // CBaseAnimGraph + constexpr std::ptrdiff_t flags = 0xE98; // int32_t + constexpr std::ptrdiff_t die = 0xE9C; // GameTime_t + constexpr std::ptrdiff_t m_flFrameMax = 0xEA0; // float + constexpr std::ptrdiff_t x = 0xEA4; // float + constexpr std::ptrdiff_t y = 0xEA8; // float + constexpr std::ptrdiff_t fadeSpeed = 0xEAC; // float + constexpr std::ptrdiff_t bounceFactor = 0xEB0; // float + constexpr std::ptrdiff_t hitSound = 0xEB4; // int32_t + constexpr std::ptrdiff_t priority = 0xEB8; // int32_t + constexpr std::ptrdiff_t tentOffset = 0xEBC; // Vector + constexpr std::ptrdiff_t m_vecTempEntAngVelocity = 0xEC8; // QAngle + constexpr std::ptrdiff_t tempent_renderamt = 0xED4; // int32_t + constexpr std::ptrdiff_t m_vecNormal = 0xED8; // Vector + constexpr std::ptrdiff_t m_flSpriteScale = 0xEE4; // float + constexpr std::ptrdiff_t m_nFlickerFrame = 0xEE8; // int32_t + constexpr std::ptrdiff_t m_flFrameRate = 0xEEC; // float + constexpr std::ptrdiff_t m_flFrame = 0xEF0; // float + constexpr std::ptrdiff_t m_pszImpactEffect = 0xEF8; // char* + constexpr std::ptrdiff_t m_pszParticleEffect = 0xF00; // char* + constexpr std::ptrdiff_t m_bParticleCollision = 0xF08; // bool + constexpr std::ptrdiff_t m_iLastCollisionFrame = 0xF0C; // int32_t + constexpr std::ptrdiff_t m_vLastCollisionOrigin = 0xF10; // Vector + constexpr std::ptrdiff_t m_vecTempEntVelocity = 0xF1C; // Vector + constexpr std::ptrdiff_t m_vecPrevAbsOrigin = 0xF28; // Vector + constexpr std::ptrdiff_t m_vecTempEntAcceleration = 0xF34; // Vector +} + +namespace C_MapPreviewParticleSystem { // C_ParticleSystem +} + +namespace C_MapVetoPickController { // C_BaseEntity + constexpr std::ptrdiff_t m_nDraftType = 0x550; // int32_t + constexpr std::ptrdiff_t m_nTeamWinningCoinToss = 0x554; // int32_t + constexpr std::ptrdiff_t m_nTeamWithFirstChoice = 0x558; // int32_t[64] + constexpr std::ptrdiff_t m_nVoteMapIdsList = 0x658; // int32_t[7] + constexpr std::ptrdiff_t m_nAccountIDs = 0x674; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId0 = 0x774; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId1 = 0x874; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId2 = 0x974; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId3 = 0xA74; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId4 = 0xB74; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId5 = 0xC74; // int32_t[64] + constexpr std::ptrdiff_t m_nStartingSide0 = 0xD74; // int32_t[64] + constexpr std::ptrdiff_t m_nCurrentPhase = 0xE74; // int32_t + constexpr std::ptrdiff_t m_nPhaseStartTick = 0xE78; // int32_t + constexpr std::ptrdiff_t m_nPhaseDurationTicks = 0xE7C; // int32_t + constexpr std::ptrdiff_t m_nPostDataUpdateTick = 0xE80; // int32_t + constexpr std::ptrdiff_t m_bDisabledHud = 0xE84; // bool +} + +namespace C_Melee { // C_CSWeaponBase + constexpr std::ptrdiff_t m_flThrowAt = 0x1990; // GameTime_t +} + +namespace C_ModelPointEntity { // C_BaseModelEntity +} + +namespace C_MolotovGrenade { // C_BaseCSGrenade +} + +namespace C_MolotovProjectile { // C_BaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_bIsIncGrenade = 0x10F0; // bool +} + +namespace C_Multimeter { // CBaseAnimGraph + constexpr std::ptrdiff_t m_hTargetC4 = 0xE88; // CHandle +} + +namespace C_MultiplayRules { // C_GameRules +} + +namespace C_NetTestBaseCombatCharacter { // C_BaseCombatCharacter +} + +namespace C_OmniLight { // C_BarnLight + constexpr std::ptrdiff_t m_flInnerAngle = 0xF08; // float + constexpr std::ptrdiff_t m_flOuterAngle = 0xF0C; // float + constexpr std::ptrdiff_t m_bShowLight = 0xF10; // bool +} + +namespace C_ParticleSystem { // C_BaseModelEntity + constexpr std::ptrdiff_t m_szSnapshotFileName = 0xCC0; // char[512] + constexpr std::ptrdiff_t m_bActive = 0xEC0; // bool + constexpr std::ptrdiff_t m_bFrozen = 0xEC1; // bool + constexpr std::ptrdiff_t m_flFreezeTransitionDuration = 0xEC4; // float + constexpr std::ptrdiff_t m_nStopType = 0xEC8; // int32_t + constexpr std::ptrdiff_t m_bAnimateDuringGameplayPause = 0xECC; // bool + constexpr std::ptrdiff_t m_iEffectIndex = 0xED0; // CStrongHandle + constexpr std::ptrdiff_t m_flStartTime = 0xED8; // GameTime_t + constexpr std::ptrdiff_t m_flPreSimTime = 0xEDC; // float + constexpr std::ptrdiff_t m_vServerControlPoints = 0xEE0; // Vector[4] + constexpr std::ptrdiff_t m_iServerControlPointAssignments = 0xF10; // uint8_t[4] + constexpr std::ptrdiff_t m_hControlPointEnts = 0xF14; // CHandle[64] + constexpr std::ptrdiff_t m_bNoSave = 0x1014; // bool + constexpr std::ptrdiff_t m_bNoFreeze = 0x1015; // bool + constexpr std::ptrdiff_t m_bNoRamp = 0x1016; // bool + constexpr std::ptrdiff_t m_bStartActive = 0x1017; // bool + constexpr std::ptrdiff_t m_iszEffectName = 0x1018; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszControlPointNames = 0x1020; // CUtlSymbolLarge[64] + constexpr std::ptrdiff_t m_nDataCP = 0x1220; // int32_t + constexpr std::ptrdiff_t m_vecDataCPValue = 0x1224; // Vector + constexpr std::ptrdiff_t m_nTintCP = 0x1230; // int32_t + constexpr std::ptrdiff_t m_clrTint = 0x1234; // Color + constexpr std::ptrdiff_t m_bOldActive = 0x1258; // bool + constexpr std::ptrdiff_t m_bOldFrozen = 0x1259; // bool +} + +namespace C_PathParticleRope { // C_BaseEntity + constexpr std::ptrdiff_t m_bStartActive = 0x540; // bool + constexpr std::ptrdiff_t m_flMaxSimulationTime = 0x544; // float + constexpr std::ptrdiff_t m_iszEffectName = 0x548; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_PathNodes_Name = 0x550; // CUtlVector + constexpr std::ptrdiff_t m_flParticleSpacing = 0x568; // float + constexpr std::ptrdiff_t m_flSlack = 0x56C; // float + constexpr std::ptrdiff_t m_flRadius = 0x570; // float + constexpr std::ptrdiff_t m_ColorTint = 0x574; // Color + constexpr std::ptrdiff_t m_nEffectState = 0x578; // int32_t + constexpr std::ptrdiff_t m_iEffectIndex = 0x580; // CStrongHandle + constexpr std::ptrdiff_t m_PathNodes_Position = 0x588; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_TangentIn = 0x5A0; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_TangentOut = 0x5B8; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_Color = 0x5D0; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_PinEnabled = 0x5E8; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_RadiusScale = 0x600; // C_NetworkUtlVectorBase +} + +namespace C_PathParticleRopeAlias_path_particle_rope_clientside { // C_PathParticleRope +} + +namespace C_PhysBox { // C_Breakable +} + +namespace C_PhysMagnet { // CBaseAnimGraph + constexpr std::ptrdiff_t m_aAttachedObjectsFromServer = 0xE80; // CUtlVector + constexpr std::ptrdiff_t m_aAttachedObjects = 0xE98; // CUtlVector> +} + +namespace C_PhysPropClientside { // C_BreakableProp + constexpr std::ptrdiff_t m_flTouchDelta = 0xFD0; // GameTime_t + constexpr std::ptrdiff_t m_fDeathTime = 0xFD4; // GameTime_t + constexpr std::ptrdiff_t m_impactEnergyScale = 0xFD8; // float + constexpr std::ptrdiff_t m_inertiaScale = 0xFDC; // float + constexpr std::ptrdiff_t m_flDmgModBullet = 0xFE0; // float + constexpr std::ptrdiff_t m_flDmgModClub = 0xFE4; // float + constexpr std::ptrdiff_t m_flDmgModExplosive = 0xFE8; // float + constexpr std::ptrdiff_t m_flDmgModFire = 0xFEC; // float + constexpr std::ptrdiff_t m_iszPhysicsDamageTableName = 0xFF0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszBasePropData = 0xFF8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iInteractions = 0x1000; // int32_t + constexpr std::ptrdiff_t m_bHasBreakPiecesOrCommands = 0x1004; // bool + constexpr std::ptrdiff_t m_vecDamagePosition = 0x1008; // Vector + constexpr std::ptrdiff_t m_vecDamageDirection = 0x1014; // Vector + constexpr std::ptrdiff_t m_nDamageType = 0x1020; // int32_t +} + +namespace C_PhysicsProp { // C_BreakableProp + constexpr std::ptrdiff_t m_bAwake = 0xFD0; // bool +} + +namespace C_PhysicsPropMultiplayer { // C_PhysicsProp +} + +namespace C_PickUpModelSlerper { // CBaseAnimGraph + constexpr std::ptrdiff_t m_hPlayerParent = 0xE80; // CHandle + constexpr std::ptrdiff_t m_hItem = 0xE84; // CHandle + constexpr std::ptrdiff_t m_flTimePickedUp = 0xE88; // float + constexpr std::ptrdiff_t m_angOriginal = 0xE8C; // QAngle + constexpr std::ptrdiff_t m_vecPosOriginal = 0xE98; // Vector + constexpr std::ptrdiff_t m_angRandom = 0xEA8; // QAngle +} + +namespace C_PlantedC4 { // CBaseAnimGraph + constexpr std::ptrdiff_t m_bBombTicking = 0xE80; // bool + constexpr std::ptrdiff_t m_nBombSite = 0xE84; // int32_t + constexpr std::ptrdiff_t m_nSourceSoundscapeHash = 0xE88; // int32_t + constexpr std::ptrdiff_t m_entitySpottedState = 0xE90; // EntitySpottedState_t + constexpr std::ptrdiff_t m_flNextGlow = 0xEA8; // GameTime_t + constexpr std::ptrdiff_t m_flNextBeep = 0xEAC; // GameTime_t + constexpr std::ptrdiff_t m_flC4Blow = 0xEB0; // GameTime_t + constexpr std::ptrdiff_t m_bCannotBeDefused = 0xEB4; // bool + constexpr std::ptrdiff_t m_bHasExploded = 0xEB5; // bool + constexpr std::ptrdiff_t m_flTimerLength = 0xEB8; // float + constexpr std::ptrdiff_t m_bBeingDefused = 0xEBC; // bool + constexpr std::ptrdiff_t m_bTriggerWarning = 0xEC0; // float + constexpr std::ptrdiff_t m_bExplodeWarning = 0xEC4; // float + constexpr std::ptrdiff_t m_bC4Activated = 0xEC8; // bool + constexpr std::ptrdiff_t m_bTenSecWarning = 0xEC9; // bool + constexpr std::ptrdiff_t m_flDefuseLength = 0xECC; // float + constexpr std::ptrdiff_t m_flDefuseCountDown = 0xED0; // GameTime_t + constexpr std::ptrdiff_t m_bBombDefused = 0xED4; // bool + constexpr std::ptrdiff_t m_hBombDefuser = 0xED8; // CHandle + constexpr std::ptrdiff_t m_hControlPanel = 0xEDC; // CHandle + constexpr std::ptrdiff_t m_hDefuserMultimeter = 0xEE0; // CHandle + constexpr std::ptrdiff_t m_flNextRadarFlashTime = 0xEE4; // GameTime_t + constexpr std::ptrdiff_t m_bRadarFlash = 0xEE8; // bool + constexpr std::ptrdiff_t m_pBombDefuser = 0xEEC; // CHandle + constexpr std::ptrdiff_t m_fLastDefuseTime = 0xEF0; // GameTime_t + constexpr std::ptrdiff_t m_pPredictionOwner = 0xEF8; // CBasePlayerController* +} + +namespace C_PlayerPing { // C_BaseEntity + constexpr std::ptrdiff_t m_hPlayer = 0x570; // CHandle + constexpr std::ptrdiff_t m_hPingedEntity = 0x574; // CHandle + constexpr std::ptrdiff_t m_iType = 0x578; // int32_t + constexpr std::ptrdiff_t m_bUrgent = 0x57C; // bool + constexpr std::ptrdiff_t m_szPlaceName = 0x57D; // char[18] +} + +namespace C_PlayerSprayDecal { // C_ModelPointEntity + constexpr std::ptrdiff_t m_nUniqueID = 0xCC0; // int32_t + constexpr std::ptrdiff_t m_unAccountID = 0xCC4; // uint32_t + constexpr std::ptrdiff_t m_unTraceID = 0xCC8; // uint32_t + constexpr std::ptrdiff_t m_rtGcTime = 0xCCC; // uint32_t + constexpr std::ptrdiff_t m_vecEndPos = 0xCD0; // Vector + constexpr std::ptrdiff_t m_vecStart = 0xCDC; // Vector + constexpr std::ptrdiff_t m_vecLeft = 0xCE8; // Vector + constexpr std::ptrdiff_t m_vecNormal = 0xCF4; // Vector + constexpr std::ptrdiff_t m_nPlayer = 0xD00; // int32_t + constexpr std::ptrdiff_t m_nEntity = 0xD04; // int32_t + constexpr std::ptrdiff_t m_nHitbox = 0xD08; // int32_t + constexpr std::ptrdiff_t m_flCreationTime = 0xD0C; // float + constexpr std::ptrdiff_t m_nTintID = 0xD10; // int32_t + constexpr std::ptrdiff_t m_nVersion = 0xD14; // uint8_t + constexpr std::ptrdiff_t m_ubSignature = 0xD15; // uint8_t[128] + constexpr std::ptrdiff_t m_SprayRenderHelper = 0xDA0; // CPlayerSprayDecalRenderHelper +} + +namespace C_PlayerVisibility { // C_BaseEntity + constexpr std::ptrdiff_t m_flVisibilityStrength = 0x540; // float + constexpr std::ptrdiff_t m_flFogDistanceMultiplier = 0x544; // float + constexpr std::ptrdiff_t m_flFogMaxDensityMultiplier = 0x548; // float + constexpr std::ptrdiff_t m_flFadeTime = 0x54C; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x550; // bool + constexpr std::ptrdiff_t m_bIsEnabled = 0x551; // bool +} + +namespace C_PointCamera { // C_BaseEntity + constexpr std::ptrdiff_t m_FOV = 0x540; // float + constexpr std::ptrdiff_t m_Resolution = 0x544; // float + constexpr std::ptrdiff_t m_bFogEnable = 0x548; // bool + constexpr std::ptrdiff_t m_FogColor = 0x549; // Color + constexpr std::ptrdiff_t m_flFogStart = 0x550; // float + constexpr std::ptrdiff_t m_flFogEnd = 0x554; // float + constexpr std::ptrdiff_t m_flFogMaxDensity = 0x558; // float + constexpr std::ptrdiff_t m_bActive = 0x55C; // bool + constexpr std::ptrdiff_t m_bUseScreenAspectRatio = 0x55D; // bool + constexpr std::ptrdiff_t m_flAspectRatio = 0x560; // float + constexpr std::ptrdiff_t m_bNoSky = 0x564; // bool + constexpr std::ptrdiff_t m_fBrightness = 0x568; // float + constexpr std::ptrdiff_t m_flZFar = 0x56C; // float + constexpr std::ptrdiff_t m_flZNear = 0x570; // float + constexpr std::ptrdiff_t m_bCanHLTVUse = 0x574; // bool + constexpr std::ptrdiff_t m_bDofEnabled = 0x575; // bool + constexpr std::ptrdiff_t m_flDofNearBlurry = 0x578; // float + constexpr std::ptrdiff_t m_flDofNearCrisp = 0x57C; // float + constexpr std::ptrdiff_t m_flDofFarCrisp = 0x580; // float + constexpr std::ptrdiff_t m_flDofFarBlurry = 0x584; // float + constexpr std::ptrdiff_t m_flDofTiltToGround = 0x588; // float + constexpr std::ptrdiff_t m_TargetFOV = 0x58C; // float + constexpr std::ptrdiff_t m_DegreesPerSecond = 0x590; // float + constexpr std::ptrdiff_t m_bIsOn = 0x594; // bool + constexpr std::ptrdiff_t m_pNext = 0x598; // C_PointCamera* +} + +namespace C_PointCameraVFOV { // C_PointCamera + constexpr std::ptrdiff_t m_flVerticalFOV = 0x5A0; // float +} + +namespace C_PointClientUIDialog { // C_BaseClientUIEntity + constexpr std::ptrdiff_t m_hActivator = 0xCF0; // CHandle + constexpr std::ptrdiff_t m_bStartEnabled = 0xCF4; // bool +} + +namespace C_PointClientUIHUD { // C_BaseClientUIEntity + constexpr std::ptrdiff_t m_bCheckCSSClasses = 0xCF8; // bool + constexpr std::ptrdiff_t m_bIgnoreInput = 0xE80; // bool + constexpr std::ptrdiff_t m_flWidth = 0xE84; // float + constexpr std::ptrdiff_t m_flHeight = 0xE88; // float + constexpr std::ptrdiff_t m_flDPI = 0xE8C; // float + constexpr std::ptrdiff_t m_flInteractDistance = 0xE90; // float + constexpr std::ptrdiff_t m_flDepthOffset = 0xE94; // float + constexpr std::ptrdiff_t m_unOwnerContext = 0xE98; // uint32_t + constexpr std::ptrdiff_t m_unHorizontalAlign = 0xE9C; // uint32_t + constexpr std::ptrdiff_t m_unVerticalAlign = 0xEA0; // uint32_t + constexpr std::ptrdiff_t m_unOrientation = 0xEA4; // uint32_t + constexpr std::ptrdiff_t m_bAllowInteractionFromAllSceneWorlds = 0xEA8; // bool + constexpr std::ptrdiff_t m_vecCSSClasses = 0xEB0; // C_NetworkUtlVectorBase +} + +namespace C_PointClientUIWorldPanel { // C_BaseClientUIEntity + constexpr std::ptrdiff_t m_bForceRecreateNextUpdate = 0xCF8; // bool + constexpr std::ptrdiff_t m_bMoveViewToPlayerNextThink = 0xCF9; // bool + constexpr std::ptrdiff_t m_bCheckCSSClasses = 0xCFA; // bool + constexpr std::ptrdiff_t m_anchorDeltaTransform = 0xD00; // CTransform + constexpr std::ptrdiff_t m_pOffScreenIndicator = 0xEA0; // CPointOffScreenIndicatorUi* + constexpr std::ptrdiff_t m_bIgnoreInput = 0xEC8; // bool + constexpr std::ptrdiff_t m_bLit = 0xEC9; // bool + constexpr std::ptrdiff_t m_bFollowPlayerAcrossTeleport = 0xECA; // bool + constexpr std::ptrdiff_t m_flWidth = 0xECC; // float + constexpr std::ptrdiff_t m_flHeight = 0xED0; // float + constexpr std::ptrdiff_t m_flDPI = 0xED4; // float + constexpr std::ptrdiff_t m_flInteractDistance = 0xED8; // float + constexpr std::ptrdiff_t m_flDepthOffset = 0xEDC; // float + constexpr std::ptrdiff_t m_unOwnerContext = 0xEE0; // uint32_t + constexpr std::ptrdiff_t m_unHorizontalAlign = 0xEE4; // uint32_t + constexpr std::ptrdiff_t m_unVerticalAlign = 0xEE8; // uint32_t + constexpr std::ptrdiff_t m_unOrientation = 0xEEC; // uint32_t + constexpr std::ptrdiff_t m_bAllowInteractionFromAllSceneWorlds = 0xEF0; // bool + constexpr std::ptrdiff_t m_vecCSSClasses = 0xEF8; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_bOpaque = 0xF10; // bool + constexpr std::ptrdiff_t m_bNoDepth = 0xF11; // bool + constexpr std::ptrdiff_t m_bRenderBackface = 0xF12; // bool + constexpr std::ptrdiff_t m_bUseOffScreenIndicator = 0xF13; // bool + constexpr std::ptrdiff_t m_bExcludeFromSaveGames = 0xF14; // bool + constexpr std::ptrdiff_t m_bGrabbable = 0xF15; // bool + constexpr std::ptrdiff_t m_bOnlyRenderToTexture = 0xF16; // bool + constexpr std::ptrdiff_t m_bDisableMipGen = 0xF17; // bool + constexpr std::ptrdiff_t m_nExplicitImageLayout = 0xF18; // int32_t +} + +namespace C_PointClientUIWorldTextPanel { // C_PointClientUIWorldPanel + constexpr std::ptrdiff_t m_messageText = 0xF20; // char[512] +} + +namespace C_PointCommentaryNode { // CBaseAnimGraph + constexpr std::ptrdiff_t m_bActive = 0xE88; // bool + constexpr std::ptrdiff_t m_bWasActive = 0xE89; // bool + constexpr std::ptrdiff_t m_flEndTime = 0xE8C; // GameTime_t + constexpr std::ptrdiff_t m_flStartTime = 0xE90; // GameTime_t + constexpr std::ptrdiff_t m_flStartTimeInCommentary = 0xE94; // float + constexpr std::ptrdiff_t m_iszCommentaryFile = 0xE98; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTitle = 0xEA0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSpeakers = 0xEA8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iNodeNumber = 0xEB0; // int32_t + constexpr std::ptrdiff_t m_iNodeNumberMax = 0xEB4; // int32_t + constexpr std::ptrdiff_t m_bListenedTo = 0xEB8; // bool + constexpr std::ptrdiff_t m_hViewPosition = 0xEC8; // CHandle + constexpr std::ptrdiff_t m_bRestartAfterRestore = 0xECC; // bool +} + +namespace C_PointEntity { // C_BaseEntity +} + +namespace C_PointValueRemapper { // C_BaseEntity + constexpr std::ptrdiff_t m_bDisabled = 0x540; // bool + constexpr std::ptrdiff_t m_bDisabledOld = 0x541; // bool + constexpr std::ptrdiff_t m_bUpdateOnClient = 0x542; // bool + constexpr std::ptrdiff_t m_nInputType = 0x544; // ValueRemapperInputType_t + constexpr std::ptrdiff_t m_hRemapLineStart = 0x548; // CHandle + constexpr std::ptrdiff_t m_hRemapLineEnd = 0x54C; // CHandle + constexpr std::ptrdiff_t m_flMaximumChangePerSecond = 0x550; // float + constexpr std::ptrdiff_t m_flDisengageDistance = 0x554; // float + constexpr std::ptrdiff_t m_flEngageDistance = 0x558; // float + constexpr std::ptrdiff_t m_bRequiresUseKey = 0x55C; // bool + constexpr std::ptrdiff_t m_nOutputType = 0x560; // ValueRemapperOutputType_t + constexpr std::ptrdiff_t m_hOutputEntities = 0x568; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_nHapticsType = 0x580; // ValueRemapperHapticsType_t + constexpr std::ptrdiff_t m_nMomentumType = 0x584; // ValueRemapperMomentumType_t + constexpr std::ptrdiff_t m_flMomentumModifier = 0x588; // float + constexpr std::ptrdiff_t m_flSnapValue = 0x58C; // float + constexpr std::ptrdiff_t m_flCurrentMomentum = 0x590; // float + constexpr std::ptrdiff_t m_nRatchetType = 0x594; // ValueRemapperRatchetType_t + constexpr std::ptrdiff_t m_flRatchetOffset = 0x598; // float + constexpr std::ptrdiff_t m_flInputOffset = 0x59C; // float + constexpr std::ptrdiff_t m_bEngaged = 0x5A0; // bool + constexpr std::ptrdiff_t m_bFirstUpdate = 0x5A1; // bool + constexpr std::ptrdiff_t m_flPreviousValue = 0x5A4; // float + constexpr std::ptrdiff_t m_flPreviousUpdateTickTime = 0x5A8; // GameTime_t + constexpr std::ptrdiff_t m_vecPreviousTestPoint = 0x5AC; // Vector +} + +namespace C_PointWorldText { // C_ModelPointEntity + constexpr std::ptrdiff_t m_bForceRecreateNextUpdate = 0xCC8; // bool + constexpr std::ptrdiff_t m_messageText = 0xCD8; // char[512] + constexpr std::ptrdiff_t m_FontName = 0xED8; // char[64] + constexpr std::ptrdiff_t m_bEnabled = 0xF18; // bool + constexpr std::ptrdiff_t m_bFullbright = 0xF19; // bool + constexpr std::ptrdiff_t m_flWorldUnitsPerPx = 0xF1C; // float + constexpr std::ptrdiff_t m_flFontSize = 0xF20; // float + constexpr std::ptrdiff_t m_flDepthOffset = 0xF24; // float + constexpr std::ptrdiff_t m_Color = 0xF28; // Color + constexpr std::ptrdiff_t m_nJustifyHorizontal = 0xF2C; // PointWorldTextJustifyHorizontal_t + constexpr std::ptrdiff_t m_nJustifyVertical = 0xF30; // PointWorldTextJustifyVertical_t + constexpr std::ptrdiff_t m_nReorientMode = 0xF34; // PointWorldTextReorientMode_t +} + +namespace C_PostProcessingVolume { // C_BaseTrigger + constexpr std::ptrdiff_t m_hPostSettings = 0xCD8; // CStrongHandle + constexpr std::ptrdiff_t m_flFadeDuration = 0xCE0; // float + constexpr std::ptrdiff_t m_flMinLogExposure = 0xCE4; // float + constexpr std::ptrdiff_t m_flMaxLogExposure = 0xCE8; // float + constexpr std::ptrdiff_t m_flMinExposure = 0xCEC; // float + constexpr std::ptrdiff_t m_flMaxExposure = 0xCF0; // float + constexpr std::ptrdiff_t m_flExposureCompensation = 0xCF4; // float + constexpr std::ptrdiff_t m_flExposureFadeSpeedUp = 0xCF8; // float + constexpr std::ptrdiff_t m_flExposureFadeSpeedDown = 0xCFC; // float + constexpr std::ptrdiff_t m_flTonemapEVSmoothingRange = 0xD00; // float + constexpr std::ptrdiff_t m_bMaster = 0xD04; // bool + constexpr std::ptrdiff_t m_bExposureControl = 0xD05; // bool + constexpr std::ptrdiff_t m_flRate = 0xD08; // float + constexpr std::ptrdiff_t m_flTonemapPercentTarget = 0xD0C; // float + constexpr std::ptrdiff_t m_flTonemapPercentBrightPixels = 0xD10; // float + constexpr std::ptrdiff_t m_flTonemapMinAvgLum = 0xD14; // float +} + +namespace C_Precipitation { // C_BaseTrigger + constexpr std::ptrdiff_t m_flDensity = 0xCC8; // float + constexpr std::ptrdiff_t m_flParticleInnerDist = 0xCD8; // float + constexpr std::ptrdiff_t m_pParticleDef = 0xCE0; // char* + constexpr std::ptrdiff_t m_tParticlePrecipTraceTimer = 0xD08; // TimedEvent[1] + constexpr std::ptrdiff_t m_bActiveParticlePrecipEmitter = 0xD10; // bool[1] + constexpr std::ptrdiff_t m_bParticlePrecipInitialized = 0xD11; // bool + constexpr std::ptrdiff_t m_bHasSimulatedSinceLastSceneObjectUpdate = 0xD12; // bool + constexpr std::ptrdiff_t m_nAvailableSheetSequencesMaxIndex = 0xD14; // int32_t +} + +namespace C_PrecipitationBlocker { // C_BaseModelEntity +} + +namespace C_PredictedViewModel { // C_BaseViewModel + constexpr std::ptrdiff_t m_LagAnglesHistory = 0xEE8; // QAngle + constexpr std::ptrdiff_t m_vPredictedOffset = 0xF00; // Vector +} + +namespace C_RagdollManager { // C_BaseEntity + constexpr std::ptrdiff_t m_iCurrentMaxRagdollCount = 0x540; // int8_t +} + +namespace C_RagdollProp { // CBaseAnimGraph + constexpr std::ptrdiff_t m_ragPos = 0xE88; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_ragAngles = 0xEA0; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_flBlendWeight = 0xEB8; // float + constexpr std::ptrdiff_t m_hRagdollSource = 0xEBC; // CHandle + constexpr std::ptrdiff_t m_iEyeAttachment = 0xEC0; // AttachmentHandle_t + constexpr std::ptrdiff_t m_flBlendWeightCurrent = 0xEC4; // float + constexpr std::ptrdiff_t m_parentPhysicsBoneIndices = 0xEC8; // CUtlVector + constexpr std::ptrdiff_t m_worldSpaceBoneComputationOrder = 0xEE0; // CUtlVector +} + +namespace C_RagdollPropAttached { // C_RagdollProp + constexpr std::ptrdiff_t m_boneIndexAttached = 0xEF8; // uint32_t + constexpr std::ptrdiff_t m_ragdollAttachedObjectIndex = 0xEFC; // uint32_t + constexpr std::ptrdiff_t m_attachmentPointBoneSpace = 0xF00; // Vector + constexpr std::ptrdiff_t m_attachmentPointRagdollSpace = 0xF0C; // Vector + constexpr std::ptrdiff_t m_vecOffset = 0xF18; // Vector + constexpr std::ptrdiff_t m_parentTime = 0xF24; // float + constexpr std::ptrdiff_t m_bHasParent = 0xF28; // bool +} + +namespace C_RectLight { // C_BarnLight + constexpr std::ptrdiff_t m_bShowLight = 0xF08; // bool +} + +namespace C_RetakeGameRules { + constexpr std::ptrdiff_t m_nMatchSeed = 0xF8; // int32_t + constexpr std::ptrdiff_t m_bBlockersPresent = 0xFC; // bool + constexpr std::ptrdiff_t m_bRoundInProgress = 0xFD; // bool + constexpr std::ptrdiff_t m_iFirstSecondHalfRound = 0x100; // int32_t + constexpr std::ptrdiff_t m_iBombSite = 0x104; // int32_t +} + +namespace C_RopeKeyframe { // C_BaseModelEntity + constexpr std::ptrdiff_t m_LinksTouchingSomething = 0xCC8; // CBitVec<10> + constexpr std::ptrdiff_t m_nLinksTouchingSomething = 0xCCC; // int32_t + constexpr std::ptrdiff_t m_bApplyWind = 0xCD0; // bool + constexpr std::ptrdiff_t m_fPrevLockedPoints = 0xCD4; // int32_t + constexpr std::ptrdiff_t m_iForcePointMoveCounter = 0xCD8; // int32_t + constexpr std::ptrdiff_t m_bPrevEndPointPos = 0xCDC; // bool[2] + constexpr std::ptrdiff_t m_vPrevEndPointPos = 0xCE0; // Vector[2] + constexpr std::ptrdiff_t m_flCurScroll = 0xCF8; // float + constexpr std::ptrdiff_t m_flScrollSpeed = 0xCFC; // float + constexpr std::ptrdiff_t m_RopeFlags = 0xD00; // uint16_t + constexpr std::ptrdiff_t m_iRopeMaterialModelIndex = 0xD08; // CStrongHandle + constexpr std::ptrdiff_t m_LightValues = 0xF80; // Vector[10] + constexpr std::ptrdiff_t m_nSegments = 0xFF8; // uint8_t + constexpr std::ptrdiff_t m_hStartPoint = 0xFFC; // CHandle + constexpr std::ptrdiff_t m_hEndPoint = 0x1000; // CHandle + constexpr std::ptrdiff_t m_iStartAttachment = 0x1004; // AttachmentHandle_t + constexpr std::ptrdiff_t m_iEndAttachment = 0x1005; // AttachmentHandle_t + constexpr std::ptrdiff_t m_Subdiv = 0x1006; // uint8_t + constexpr std::ptrdiff_t m_RopeLength = 0x1008; // int16_t + constexpr std::ptrdiff_t m_Slack = 0x100A; // int16_t + constexpr std::ptrdiff_t m_TextureScale = 0x100C; // float + constexpr std::ptrdiff_t m_fLockedPoints = 0x1010; // uint8_t + constexpr std::ptrdiff_t m_nChangeCount = 0x1011; // uint8_t + constexpr std::ptrdiff_t m_Width = 0x1014; // float + constexpr std::ptrdiff_t m_PhysicsDelegate = 0x1018; // C_RopeKeyframe::CPhysicsDelegate + constexpr std::ptrdiff_t m_hMaterial = 0x1028; // CStrongHandle + constexpr std::ptrdiff_t m_TextureHeight = 0x1030; // int32_t + constexpr std::ptrdiff_t m_vecImpulse = 0x1034; // Vector + constexpr std::ptrdiff_t m_vecPreviousImpulse = 0x1040; // Vector + constexpr std::ptrdiff_t m_flCurrentGustTimer = 0x104C; // float + constexpr std::ptrdiff_t m_flCurrentGustLifetime = 0x1050; // float + constexpr std::ptrdiff_t m_flTimeToNextGust = 0x1054; // float + constexpr std::ptrdiff_t m_vWindDir = 0x1058; // Vector + constexpr std::ptrdiff_t m_vColorMod = 0x1064; // Vector + constexpr std::ptrdiff_t m_vCachedEndPointAttachmentPos = 0x1070; // Vector[2] + constexpr std::ptrdiff_t m_vCachedEndPointAttachmentAngle = 0x1088; // QAngle[2] + constexpr std::ptrdiff_t m_bConstrainBetweenEndpoints = 0x10A0; // bool + constexpr std::ptrdiff_t m_bEndPointAttachmentPositionsDirty = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bEndPointAttachmentAnglesDirty = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNewDataThisFrame = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bPhysicsInitted = 0x0; // bitfield:1 +} + +namespace C_RopeKeyframe_CPhysicsDelegate { + constexpr std::ptrdiff_t m_pKeyframe = 0x8; // C_RopeKeyframe* +} + +namespace C_SceneEntity { // C_PointEntity + constexpr std::ptrdiff_t m_bIsPlayingBack = 0x548; // bool + constexpr std::ptrdiff_t m_bPaused = 0x549; // bool + constexpr std::ptrdiff_t m_bMultiplayer = 0x54A; // bool + constexpr std::ptrdiff_t m_bAutogenerated = 0x54B; // bool + constexpr std::ptrdiff_t m_flForceClientTime = 0x54C; // float + constexpr std::ptrdiff_t m_nSceneStringIndex = 0x550; // uint16_t + constexpr std::ptrdiff_t m_bClientOnly = 0x552; // bool + constexpr std::ptrdiff_t m_hOwner = 0x554; // CHandle + constexpr std::ptrdiff_t m_hActorList = 0x558; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_bWasPlaying = 0x570; // bool + constexpr std::ptrdiff_t m_QueuedEvents = 0x580; // CUtlVector + constexpr std::ptrdiff_t m_flCurrentTime = 0x598; // float +} + +namespace C_SceneEntity_QueuedEvents_t { + constexpr std::ptrdiff_t starttime = 0x0; // float +} + +namespace C_SensorGrenade { // C_BaseCSGrenade +} + +namespace C_SensorGrenadeProjectile { // C_BaseCSGrenadeProjectile +} + +namespace C_ShatterGlassShardPhysics { // C_PhysicsProp + constexpr std::ptrdiff_t m_ShardDesc = 0xFE0; // shard_model_desc_t +} + +namespace C_SingleplayRules { // C_GameRules +} + +namespace C_SkyCamera { // C_BaseEntity + constexpr std::ptrdiff_t m_skyboxData = 0x540; // sky3dparams_t + constexpr std::ptrdiff_t m_skyboxSlotToken = 0x5D0; // CUtlStringToken + constexpr std::ptrdiff_t m_bUseAngles = 0x5D4; // bool + constexpr std::ptrdiff_t m_pNext = 0x5D8; // C_SkyCamera* +} + +namespace C_SmokeGrenade { // C_BaseCSGrenade +} + +namespace C_SmokeGrenadeProjectile { // C_BaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_nSmokeEffectTickBegin = 0x10F8; // int32_t + constexpr std::ptrdiff_t m_bDidSmokeEffect = 0x10FC; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0x1100; // int32_t + constexpr std::ptrdiff_t m_vSmokeColor = 0x1104; // Vector + constexpr std::ptrdiff_t m_vSmokeDetonationPos = 0x1110; // Vector + constexpr std::ptrdiff_t m_VoxelFrameData = 0x1120; // CUtlVector + constexpr std::ptrdiff_t m_bSmokeVolumeDataReceived = 0x1138; // bool + constexpr std::ptrdiff_t m_bSmokeEffectSpawned = 0x1139; // bool +} + +namespace C_SoundAreaEntityBase { // C_BaseEntity + constexpr std::ptrdiff_t m_bDisabled = 0x540; // bool + constexpr std::ptrdiff_t m_bWasEnabled = 0x548; // bool + constexpr std::ptrdiff_t m_iszSoundAreaType = 0x550; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_vPos = 0x558; // Vector +} + +namespace C_SoundAreaEntityOrientedBox { // C_SoundAreaEntityBase + constexpr std::ptrdiff_t m_vMin = 0x568; // Vector + constexpr std::ptrdiff_t m_vMax = 0x574; // Vector +} + +namespace C_SoundAreaEntitySphere { // C_SoundAreaEntityBase + constexpr std::ptrdiff_t m_flRadius = 0x568; // float +} + +namespace C_SoundOpvarSetAABBEntity { // C_SoundOpvarSetPointEntity +} + +namespace C_SoundOpvarSetOBBEntity { // C_SoundOpvarSetAABBEntity +} + +namespace C_SoundOpvarSetOBBWindEntity { // C_SoundOpvarSetPointBase +} + +namespace C_SoundOpvarSetPathCornerEntity { // C_SoundOpvarSetPointEntity +} + +namespace C_SoundOpvarSetPointBase { // C_BaseEntity + constexpr std::ptrdiff_t m_iszStackName = 0x540; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOperatorName = 0x548; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOpvarName = 0x550; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iOpvarIndex = 0x558; // int32_t + constexpr std::ptrdiff_t m_bUseAutoCompare = 0x55C; // bool +} + +namespace C_SoundOpvarSetPointEntity { // C_SoundOpvarSetPointBase +} + +namespace C_SpotlightEnd { // C_BaseModelEntity + constexpr std::ptrdiff_t m_flLightScale = 0xCC0; // float + constexpr std::ptrdiff_t m_Radius = 0xCC4; // float +} + +namespace C_Sprite { // C_BaseModelEntity + constexpr std::ptrdiff_t m_hSpriteMaterial = 0xCD8; // CStrongHandle + constexpr std::ptrdiff_t m_hAttachedToEntity = 0xCE0; // CHandle + constexpr std::ptrdiff_t m_nAttachment = 0xCE4; // AttachmentHandle_t + constexpr std::ptrdiff_t m_flSpriteFramerate = 0xCE8; // float + constexpr std::ptrdiff_t m_flFrame = 0xCEC; // float + constexpr std::ptrdiff_t m_flDieTime = 0xCF0; // GameTime_t + constexpr std::ptrdiff_t m_nBrightness = 0xD00; // uint32_t + constexpr std::ptrdiff_t m_flBrightnessDuration = 0xD04; // float + constexpr std::ptrdiff_t m_flSpriteScale = 0xD08; // float + constexpr std::ptrdiff_t m_flScaleDuration = 0xD0C; // float + constexpr std::ptrdiff_t m_bWorldSpaceScale = 0xD10; // bool + constexpr std::ptrdiff_t m_flGlowProxySize = 0xD14; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0xD18; // float + constexpr std::ptrdiff_t m_flLastTime = 0xD1C; // GameTime_t + constexpr std::ptrdiff_t m_flMaxFrame = 0xD20; // float + constexpr std::ptrdiff_t m_flStartScale = 0xD24; // float + constexpr std::ptrdiff_t m_flDestScale = 0xD28; // float + constexpr std::ptrdiff_t m_flScaleTimeStart = 0xD2C; // GameTime_t + constexpr std::ptrdiff_t m_nStartBrightness = 0xD30; // int32_t + constexpr std::ptrdiff_t m_nDestBrightness = 0xD34; // int32_t + constexpr std::ptrdiff_t m_flBrightnessTimeStart = 0xD38; // GameTime_t + constexpr std::ptrdiff_t m_hOldSpriteMaterial = 0xD40; // CWeakHandle + constexpr std::ptrdiff_t m_nSpriteWidth = 0xDE8; // int32_t + constexpr std::ptrdiff_t m_nSpriteHeight = 0xDEC; // int32_t +} + +namespace C_SpriteOriented { // C_Sprite +} + +namespace C_Sun { // C_BaseModelEntity + constexpr std::ptrdiff_t m_fxSSSunFlareEffectIndex = 0xCC0; // ParticleIndex_t + constexpr std::ptrdiff_t m_fxSunFlareEffectIndex = 0xCC4; // ParticleIndex_t + constexpr std::ptrdiff_t m_fdistNormalize = 0xCC8; // float + constexpr std::ptrdiff_t m_vSunPos = 0xCCC; // Vector + constexpr std::ptrdiff_t m_vDirection = 0xCD8; // Vector + constexpr std::ptrdiff_t m_iszEffectName = 0xCE8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSSEffectName = 0xCF0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_clrOverlay = 0xCF8; // Color + constexpr std::ptrdiff_t m_bOn = 0xCFC; // bool + constexpr std::ptrdiff_t m_bmaxColor = 0xCFD; // bool + constexpr std::ptrdiff_t m_flSize = 0xD00; // float + constexpr std::ptrdiff_t m_flHazeScale = 0xD04; // float + constexpr std::ptrdiff_t m_flRotation = 0xD08; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0xD0C; // float + constexpr std::ptrdiff_t m_flAlphaHaze = 0xD10; // float + constexpr std::ptrdiff_t m_flAlphaScale = 0xD14; // float + constexpr std::ptrdiff_t m_flAlphaHdr = 0xD18; // float + constexpr std::ptrdiff_t m_flFarZScale = 0xD1C; // float +} + +namespace C_SunGlowOverlay { // CGlowOverlay + constexpr std::ptrdiff_t m_bModulateByDot = 0xD0; // bool +} + +namespace C_Team { // C_BaseEntity + constexpr std::ptrdiff_t m_aPlayerControllers = 0x540; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_aPlayers = 0x558; // C_NetworkUtlVectorBase> + constexpr std::ptrdiff_t m_iScore = 0x570; // int32_t + constexpr std::ptrdiff_t m_szTeamname = 0x574; // char[129] +} + +namespace C_TeamRoundTimer { // C_BaseEntity + constexpr std::ptrdiff_t m_bTimerPaused = 0x540; // bool + constexpr std::ptrdiff_t m_flTimeRemaining = 0x544; // float + constexpr std::ptrdiff_t m_flTimerEndTime = 0x548; // GameTime_t + constexpr std::ptrdiff_t m_bIsDisabled = 0x54C; // bool + constexpr std::ptrdiff_t m_bShowInHUD = 0x54D; // bool + constexpr std::ptrdiff_t m_nTimerLength = 0x550; // int32_t + constexpr std::ptrdiff_t m_nTimerInitialLength = 0x554; // int32_t + constexpr std::ptrdiff_t m_nTimerMaxLength = 0x558; // int32_t + constexpr std::ptrdiff_t m_bAutoCountdown = 0x55C; // bool + constexpr std::ptrdiff_t m_nSetupTimeLength = 0x560; // int32_t + constexpr std::ptrdiff_t m_nState = 0x564; // int32_t + constexpr std::ptrdiff_t m_bStartPaused = 0x568; // bool + constexpr std::ptrdiff_t m_bInCaptureWatchState = 0x569; // bool + constexpr std::ptrdiff_t m_flTotalTime = 0x56C; // float + constexpr std::ptrdiff_t m_bStopWatchTimer = 0x570; // bool + constexpr std::ptrdiff_t m_bFireFinished = 0x571; // bool + constexpr std::ptrdiff_t m_bFire5MinRemain = 0x572; // bool + constexpr std::ptrdiff_t m_bFire4MinRemain = 0x573; // bool + constexpr std::ptrdiff_t m_bFire3MinRemain = 0x574; // bool + constexpr std::ptrdiff_t m_bFire2MinRemain = 0x575; // bool + constexpr std::ptrdiff_t m_bFire1MinRemain = 0x576; // bool + constexpr std::ptrdiff_t m_bFire30SecRemain = 0x577; // bool + constexpr std::ptrdiff_t m_bFire10SecRemain = 0x578; // bool + constexpr std::ptrdiff_t m_bFire5SecRemain = 0x579; // bool + constexpr std::ptrdiff_t m_bFire4SecRemain = 0x57A; // bool + constexpr std::ptrdiff_t m_bFire3SecRemain = 0x57B; // bool + constexpr std::ptrdiff_t m_bFire2SecRemain = 0x57C; // bool + constexpr std::ptrdiff_t m_bFire1SecRemain = 0x57D; // bool + constexpr std::ptrdiff_t m_nOldTimerLength = 0x580; // int32_t + constexpr std::ptrdiff_t m_nOldTimerState = 0x584; // int32_t +} + +namespace C_TeamplayRules { // C_MultiplayRules +} + +namespace C_TextureBasedAnimatable { // C_BaseModelEntity + constexpr std::ptrdiff_t m_bLoop = 0xCC0; // bool + constexpr std::ptrdiff_t m_flFPS = 0xCC4; // float + constexpr std::ptrdiff_t m_hPositionKeys = 0xCC8; // CStrongHandle + constexpr std::ptrdiff_t m_hRotationKeys = 0xCD0; // CStrongHandle + constexpr std::ptrdiff_t m_vAnimationBoundsMin = 0xCD8; // Vector + constexpr std::ptrdiff_t m_vAnimationBoundsMax = 0xCE4; // Vector + constexpr std::ptrdiff_t m_flStartTime = 0xCF0; // float + constexpr std::ptrdiff_t m_flStartFrame = 0xCF4; // float +} + +namespace C_TintController { // C_BaseEntity +} + +namespace C_TonemapController2 { // C_BaseEntity + constexpr std::ptrdiff_t m_flAutoExposureMin = 0x540; // float + constexpr std::ptrdiff_t m_flAutoExposureMax = 0x544; // float + constexpr std::ptrdiff_t m_flTonemapPercentTarget = 0x548; // float + constexpr std::ptrdiff_t m_flTonemapPercentBrightPixels = 0x54C; // float + constexpr std::ptrdiff_t m_flTonemapMinAvgLum = 0x550; // float + constexpr std::ptrdiff_t m_flExposureAdaptationSpeedUp = 0x554; // float + constexpr std::ptrdiff_t m_flExposureAdaptationSpeedDown = 0x558; // float + constexpr std::ptrdiff_t m_flTonemapEVSmoothingRange = 0x55C; // float +} + +namespace C_TonemapController2Alias_env_tonemap_controller2 { // C_TonemapController2 +} + +namespace C_TriggerBuoyancy { // C_BaseTrigger + constexpr std::ptrdiff_t m_BuoyancyHelper = 0xCC8; // CBuoyancyHelper + constexpr std::ptrdiff_t m_flFluidDensity = 0xCE8; // float +} + +namespace C_TriggerLerpObject { // C_BaseTrigger +} + +namespace C_TriggerMultiple { // C_BaseTrigger +} + +namespace C_TriggerVolume { // C_BaseModelEntity +} + +namespace C_ViewmodelAttachmentModel { // CBaseAnimGraph +} + +namespace C_ViewmodelWeapon { // CBaseAnimGraph + constexpr std::ptrdiff_t m_worldModel = 0xE80; // char* +} + +namespace C_VoteController { // C_BaseEntity + constexpr std::ptrdiff_t m_iActiveIssueIndex = 0x550; // int32_t + constexpr std::ptrdiff_t m_iOnlyTeamToVote = 0x554; // int32_t + constexpr std::ptrdiff_t m_nVoteOptionCount = 0x558; // int32_t[5] + constexpr std::ptrdiff_t m_nPotentialVotes = 0x56C; // int32_t + constexpr std::ptrdiff_t m_bVotesDirty = 0x570; // bool + constexpr std::ptrdiff_t m_bTypeDirty = 0x571; // bool + constexpr std::ptrdiff_t m_bIsYesNoVote = 0x572; // bool +} + +namespace C_WaterBullet { // CBaseAnimGraph +} + +namespace C_WeaponAWP { // C_CSWeaponBaseGun +} + +namespace C_WeaponAug { // C_CSWeaponBaseGun +} + +namespace C_WeaponBaseItem { // C_CSWeaponBase + constexpr std::ptrdiff_t m_SequenceCompleteTimer = 0x1990; // CountdownTimer + constexpr std::ptrdiff_t m_bRedraw = 0x19A8; // bool +} + +namespace C_WeaponBizon { // C_CSWeaponBaseGun +} + +namespace C_WeaponCZ75a { // C_CSWeaponBaseGun +} + +namespace C_WeaponElite { // C_CSWeaponBaseGun +} + +namespace C_WeaponFamas { // C_CSWeaponBaseGun +} + +namespace C_WeaponFiveSeven { // C_CSWeaponBaseGun +} + +namespace C_WeaponG3SG1 { // C_CSWeaponBaseGun +} + +namespace C_WeaponGalilAR { // C_CSWeaponBaseGun +} + +namespace C_WeaponGlock { // C_CSWeaponBaseGun +} + +namespace C_WeaponHKP2000 { // C_CSWeaponBaseGun +} + +namespace C_WeaponM249 { // C_CSWeaponBaseGun +} + +namespace C_WeaponM4A1 { // C_CSWeaponBaseGun +} + +namespace C_WeaponM4A1Silencer { // C_CSWeaponBaseGun +} + +namespace C_WeaponMAC10 { // C_CSWeaponBaseGun +} + +namespace C_WeaponMP5SD { // C_CSWeaponBaseGun +} + +namespace C_WeaponMP7 { // C_CSWeaponBaseGun +} + +namespace C_WeaponMP9 { // C_CSWeaponBaseGun +} + +namespace C_WeaponMag7 { // C_CSWeaponBaseGun +} + +namespace C_WeaponNOVA { // C_CSWeaponBase +} + +namespace C_WeaponNegev { // C_CSWeaponBaseGun +} + +namespace C_WeaponP250 { // C_CSWeaponBaseGun +} + +namespace C_WeaponP90 { // C_CSWeaponBaseGun +} + +namespace C_WeaponRevolver { // C_CSWeaponBaseGun +} + +namespace C_WeaponSCAR20 { // C_CSWeaponBaseGun +} + +namespace C_WeaponSG556 { // C_CSWeaponBaseGun +} + +namespace C_WeaponSSG08 { // C_CSWeaponBaseGun +} + +namespace C_WeaponSawedoff { // C_CSWeaponBase +} + +namespace C_WeaponShield { // C_CSWeaponBaseGun + constexpr std::ptrdiff_t m_flDisplayHealth = 0x19B0; // float +} + +namespace C_WeaponTaser { // C_CSWeaponBaseGun + constexpr std::ptrdiff_t m_fFireTime = 0x19B0; // GameTime_t +} + +namespace C_WeaponTec9 { // C_CSWeaponBaseGun +} + +namespace C_WeaponUMP45 { // C_CSWeaponBaseGun +} + +namespace C_WeaponUSPSilencer { // C_CSWeaponBaseGun +} + +namespace C_WeaponXM1014 { // C_CSWeaponBase +} + +namespace C_World { // C_BaseModelEntity +} + +namespace C_WorldModelGloves { // CBaseAnimGraph +} + +namespace C_WorldModelNametag { // CBaseAnimGraph +} + +namespace C_WorldModelStattrak { // CBaseAnimGraph +} + +namespace C_fogplayerparams_t { + constexpr std::ptrdiff_t m_hCtrl = 0x8; // CHandle + constexpr std::ptrdiff_t m_flTransitionTime = 0xC; // float + constexpr std::ptrdiff_t m_OldColor = 0x10; // Color + constexpr std::ptrdiff_t m_flOldStart = 0x14; // float + constexpr std::ptrdiff_t m_flOldEnd = 0x18; // float + constexpr std::ptrdiff_t m_flOldMaxDensity = 0x1C; // float + constexpr std::ptrdiff_t m_flOldHDRColorScale = 0x20; // float + constexpr std::ptrdiff_t m_flOldFarZ = 0x24; // float + constexpr std::ptrdiff_t m_NewColor = 0x28; // Color + constexpr std::ptrdiff_t m_flNewStart = 0x2C; // float + constexpr std::ptrdiff_t m_flNewEnd = 0x30; // float + constexpr std::ptrdiff_t m_flNewMaxDensity = 0x34; // float + constexpr std::ptrdiff_t m_flNewHDRColorScale = 0x38; // float + constexpr std::ptrdiff_t m_flNewFarZ = 0x3C; // float +} + +namespace CompMatMutatorCondition_t { + constexpr std::ptrdiff_t m_nMutatorCondition = 0x0; // CompMatPropertyMutatorConditionType_t + constexpr std::ptrdiff_t m_strMutatorConditionContainerName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_strMutatorConditionContainerVarName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_strMutatorConditionContainerVarValue = 0x18; // CUtlString + constexpr std::ptrdiff_t m_bPassWhenTrue = 0x20; // bool +} + +namespace CompMatPropertyMutator_t { + constexpr std::ptrdiff_t m_bEnabled = 0x0; // bool + constexpr std::ptrdiff_t m_nMutatorCommandType = 0x4; // CompMatPropertyMutatorType_t + constexpr std::ptrdiff_t m_strInitWith_Container = 0x8; // CUtlString + constexpr std::ptrdiff_t m_strCopyProperty_InputContainerSrc = 0x10; // CUtlString + constexpr std::ptrdiff_t m_strCopyProperty_InputContainerProperty = 0x18; // CUtlString + constexpr std::ptrdiff_t m_strCopyProperty_TargetProperty = 0x20; // CUtlString + constexpr std::ptrdiff_t m_strRandomRollInputVars_SeedInputVar = 0x28; // CUtlString + constexpr std::ptrdiff_t m_vecRandomRollInputVars_InputVarsToRoll = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_strCopyMatchingKeys_InputContainerSrc = 0x48; // CUtlString + constexpr std::ptrdiff_t m_strCopyKeysWithSuffix_InputContainerSrc = 0x50; // CUtlString + constexpr std::ptrdiff_t m_strCopyKeysWithSuffix_FindSuffix = 0x58; // CUtlString + constexpr std::ptrdiff_t m_strCopyKeysWithSuffix_ReplaceSuffix = 0x60; // CUtlString + constexpr std::ptrdiff_t m_nSetValue_Value = 0x68; // CompositeMaterialInputLooseVariable_t + constexpr std::ptrdiff_t m_strGenerateTexture_TargetParam = 0x2D8; // CUtlString + constexpr std::ptrdiff_t m_strGenerateTexture_InitialContainer = 0x2E0; // CUtlString + constexpr std::ptrdiff_t m_nResolution = 0x2E8; // int32_t + constexpr std::ptrdiff_t m_bIsScratchTarget = 0x2EC; // bool + constexpr std::ptrdiff_t m_bSplatDebugInfo = 0x2ED; // bool + constexpr std::ptrdiff_t m_bCaptureInRenderDoc = 0x2EE; // bool + constexpr std::ptrdiff_t m_vecTexGenInstructions = 0x2F0; // CUtlVector + constexpr std::ptrdiff_t m_vecConditionalMutators = 0x308; // CUtlVector + constexpr std::ptrdiff_t m_strPopInputQueue_Container = 0x320; // CUtlString + constexpr std::ptrdiff_t m_strDrawText_InputContainerSrc = 0x328; // CUtlString + constexpr std::ptrdiff_t m_strDrawText_InputContainerProperty = 0x330; // CUtlString + constexpr std::ptrdiff_t m_vecDrawText_Position = 0x338; // Vector2D + constexpr std::ptrdiff_t m_colDrawText_Color = 0x340; // Color + constexpr std::ptrdiff_t m_strDrawText_Font = 0x348; // CUtlString + constexpr std::ptrdiff_t m_vecConditions = 0x350; // CUtlVector +} + +namespace CompositeMaterialAssemblyProcedure_t { + constexpr std::ptrdiff_t m_vecCompMatIncludes = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_vecMatchFilters = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_vecCompositeInputContainers = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_vecPropertyMutators = 0x48; // CUtlVector +} + +namespace CompositeMaterialEditorPoint_t { + constexpr std::ptrdiff_t m_ModelName = 0x0; // CResourceName + constexpr std::ptrdiff_t m_nSequenceIndex = 0xE0; // int32_t + constexpr std::ptrdiff_t m_flCycle = 0xE4; // float + constexpr std::ptrdiff_t m_KVModelStateChoices = 0xE8; // KeyValues3 + constexpr std::ptrdiff_t m_bEnableChildModel = 0xF8; // bool + constexpr std::ptrdiff_t m_ChildModelName = 0x100; // CResourceName + constexpr std::ptrdiff_t m_vecCompositeMaterialAssemblyProcedures = 0x1E0; // CUtlVector + constexpr std::ptrdiff_t m_vecCompositeMaterials = 0x1F8; // CUtlVector +} + +namespace CompositeMaterialInputContainer_t { + constexpr std::ptrdiff_t m_bEnabled = 0x0; // bool + constexpr std::ptrdiff_t m_nCompositeMaterialInputContainerSourceType = 0x4; // CompositeMaterialInputContainerSourceType_t + constexpr std::ptrdiff_t m_strSpecificContainerMaterial = 0x8; // CResourceName + constexpr std::ptrdiff_t m_strAttrName = 0xE8; // CUtlString + constexpr std::ptrdiff_t m_strAlias = 0xF0; // CUtlString + constexpr std::ptrdiff_t m_vecLooseVariables = 0xF8; // CUtlVector + constexpr std::ptrdiff_t m_strAttrNameForVar = 0x110; // CUtlString + constexpr std::ptrdiff_t m_bExposeExternally = 0x118; // bool +} + +namespace CompositeMaterialInputLooseVariable_t { + constexpr std::ptrdiff_t m_strName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_bExposeExternally = 0x8; // bool + constexpr std::ptrdiff_t m_strExposedFriendlyName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_strExposedFriendlyGroupName = 0x18; // CUtlString + constexpr std::ptrdiff_t m_bExposedVariableIsFixedRange = 0x20; // bool + constexpr std::ptrdiff_t m_strExposedVisibleWhenTrue = 0x28; // CUtlString + constexpr std::ptrdiff_t m_strExposedHiddenWhenTrue = 0x30; // CUtlString + constexpr std::ptrdiff_t m_nVariableType = 0x38; // CompositeMaterialInputLooseVariableType_t + constexpr std::ptrdiff_t m_bValueBoolean = 0x3C; // bool + constexpr std::ptrdiff_t m_nValueIntX = 0x40; // int32_t + constexpr std::ptrdiff_t m_nValueIntY = 0x44; // int32_t + constexpr std::ptrdiff_t m_nValueIntZ = 0x48; // int32_t + constexpr std::ptrdiff_t m_nValueIntW = 0x4C; // int32_t + constexpr std::ptrdiff_t m_bHasFloatBounds = 0x50; // bool + constexpr std::ptrdiff_t m_flValueFloatX = 0x54; // float + constexpr std::ptrdiff_t m_flValueFloatX_Min = 0x58; // float + constexpr std::ptrdiff_t m_flValueFloatX_Max = 0x5C; // float + constexpr std::ptrdiff_t m_flValueFloatY = 0x60; // float + constexpr std::ptrdiff_t m_flValueFloatY_Min = 0x64; // float + constexpr std::ptrdiff_t m_flValueFloatY_Max = 0x68; // float + constexpr std::ptrdiff_t m_flValueFloatZ = 0x6C; // float + constexpr std::ptrdiff_t m_flValueFloatZ_Min = 0x70; // float + constexpr std::ptrdiff_t m_flValueFloatZ_Max = 0x74; // float + constexpr std::ptrdiff_t m_flValueFloatW = 0x78; // float + constexpr std::ptrdiff_t m_flValueFloatW_Min = 0x7C; // float + constexpr std::ptrdiff_t m_flValueFloatW_Max = 0x80; // float + constexpr std::ptrdiff_t m_cValueColor4 = 0x84; // Color + constexpr std::ptrdiff_t m_nValueSystemVar = 0x88; // CompositeMaterialVarSystemVar_t + constexpr std::ptrdiff_t m_strResourceMaterial = 0x90; // CResourceName + constexpr std::ptrdiff_t m_strTextureContentAssetPath = 0x170; // CUtlString + constexpr std::ptrdiff_t m_strTextureRuntimeResourcePath = 0x178; // CResourceName + constexpr std::ptrdiff_t m_strTextureCompilationVtexTemplate = 0x258; // CUtlString + constexpr std::ptrdiff_t m_nTextureType = 0x260; // CompositeMaterialInputTextureType_t + constexpr std::ptrdiff_t m_strString = 0x268; // CUtlString +} + +namespace CompositeMaterialMatchFilter_t { + constexpr std::ptrdiff_t m_nCompositeMaterialMatchFilterType = 0x0; // CompositeMaterialMatchFilterType_t + constexpr std::ptrdiff_t m_strMatchFilter = 0x8; // CUtlString + constexpr std::ptrdiff_t m_strMatchValue = 0x10; // CUtlString + constexpr std::ptrdiff_t m_bPassWhenTrue = 0x18; // bool +} + +namespace CompositeMaterial_t { + constexpr std::ptrdiff_t m_TargetKVs = 0x8; // KeyValues3 + constexpr std::ptrdiff_t m_PreGenerationKVs = 0x18; // KeyValues3 + constexpr std::ptrdiff_t m_FinalKVs = 0x28; // KeyValues3 + constexpr std::ptrdiff_t m_vecGeneratedTextures = 0x40; // CUtlVector +} + +namespace CountdownTimer { + constexpr std::ptrdiff_t m_duration = 0x8; // float + constexpr std::ptrdiff_t m_timestamp = 0xC; // GameTime_t + constexpr std::ptrdiff_t m_timescale = 0x10; // float + constexpr std::ptrdiff_t m_nWorldGroupId = 0x14; // WorldGroupId_t +} + +namespace EngineCountdownTimer { + constexpr std::ptrdiff_t m_duration = 0x8; // float + constexpr std::ptrdiff_t m_timestamp = 0xC; // float + constexpr std::ptrdiff_t m_timescale = 0x10; // float +} + +namespace EntityRenderAttribute_t { + constexpr std::ptrdiff_t m_ID = 0x30; // CUtlStringToken + constexpr std::ptrdiff_t m_Values = 0x34; // Vector4D +} + +namespace EntitySpottedState_t { + constexpr std::ptrdiff_t m_bSpotted = 0x8; // bool + constexpr std::ptrdiff_t m_bSpottedByMask = 0xC; // uint32_t[2] +} + +namespace GeneratedTextureHandle_t { + constexpr std::ptrdiff_t m_strBitmapName = 0x0; // CUtlString +} + +namespace IClientAlphaProperty { +} + +namespace IntervalTimer { + constexpr std::ptrdiff_t m_timestamp = 0x8; // GameTime_t + constexpr std::ptrdiff_t m_nWorldGroupId = 0xC; // WorldGroupId_t +} + +namespace PhysicsRagdollPose_t { + constexpr std::ptrdiff_t __m_pChainEntity = 0x8; // CNetworkVarChainer + constexpr std::ptrdiff_t m_Transforms = 0x30; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_hOwner = 0x48; // CHandle + constexpr std::ptrdiff_t m_bDirty = 0x68; // bool +} + +namespace SellbackPurchaseEntry_t { + constexpr std::ptrdiff_t m_unDefIdx = 0x30; // uint16_t + constexpr std::ptrdiff_t m_nCost = 0x34; // int32_t + constexpr std::ptrdiff_t m_nPrevArmor = 0x38; // int32_t + constexpr std::ptrdiff_t m_bPrevHelmet = 0x3C; // bool + constexpr std::ptrdiff_t m_hItem = 0x40; // CEntityHandle +} + +namespace ServerAuthoritativeWeaponSlot_t { + constexpr std::ptrdiff_t unClass = 0x28; // uint16_t + constexpr std::ptrdiff_t unSlot = 0x2A; // uint16_t + constexpr std::ptrdiff_t unItemDefIdx = 0x2C; // uint16_t +} + +namespace TimedEvent { + constexpr std::ptrdiff_t m_TimeBetweenEvents = 0x0; // float + constexpr std::ptrdiff_t m_fNextEvent = 0x4; // float +} + +namespace VPhysicsCollisionAttribute_t { + constexpr std::ptrdiff_t m_nInteractsAs = 0x8; // uint64_t + constexpr std::ptrdiff_t m_nInteractsWith = 0x10; // uint64_t + constexpr std::ptrdiff_t m_nInteractsExclude = 0x18; // uint64_t + constexpr std::ptrdiff_t m_nEntityId = 0x20; // uint32_t + constexpr std::ptrdiff_t m_nOwnerId = 0x24; // uint32_t + constexpr std::ptrdiff_t m_nHierarchyId = 0x28; // uint16_t + constexpr std::ptrdiff_t m_nCollisionGroup = 0x2A; // uint8_t + constexpr std::ptrdiff_t m_nCollisionFunctionMask = 0x2B; // uint8_t +} + +namespace ViewAngleServerChange_t { + constexpr std::ptrdiff_t nType = 0x30; // FixAngleSet_t + constexpr std::ptrdiff_t qAngle = 0x34; // QAngle + constexpr std::ptrdiff_t nIndex = 0x40; // uint32_t +} + +namespace WeaponPurchaseCount_t { + constexpr std::ptrdiff_t m_nItemDefIndex = 0x30; // uint16_t + constexpr std::ptrdiff_t m_nCount = 0x32; // uint16_t +} + +namespace WeaponPurchaseTracker_t { + constexpr std::ptrdiff_t m_weaponPurchases = 0x8; // C_UtlVectorEmbeddedNetworkVar +} + +namespace audioparams_t { + constexpr std::ptrdiff_t localSound = 0x8; // Vector[8] + constexpr std::ptrdiff_t soundscapeIndex = 0x68; // int32_t + constexpr std::ptrdiff_t localBits = 0x6C; // uint8_t + constexpr std::ptrdiff_t soundscapeEntityListIndex = 0x70; // int32_t + constexpr std::ptrdiff_t soundEventHash = 0x74; // uint32_t +} + +namespace fogparams_t { + constexpr std::ptrdiff_t dirPrimary = 0x8; // Vector + constexpr std::ptrdiff_t colorPrimary = 0x14; // Color + constexpr std::ptrdiff_t colorSecondary = 0x18; // Color + constexpr std::ptrdiff_t colorPrimaryLerpTo = 0x1C; // Color + constexpr std::ptrdiff_t colorSecondaryLerpTo = 0x20; // Color + constexpr std::ptrdiff_t start = 0x24; // float + constexpr std::ptrdiff_t end = 0x28; // float + constexpr std::ptrdiff_t farz = 0x2C; // float + constexpr std::ptrdiff_t maxdensity = 0x30; // float + constexpr std::ptrdiff_t exponent = 0x34; // float + constexpr std::ptrdiff_t HDRColorScale = 0x38; // float + constexpr std::ptrdiff_t skyboxFogFactor = 0x3C; // float + constexpr std::ptrdiff_t skyboxFogFactorLerpTo = 0x40; // float + constexpr std::ptrdiff_t startLerpTo = 0x44; // float + constexpr std::ptrdiff_t endLerpTo = 0x48; // float + constexpr std::ptrdiff_t maxdensityLerpTo = 0x4C; // float + constexpr std::ptrdiff_t lerptime = 0x50; // GameTime_t + constexpr std::ptrdiff_t duration = 0x54; // float + constexpr std::ptrdiff_t blendtobackground = 0x58; // float + constexpr std::ptrdiff_t scattering = 0x5C; // float + constexpr std::ptrdiff_t locallightscale = 0x60; // float + constexpr std::ptrdiff_t enable = 0x64; // bool + constexpr std::ptrdiff_t blend = 0x65; // bool + constexpr std::ptrdiff_t m_bNoReflectionFog = 0x66; // bool + constexpr std::ptrdiff_t m_bPadding = 0x67; // bool +} + +namespace shard_model_desc_t { + constexpr std::ptrdiff_t m_nModelID = 0x8; // int32_t + constexpr std::ptrdiff_t m_hMaterial = 0x10; // CStrongHandle + constexpr std::ptrdiff_t m_solid = 0x18; // ShardSolid_t + constexpr std::ptrdiff_t m_ShatterPanelMode = 0x19; // ShatterPanelMode + constexpr std::ptrdiff_t m_vecPanelSize = 0x1C; // Vector2D + constexpr std::ptrdiff_t m_vecStressPositionA = 0x24; // Vector2D + constexpr std::ptrdiff_t m_vecStressPositionB = 0x2C; // Vector2D + constexpr std::ptrdiff_t m_vecPanelVertices = 0x38; // C_NetworkUtlVectorBase + constexpr std::ptrdiff_t m_flGlassHalfThickness = 0x50; // float + constexpr std::ptrdiff_t m_bHasParent = 0x54; // bool + constexpr std::ptrdiff_t m_bParentFrozen = 0x55; // bool + constexpr std::ptrdiff_t m_SurfacePropStringToken = 0x58; // CUtlStringToken +} + +namespace sky3dparams_t { + constexpr std::ptrdiff_t scale = 0x8; // int16_t + constexpr std::ptrdiff_t origin = 0xC; // Vector + constexpr std::ptrdiff_t bClip3DSkyBoxNearToWorldFar = 0x18; // bool + constexpr std::ptrdiff_t flClip3DSkyBoxNearToWorldFarOffset = 0x1C; // float + constexpr std::ptrdiff_t fog = 0x20; // fogparams_t + constexpr std::ptrdiff_t m_nWorldGroupID = 0x88; // WorldGroupId_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/engine2.dll.hpp b/HPCS2/HPCS2/offset/engine2.dll.hpp new file mode 100644 index 0000000..ac1982f --- /dev/null +++ b/HPCS2/HPCS2/offset/engine2.dll.hpp @@ -0,0 +1,244 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace CEmptyEntityInstance { +} + +namespace CEntityComponent { +} + +namespace CEntityComponentHelper { + constexpr std::ptrdiff_t m_flags = 0x8; // uint32_t + constexpr std::ptrdiff_t m_pInfo = 0x10; // EntComponentInfo_t* + constexpr std::ptrdiff_t m_nPriority = 0x18; // int32_t + constexpr std::ptrdiff_t m_pNext = 0x20; // CEntityComponentHelper* +} + +namespace CEntityIOOutput { + constexpr std::ptrdiff_t m_Value = 0x18; // CVariantBase +} + +namespace CEntityIdentity { + constexpr std::ptrdiff_t m_nameStringableIndex = 0x14; // int32_t + constexpr std::ptrdiff_t m_name = 0x18; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_designerName = 0x20; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flags = 0x30; // uint32_t + constexpr std::ptrdiff_t m_worldGroupId = 0x38; // WorldGroupId_t + constexpr std::ptrdiff_t m_fDataObjectTypes = 0x3C; // uint32_t + constexpr std::ptrdiff_t m_PathIndex = 0x40; // ChangeAccessorFieldPathIndex_t + constexpr std::ptrdiff_t m_pPrev = 0x58; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNext = 0x60; // CEntityIdentity* + constexpr std::ptrdiff_t m_pPrevByClass = 0x68; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNextByClass = 0x70; // CEntityIdentity* +} + +namespace CEntityInstance { + constexpr std::ptrdiff_t m_iszPrivateVScripts = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pEntity = 0x10; // CEntityIdentity* + constexpr std::ptrdiff_t m_CScriptComponent = 0x28; // CScriptComponent* +} + +namespace CNetworkVarChainer { + constexpr std::ptrdiff_t m_PathIndex = 0x20; // ChangeAccessorFieldPathIndex_t +} + +namespace CScriptComponent { // CEntityComponent + constexpr std::ptrdiff_t m_scriptClassName = 0x30; // CUtlSymbolLarge +} + +namespace CVariantDefaultAllocator { +} + +namespace EngineLoopState_t { + constexpr std::ptrdiff_t m_nPlatWindowWidth = 0x18; // int32_t + constexpr std::ptrdiff_t m_nPlatWindowHeight = 0x1C; // int32_t + constexpr std::ptrdiff_t m_nRenderWidth = 0x20; // int32_t + constexpr std::ptrdiff_t m_nRenderHeight = 0x24; // int32_t +} + +namespace EntComponentInfo_t { + constexpr std::ptrdiff_t m_pName = 0x0; // char* + constexpr std::ptrdiff_t m_pCPPClassname = 0x8; // char* + constexpr std::ptrdiff_t m_pNetworkDataReferencedDescription = 0x10; // char* + constexpr std::ptrdiff_t m_pNetworkDataReferencedPtrPropDescription = 0x18; // char* + constexpr std::ptrdiff_t m_nRuntimeIndex = 0x20; // int32_t + constexpr std::ptrdiff_t m_nFlags = 0x24; // uint32_t + constexpr std::ptrdiff_t m_pBaseClassComponentHelper = 0x60; // CEntityComponentHelper* +} + +namespace EntInput_t { +} + +namespace EntOutput_t { +} + +namespace EventAdvanceTick_t { // EventSimulate_t + constexpr std::ptrdiff_t m_nCurrentTick = 0x30; // int32_t + constexpr std::ptrdiff_t m_nCurrentTickThisFrame = 0x34; // int32_t + constexpr std::ptrdiff_t m_nTotalTicksThisFrame = 0x38; // int32_t + constexpr std::ptrdiff_t m_nTotalTicks = 0x3C; // int32_t +} + +namespace EventAppShutdown_t { + constexpr std::ptrdiff_t m_nDummy0 = 0x0; // int32_t +} + +namespace EventClientAdvanceTick_t { // EventAdvanceTick_t +} + +namespace EventClientFrameSimulate_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRealTime = 0x28; // float + constexpr std::ptrdiff_t m_flFrameTime = 0x2C; // float +} + +namespace EventClientOutput_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRenderTime = 0x28; // float + constexpr std::ptrdiff_t m_flRealTime = 0x2C; // float + constexpr std::ptrdiff_t m_flRenderFrameTimeUnbounded = 0x30; // float + constexpr std::ptrdiff_t m_bRenderOnly = 0x34; // bool +} + +namespace EventClientPauseSimulate_t { // EventSimulate_t +} + +namespace EventClientPollInput_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRealTime = 0x28; // float +} + +namespace EventClientPollNetworking_t { + constexpr std::ptrdiff_t m_nTickCount = 0x0; // int32_t +} + +namespace EventClientPostAdvanceTick_t { // EventPostAdvanceTick_t +} + +namespace EventClientPostOutput_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRenderTime = 0x28; // double + constexpr std::ptrdiff_t m_flRenderFrameTime = 0x30; // float + constexpr std::ptrdiff_t m_flRenderFrameTimeUnbounded = 0x34; // float + constexpr std::ptrdiff_t m_bRenderOnly = 0x38; // bool +} + +namespace EventClientPostSimulate_t { // EventSimulate_t +} + +namespace EventClientPreOutput_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRenderTime = 0x28; // double + constexpr std::ptrdiff_t m_flRenderFrameTime = 0x30; // double + constexpr std::ptrdiff_t m_flRenderFrameTimeUnbounded = 0x38; // double + constexpr std::ptrdiff_t m_flRealTime = 0x40; // float + constexpr std::ptrdiff_t m_bRenderOnly = 0x44; // bool +} + +namespace EventClientPreSimulate_t { // EventSimulate_t +} + +namespace EventClientPredictionPostNetupdate_t { +} + +namespace EventClientProcessGameInput_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRealTime = 0x28; // float + constexpr std::ptrdiff_t m_flFrameTime = 0x2C; // float +} + +namespace EventClientProcessInput_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRealTime = 0x28; // float +} + +namespace EventClientProcessNetworking_t { +} + +namespace EventClientSceneSystemThreadStateChange_t { + constexpr std::ptrdiff_t m_bThreadsActive = 0x0; // bool +} + +namespace EventClientSendInput_t { + constexpr std::ptrdiff_t m_bFinalClientCommandTick = 0x0; // bool + constexpr std::ptrdiff_t m_nAdditionalClientCommandsToCreate = 0x4; // int32_t +} + +namespace EventClientSimulate_t { // EventSimulate_t +} + +namespace EventFrameBoundary_t { + constexpr std::ptrdiff_t m_flFrameTime = 0x0; // float +} + +namespace EventModInitialized_t { +} + +namespace EventPostAdvanceTick_t { // EventSimulate_t + constexpr std::ptrdiff_t m_nCurrentTick = 0x30; // int32_t + constexpr std::ptrdiff_t m_nCurrentTickThisFrame = 0x34; // int32_t + constexpr std::ptrdiff_t m_nTotalTicksThisFrame = 0x38; // int32_t + constexpr std::ptrdiff_t m_nTotalTicks = 0x3C; // int32_t +} + +namespace EventPostDataUpdate_t { + constexpr std::ptrdiff_t m_nCount = 0x0; // int32_t +} + +namespace EventPreDataUpdate_t { + constexpr std::ptrdiff_t m_nCount = 0x0; // int32_t +} + +namespace EventProfileStorageAvailable_t { + constexpr std::ptrdiff_t m_nSplitScreenSlot = 0x0; // CSplitScreenSlot +} + +namespace EventServerAdvanceTick_t { // EventAdvanceTick_t +} + +namespace EventServerPollNetworking_t { // EventSimulate_t +} + +namespace EventServerPostAdvanceTick_t { // EventPostAdvanceTick_t +} + +namespace EventServerPostSimulate_t { // EventSimulate_t +} + +namespace EventServerProcessNetworking_t { // EventSimulate_t +} + +namespace EventServerSimulate_t { // EventSimulate_t +} + +namespace EventSetTime_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_nClientOutputFrames = 0x28; // int32_t + constexpr std::ptrdiff_t m_flRealTime = 0x30; // double + constexpr std::ptrdiff_t m_flRenderTime = 0x38; // double + constexpr std::ptrdiff_t m_flRenderFrameTime = 0x40; // double + constexpr std::ptrdiff_t m_flRenderFrameTimeUnbounded = 0x48; // double + constexpr std::ptrdiff_t m_flRenderFrameTimeUnscaled = 0x50; // double + constexpr std::ptrdiff_t m_flTickRemainder = 0x58; // double +} + +namespace EventSimpleLoopFrameUpdate_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_flRealTime = 0x28; // float + constexpr std::ptrdiff_t m_flFrameTime = 0x2C; // float +} + +namespace EventSimulate_t { + constexpr std::ptrdiff_t m_LoopState = 0x0; // EngineLoopState_t + constexpr std::ptrdiff_t m_bFirstTick = 0x28; // bool + constexpr std::ptrdiff_t m_bLastTick = 0x29; // bool +} + +namespace EventSplitScreenStateChanged_t { +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/host.dll.hpp b/HPCS2/HPCS2/offset/host.dll.hpp new file mode 100644 index 0000000..1d73aca --- /dev/null +++ b/HPCS2/HPCS2/offset/host.dll.hpp @@ -0,0 +1,16 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:22 +0000 + */ + +#pragma once + +#include + +namespace CAnimScriptBase { + constexpr std::ptrdiff_t m_bIsValid = 0x8; // bool +} + +namespace EmptyTestScript { // CAnimScriptBase + constexpr std::ptrdiff_t m_hTest = 0x10; // CAnimScriptParam +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/interfaces.hpp b/HPCS2/HPCS2/offset/interfaces.hpp new file mode 100644 index 0000000..aaff864 --- /dev/null +++ b/HPCS2/HPCS2/offset/interfaces.hpp @@ -0,0 +1,244 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:23 +0000 + */ + +#pragma once + +#include + +namespace animationsystem_dll { // animationsystem.dll + constexpr std::ptrdiff_t AnimationSystemUtils_001 = 0x64670; + constexpr std::ptrdiff_t AnimationSystem_001 = 0x5F1D0; +} + +namespace client_dll { // client.dll + constexpr std::ptrdiff_t LegacyGameUI001 = 0x899820; + constexpr std::ptrdiff_t Source2ClientUI001 = 0x888530; + constexpr std::ptrdiff_t Source2ClientPrediction001 = 0x7A1860; + constexpr std::ptrdiff_t ClientToolsInfo_001 = 0x72DAA0; + constexpr std::ptrdiff_t Source2Client002 = 0x72DAC0; + constexpr std::ptrdiff_t GameClientExports001 = 0x72DAB0; + constexpr std::ptrdiff_t EmptyWorldService001_Client = 0x48DEF0; + constexpr std::ptrdiff_t Source2ClientConfig001 = 0x474F00; +} + +namespace engine2_dll { // engine2.dll + constexpr std::ptrdiff_t SimpleEngineLoopService_001 = 0x1E3370; + constexpr std::ptrdiff_t ClientServerEngineLoopService_001 = 0x1D9040; + constexpr std::ptrdiff_t KeyValueCache001 = 0x1D5680; + constexpr std::ptrdiff_t HostStateMgr001 = 0x1D2E80; + constexpr std::ptrdiff_t GameEventSystemServerV001 = 0x1CE520; + constexpr std::ptrdiff_t GameEventSystemClientV001 = 0x1CE510; + constexpr std::ptrdiff_t EngineServiceMgr001 = 0x1CA200; + constexpr std::ptrdiff_t VProfService_001 = 0x1B7C90; + constexpr std::ptrdiff_t ToolService_001 = 0x1B69E0; + constexpr std::ptrdiff_t StatsService_001 = 0x1B1C60; + constexpr std::ptrdiff_t SplitScreenService_001 = 0x1AEED0; + constexpr std::ptrdiff_t SoundService_001 = 0x1A9A10; + constexpr std::ptrdiff_t ScreenshotService001 = 0x1A58E0; + constexpr std::ptrdiff_t RenderService_001 = 0x1A2C40; + constexpr std::ptrdiff_t NetworkService_001 = 0x1A2750; + constexpr std::ptrdiff_t NetworkServerService_001 = 0x19D7F0; + constexpr std::ptrdiff_t NetworkP2PService_001 = 0x199200; + constexpr std::ptrdiff_t NetworkClientService_001 = 0x192E30; + constexpr std::ptrdiff_t MapListService_001 = 0x18BE00; + constexpr std::ptrdiff_t InputService_001 = 0x179C80; + constexpr std::ptrdiff_t GameUIService_001 = 0x1744A0; + constexpr std::ptrdiff_t GameResourceServiceServerV001 = 0x172200; + constexpr std::ptrdiff_t GameResourceServiceClientV001 = 0x1721F0; + constexpr std::ptrdiff_t BugService001 = 0x16B220; + constexpr std::ptrdiff_t BenchmarkService001 = 0x1699F0; + constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005 = 0x116F70; + constexpr std::ptrdiff_t EngineGameUI001 = 0x116300; + constexpr std::ptrdiff_t INETSUPPORT_001 = 0xE6510; + constexpr std::ptrdiff_t Source2EngineToServerStringTable001 = 0xA14C0; + constexpr std::ptrdiff_t Source2EngineToServer001 = 0x8B300; + constexpr std::ptrdiff_t Source2EngineToClientStringTable001 = 0x84020; + constexpr std::ptrdiff_t Source2EngineToClient001 = 0x5AA60; +} + +namespace filesystem_stdio_dll { // filesystem_stdio.dll + constexpr std::ptrdiff_t VAsyncFileSystem2_001 = 0x66D30; + constexpr std::ptrdiff_t VFileSystem017 = 0x66D20; +} + +namespace host_dll { // host.dll + constexpr std::ptrdiff_t Source2Host001 = 0x18E10; + constexpr std::ptrdiff_t SinglePlayerSharedMemory001 = 0x18A90; + constexpr std::ptrdiff_t SaveRestoreDataVersion001 = 0x18A80; + constexpr std::ptrdiff_t PredictionDiffManager001 = 0x16E20; + constexpr std::ptrdiff_t HostUtils001 = 0x12550; + constexpr std::ptrdiff_t GameSystem2HostHook = 0x11DA0; + constexpr std::ptrdiff_t GameModelInfo001 = 0x11CC0; + constexpr std::ptrdiff_t DebugDrawQueueManager001 = 0x11710; +} + +namespace imemanager_dll { // imemanager.dll + constexpr std::ptrdiff_t IMEManager001 = 0xC470; +} + +namespace inputsystem_dll { // inputsystem.dll + constexpr std::ptrdiff_t InputSystemVersion001 = 0x28D0; + constexpr std::ptrdiff_t InputStackSystemVersion001 = 0x16F0; +} + +namespace localize_dll { // localize.dll + constexpr std::ptrdiff_t Localize_001 = 0x3830; +} + +namespace matchmaking_dll { // matchmaking.dll + constexpr std::ptrdiff_t GameTypes001 = 0x50270; + constexpr std::ptrdiff_t MATCHFRAMEWORK_001 = 0x101030; +} + +namespace materialsystem2_dll { // materialsystem2.dll + constexpr std::ptrdiff_t MaterialUtils_001 = 0x4DB90; + constexpr std::ptrdiff_t TextLayout_001 = 0x4A2E0; + constexpr std::ptrdiff_t PostProcessingSystem_001 = 0x42A60; + constexpr std::ptrdiff_t FontManager_001 = 0x37900; + constexpr std::ptrdiff_t VMaterialSystem2_001 = 0x25EC0; +} + +namespace meshsystem_dll { // meshsystem.dll + constexpr std::ptrdiff_t MeshSystem001 = 0x7270; +} + +namespace navsystem_dll { // navsystem.dll + constexpr std::ptrdiff_t NavSystem001 = 0x76F0; +} + +namespace networksystem_dll { // networksystem.dll + constexpr std::ptrdiff_t SerializedEntitiesVersion001 = 0xD1AD0; + constexpr std::ptrdiff_t NetworkSystemVersion001 = 0xBBF90; + constexpr std::ptrdiff_t NetworkMessagesVersion001 = 0x9C030; + constexpr std::ptrdiff_t FlattenedSerializersVersion001 = 0x7B8A0; +} + +namespace panorama_dll { // panorama.dll + constexpr std::ptrdiff_t PanoramaUIEngine001 = 0x57EE0; +} + +namespace panorama_text_pango_dll { // panorama_text_pango.dll + constexpr std::ptrdiff_t PanoramaTextServices001 = 0x4CBD0; +} + +namespace panoramauiclient_dll { // panoramauiclient.dll + constexpr std::ptrdiff_t PanoramaUIClient001 = 0x12780; +} + +namespace particles_dll { // particles.dll + constexpr std::ptrdiff_t ParticleSystemMgr003 = 0x52D20; +} + +namespace pulse_system_dll { // pulse_system.dll + constexpr std::ptrdiff_t IPulseSystem_001 = 0x5B80; +} + +namespace rendersystemdx11_dll { // rendersystemdx11.dll + constexpr std::ptrdiff_t RenderUtils_001 = 0x52FD0; + constexpr std::ptrdiff_t VRenderDeviceMgrBackdoor001 = 0x4A4F0; + constexpr std::ptrdiff_t RenderDeviceMgr001 = 0x4A4E0; +} + +namespace resourcesystem_dll { // resourcesystem.dll + constexpr std::ptrdiff_t ResourceSystem013 = 0x10650; +} + +namespace scenefilecache_dll { // scenefilecache.dll + constexpr std::ptrdiff_t SceneFileCache002 = 0x68E0; + constexpr std::ptrdiff_t ResponseRulesCache001 = 0x3190; +} + +namespace scenesystem_dll { // scenesystem.dll + constexpr std::ptrdiff_t SceneUtils_001 = 0x13C370; + constexpr std::ptrdiff_t SceneSystem_002 = 0xCA160; + constexpr std::ptrdiff_t RenderingPipelines_001 = 0x8E420; +} + +namespace schemasystem_dll { // schemasystem.dll + constexpr std::ptrdiff_t SchemaSystem_001 = 0xA930; +} + +namespace server_dll { // server.dll + constexpr std::ptrdiff_t NavGameTest001 = 0xA35420; + constexpr std::ptrdiff_t ServerToolsInfo_001 = 0x838790; + constexpr std::ptrdiff_t Source2GameClients001 = 0x8387A0; + constexpr std::ptrdiff_t Source2GameEntities001 = 0x8387B0; + constexpr std::ptrdiff_t Source2Server001 = 0x8387C0; + constexpr std::ptrdiff_t EmptyWorldService001_Server = 0x58D750; + constexpr std::ptrdiff_t Source2ServerConfig001 = 0x56D760; + constexpr std::ptrdiff_t EntitySubclassUtilsV001 = 0x2CD4C0; + constexpr std::ptrdiff_t customnavsystem001 = 0x24A3F0; + constexpr std::ptrdiff_t Source2GameDirector001 = 0x151EC0; +} + +namespace soundsystem_dll { // soundsystem.dll + constexpr std::ptrdiff_t SoundOpSystem001 = 0x1567E0; + constexpr std::ptrdiff_t SoundOpSystemEdit001 = 0x8BBC0; + constexpr std::ptrdiff_t VMixEditTool001 = 0x71740; + constexpr std::ptrdiff_t SoundSystem001 = 0x46540; +} + +namespace steamaudio_dll { // steamaudio.dll + constexpr std::ptrdiff_t SteamAudio001 = 0x12EE0; +} + +namespace steamclient64_dll { // steamclient64.dll + constexpr std::ptrdiff_t IVALIDATE001 = 0x83A900; + constexpr std::ptrdiff_t CLIENTENGINE_INTERFACE_VERSION005 = 0x8367B0; + constexpr std::ptrdiff_t SteamClient020 = 0x631440; + constexpr std::ptrdiff_t SteamClient019 = 0x631430; + constexpr std::ptrdiff_t SteamClient018 = 0x631420; + constexpr std::ptrdiff_t SteamClient017 = 0x631410; + constexpr std::ptrdiff_t SteamClient016 = 0x631400; + constexpr std::ptrdiff_t SteamClient015 = 0x6313F0; + constexpr std::ptrdiff_t SteamClient014 = 0x6313E0; + constexpr std::ptrdiff_t SteamClient013 = 0x6313D0; + constexpr std::ptrdiff_t SteamClient012 = 0x6313C0; + constexpr std::ptrdiff_t SteamClient011 = 0x6313B0; + constexpr std::ptrdiff_t SteamClient010 = 0x6313A0; + constexpr std::ptrdiff_t SteamClient009 = 0x631390; + constexpr std::ptrdiff_t SteamClient008 = 0x631380; + constexpr std::ptrdiff_t SteamClient007 = 0x631370; + constexpr std::ptrdiff_t SteamClient006 = 0x631360; + constexpr std::ptrdiff_t p2pvoice002 = 0xD93D0; + constexpr std::ptrdiff_t p2pvoicesingleton002 = 0xD5D70; +} + +namespace tier0_dll { // tier0.dll + constexpr std::ptrdiff_t VStringTokenSystem001 = 0x18C100; + constexpr std::ptrdiff_t TestScriptMgr001 = 0x13F460; + constexpr std::ptrdiff_t VProcessUtils002 = 0x12F5E0; + constexpr std::ptrdiff_t VEngineCvar007 = 0x61920; +} + +namespace v8system_dll { // v8system.dll + constexpr std::ptrdiff_t Source2V8System001 = 0x1670; +} + +namespace valve_avi_dll { // valve_avi.dll + constexpr std::ptrdiff_t VAvi001 = 0x2F90; +} + +namespace valve_wmf_dll { // valve_wmf.dll + constexpr std::ptrdiff_t VMediaFoundation001 = 0x12D0; +} + +namespace vphysics2_dll { // vphysics2.dll + constexpr std::ptrdiff_t VPhysics2_Handle_Interface_001 = 0x61120; + constexpr std::ptrdiff_t VPhysics2_Interface_001 = 0x5C740; +} + +namespace vscript_dll { // vscript.dll + constexpr std::ptrdiff_t VScriptManager010 = 0x31DA0; +} + +namespace vstdlib_s64_dll { // vstdlib_s64.dll + constexpr std::ptrdiff_t IVALIDATE001 = 0x24FF0; + constexpr std::ptrdiff_t VEngineCvar002 = 0x5750; +} + +namespace worldrenderer_dll { // worldrenderer.dll + constexpr std::ptrdiff_t WorldRendererMgr001 = 0x21650; +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/materialsystem2.dll.hpp b/HPCS2/HPCS2/offset/materialsystem2.dll.hpp new file mode 100644 index 0000000..eb40d36 --- /dev/null +++ b/HPCS2/HPCS2/offset/materialsystem2.dll.hpp @@ -0,0 +1,115 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace MaterialParamBuffer_t { // MaterialParam_t + constexpr std::ptrdiff_t m_value = 0x8; // CUtlBinaryBlock +} + +namespace MaterialParamFloat_t { // MaterialParam_t + constexpr std::ptrdiff_t m_flValue = 0x8; // float +} + +namespace MaterialParamInt_t { // MaterialParam_t + constexpr std::ptrdiff_t m_nValue = 0x8; // int32_t +} + +namespace MaterialParamString_t { // MaterialParam_t + constexpr std::ptrdiff_t m_value = 0x8; // CUtlString +} + +namespace MaterialParamTexture_t { // MaterialParam_t + constexpr std::ptrdiff_t m_pValue = 0x8; // CStrongHandle +} + +namespace MaterialParamVector_t { // MaterialParam_t + constexpr std::ptrdiff_t m_value = 0x8; // Vector4D +} + +namespace MaterialParam_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString +} + +namespace MaterialResourceData_t { + constexpr std::ptrdiff_t m_materialName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_shaderName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_intParams = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_floatParams = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_vectorParams = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_textureParams = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_dynamicParams = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_dynamicTextureParams = 0x88; // CUtlVector + constexpr std::ptrdiff_t m_intAttributes = 0xA0; // CUtlVector + constexpr std::ptrdiff_t m_floatAttributes = 0xB8; // CUtlVector + constexpr std::ptrdiff_t m_vectorAttributes = 0xD0; // CUtlVector + constexpr std::ptrdiff_t m_textureAttributes = 0xE8; // CUtlVector + constexpr std::ptrdiff_t m_stringAttributes = 0x100; // CUtlVector + constexpr std::ptrdiff_t m_renderAttributesUsed = 0x118; // CUtlVector +} + +namespace PostProcessingBloomParameters_t { + constexpr std::ptrdiff_t m_blendMode = 0x0; // BloomBlendMode_t + constexpr std::ptrdiff_t m_flBloomStrength = 0x4; // float + constexpr std::ptrdiff_t m_flScreenBloomStrength = 0x8; // float + constexpr std::ptrdiff_t m_flBlurBloomStrength = 0xC; // float + constexpr std::ptrdiff_t m_flBloomThreshold = 0x10; // float + constexpr std::ptrdiff_t m_flBloomThresholdWidth = 0x14; // float + constexpr std::ptrdiff_t m_flSkyboxBloomStrength = 0x18; // float + constexpr std::ptrdiff_t m_flBloomStartValue = 0x1C; // float + constexpr std::ptrdiff_t m_flBlurWeight = 0x20; // float[5] + constexpr std::ptrdiff_t m_vBlurTint = 0x34; // Vector[5] +} + +namespace PostProcessingLocalContrastParameters_t { + constexpr std::ptrdiff_t m_flLocalContrastStrength = 0x0; // float + constexpr std::ptrdiff_t m_flLocalContrastEdgeStrength = 0x4; // float + constexpr std::ptrdiff_t m_flLocalContrastVignetteStart = 0x8; // float + constexpr std::ptrdiff_t m_flLocalContrastVignetteEnd = 0xC; // float + constexpr std::ptrdiff_t m_flLocalContrastVignetteBlur = 0x10; // float +} + +namespace PostProcessingResource_t { + constexpr std::ptrdiff_t m_bHasTonemapParams = 0x0; // bool + constexpr std::ptrdiff_t m_toneMapParams = 0x4; // PostProcessingTonemapParameters_t + constexpr std::ptrdiff_t m_bHasBloomParams = 0x40; // bool + constexpr std::ptrdiff_t m_bloomParams = 0x44; // PostProcessingBloomParameters_t + constexpr std::ptrdiff_t m_bHasVignetteParams = 0xB4; // bool + constexpr std::ptrdiff_t m_vignetteParams = 0xB8; // PostProcessingVignetteParameters_t + constexpr std::ptrdiff_t m_bHasLocalContrastParams = 0xDC; // bool + constexpr std::ptrdiff_t m_localConstrastParams = 0xE0; // PostProcessingLocalContrastParameters_t + constexpr std::ptrdiff_t m_nColorCorrectionVolumeDim = 0xF4; // int32_t + constexpr std::ptrdiff_t m_colorCorrectionVolumeData = 0xF8; // CUtlBinaryBlock + constexpr std::ptrdiff_t m_bHasColorCorrection = 0x110; // bool +} + +namespace PostProcessingTonemapParameters_t { + constexpr std::ptrdiff_t m_flExposureBias = 0x0; // float + constexpr std::ptrdiff_t m_flShoulderStrength = 0x4; // float + constexpr std::ptrdiff_t m_flLinearStrength = 0x8; // float + constexpr std::ptrdiff_t m_flLinearAngle = 0xC; // float + constexpr std::ptrdiff_t m_flToeStrength = 0x10; // float + constexpr std::ptrdiff_t m_flToeNum = 0x14; // float + constexpr std::ptrdiff_t m_flToeDenom = 0x18; // float + constexpr std::ptrdiff_t m_flWhitePoint = 0x1C; // float + constexpr std::ptrdiff_t m_flLuminanceSource = 0x20; // float + constexpr std::ptrdiff_t m_flExposureBiasShadows = 0x24; // float + constexpr std::ptrdiff_t m_flExposureBiasHighlights = 0x28; // float + constexpr std::ptrdiff_t m_flMinShadowLum = 0x2C; // float + constexpr std::ptrdiff_t m_flMaxShadowLum = 0x30; // float + constexpr std::ptrdiff_t m_flMinHighlightLum = 0x34; // float + constexpr std::ptrdiff_t m_flMaxHighlightLum = 0x38; // float +} + +namespace PostProcessingVignetteParameters_t { + constexpr std::ptrdiff_t m_flVignetteStrength = 0x0; // float + constexpr std::ptrdiff_t m_vCenter = 0x4; // Vector2D + constexpr std::ptrdiff_t m_flRadius = 0xC; // float + constexpr std::ptrdiff_t m_flRoundness = 0x10; // float + constexpr std::ptrdiff_t m_flFeather = 0x14; // float + constexpr std::ptrdiff_t m_vColorTint = 0x18; // Vector +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/networksystem.dll.hpp b/HPCS2/HPCS2/offset/networksystem.dll.hpp new file mode 100644 index 0000000..25f40df --- /dev/null +++ b/HPCS2/HPCS2/offset/networksystem.dll.hpp @@ -0,0 +1,12 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace ChangeAccessorFieldPathIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int16_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/offsets.hpp b/HPCS2/HPCS2/offset/offsets.hpp new file mode 100644 index 0000000..a7b8719 --- /dev/null +++ b/HPCS2/HPCS2/offset/offsets.hpp @@ -0,0 +1,49 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:24 +0000 + */ + +#pragma once + +#include + +namespace client_dll { // client.dll + constexpr std::ptrdiff_t dwBaseEntityModel_setModel = 0x581530; + constexpr std::ptrdiff_t dwEntityList = 0x17AB958; + constexpr std::ptrdiff_t dwForceAttack = 0x16B02B0; + constexpr std::ptrdiff_t dwForceAttack2 = 0x16B0340; + constexpr std::ptrdiff_t dwForceBackward = 0x16B0580; + constexpr std::ptrdiff_t dwForceCrouch = 0x16B0850; + constexpr std::ptrdiff_t dwForceForward = 0x16B04F0; + constexpr std::ptrdiff_t dwForceJump = 0x16B07C0; + constexpr std::ptrdiff_t dwForceLeft = 0x16B0610; + constexpr std::ptrdiff_t dwForceRight = 0x16B06A0; + constexpr std::ptrdiff_t dwGameEntitySystem = 0x18D51A8; + constexpr std::ptrdiff_t dwGameEntitySystem_getBaseEntity = 0x604B40; + constexpr std::ptrdiff_t dwGameEntitySystem_getHighestEntityIndex = 0x5F6830; + constexpr std::ptrdiff_t dwGameRules = 0x1807FA8; + constexpr std::ptrdiff_t dwGlobalVars = 0x16AC100; + constexpr std::ptrdiff_t dwGlowManager = 0x1807708; + constexpr std::ptrdiff_t dwInterfaceLinkList = 0x1902EB8; + constexpr std::ptrdiff_t dwLocalPlayerController = 0x17FAC68; + constexpr std::ptrdiff_t dwLocalPlayerPawn = 0x16B7340; + constexpr std::ptrdiff_t dwPlantedC4 = 0x180EB48; + constexpr std::ptrdiff_t dwPrediction = 0x16B7210; + constexpr std::ptrdiff_t dwViewAngles = 0x18690D8; + constexpr std::ptrdiff_t dwViewMatrix = 0x180A0D0; + constexpr std::ptrdiff_t dwViewRender = 0x180A090; +} + +namespace engine2_dll { // engine2.dll + constexpr std::ptrdiff_t dwBuildNumber = 0x488514; + constexpr std::ptrdiff_t dwNetworkGameClient = 0x487AB0; + constexpr std::ptrdiff_t dwNetworkGameClient_getLocalPlayer = 0xF0; + constexpr std::ptrdiff_t dwNetworkGameClient_maxClients = 0x250; + constexpr std::ptrdiff_t dwNetworkGameClient_signOnState = 0x240; + constexpr std::ptrdiff_t dwWindowHeight = 0x5397DC; + constexpr std::ptrdiff_t dwWindowWidth = 0x5397D8; +} + +namespace inputsystem_dll { // inputsystem.dll + constexpr std::ptrdiff_t dwInputSystem = 0x35770; +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/particles.dll.hpp b/HPCS2/HPCS2/offset/particles.dll.hpp new file mode 100644 index 0000000..16516c4 --- /dev/null +++ b/HPCS2/HPCS2/offset/particles.dll.hpp @@ -0,0 +1,4037 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace CBaseRendererSource2 { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flRadiusScale = 0x200; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flAlphaScale = 0x358; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flRollScale = 0x4B0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nAlpha2Field = 0x608; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecColorScale = 0x610; // CParticleCollectionRendererVecInput + constexpr std::ptrdiff_t m_nColorBlendType = 0xC68; // ParticleColorBlendType_t + constexpr std::ptrdiff_t m_nShaderType = 0xC6C; // SpriteCardShaderType_t + constexpr std::ptrdiff_t m_strShaderOverride = 0xC70; // CUtlString + constexpr std::ptrdiff_t m_flCenterXOffset = 0xC78; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flCenterYOffset = 0xDD0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flBumpStrength = 0xF28; // float + constexpr std::ptrdiff_t m_nCropTextureOverride = 0xF2C; // ParticleSequenceCropOverride_t + constexpr std::ptrdiff_t m_vecTexturesInput = 0xF30; // CUtlVector + constexpr std::ptrdiff_t m_flAnimationRate = 0xF48; // float + constexpr std::ptrdiff_t m_nAnimationType = 0xF4C; // AnimationType_t + constexpr std::ptrdiff_t m_bAnimateInFPS = 0xF50; // bool + constexpr std::ptrdiff_t m_flSelfIllumAmount = 0xF58; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flDiffuseAmount = 0x10B0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nLightingControlPoint = 0x1208; // int32_t + constexpr std::ptrdiff_t m_nSelfIllumPerParticle = 0x120C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nOutputBlendMode = 0x1210; // ParticleOutputBlendMode_t + constexpr std::ptrdiff_t m_bGammaCorrectVertexColors = 0x1214; // bool + constexpr std::ptrdiff_t m_bSaturateColorPreAlphaBlend = 0x1215; // bool + constexpr std::ptrdiff_t m_flAddSelfAmount = 0x1218; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flDesaturation = 0x1370; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flOverbrightFactor = 0x14C8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nHSVShiftControlPoint = 0x1620; // int32_t + constexpr std::ptrdiff_t m_nFogType = 0x1624; // ParticleFogType_t + constexpr std::ptrdiff_t m_flFogAmount = 0x1628; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_bTintByFOW = 0x1780; // bool + constexpr std::ptrdiff_t m_bTintByGlobalLight = 0x1781; // bool + constexpr std::ptrdiff_t m_nPerParticleAlphaReference = 0x1784; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nPerParticleAlphaRefWindow = 0x1788; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nAlphaReferenceType = 0x178C; // ParticleAlphaReferenceType_t + constexpr std::ptrdiff_t m_flAlphaReferenceSoftness = 0x1790; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flSourceAlphaValueToMapToZero = 0x18E8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flSourceAlphaValueToMapToOne = 0x1A40; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_bRefract = 0x1B98; // bool + constexpr std::ptrdiff_t m_bRefractSolid = 0x1B99; // bool + constexpr std::ptrdiff_t m_flRefractAmount = 0x1BA0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nRefractBlurRadius = 0x1CF8; // int32_t + constexpr std::ptrdiff_t m_nRefractBlurType = 0x1CFC; // BlurFilterType_t + constexpr std::ptrdiff_t m_bOnlyRenderInEffectsBloomPass = 0x1D00; // bool + constexpr std::ptrdiff_t m_bOnlyRenderInEffectsWaterPass = 0x1D01; // bool + constexpr std::ptrdiff_t m_bUseMixedResolutionRendering = 0x1D02; // bool + constexpr std::ptrdiff_t m_bOnlyRenderInEffecsGameOverlay = 0x1D03; // bool + constexpr std::ptrdiff_t m_stencilTestID = 0x1D04; // char[128] + constexpr std::ptrdiff_t m_bStencilTestExclude = 0x1D84; // bool + constexpr std::ptrdiff_t m_stencilWriteID = 0x1D85; // char[128] + constexpr std::ptrdiff_t m_bWriteStencilOnDepthPass = 0x1E05; // bool + constexpr std::ptrdiff_t m_bWriteStencilOnDepthFail = 0x1E06; // bool + constexpr std::ptrdiff_t m_bReverseZBuffering = 0x1E07; // bool + constexpr std::ptrdiff_t m_bDisableZBuffering = 0x1E08; // bool + constexpr std::ptrdiff_t m_nFeatheringMode = 0x1E0C; // ParticleDepthFeatheringMode_t + constexpr std::ptrdiff_t m_flFeatheringMinDist = 0x1E10; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flFeatheringMaxDist = 0x1F68; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flFeatheringFilter = 0x20C0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flDepthBias = 0x2218; // float + constexpr std::ptrdiff_t m_nSortMethod = 0x221C; // ParticleSortingChoiceList_t + constexpr std::ptrdiff_t m_bBlendFramesSeq0 = 0x2220; // bool + constexpr std::ptrdiff_t m_bMaxLuminanceBlendingSequence0 = 0x2221; // bool +} + +namespace CBaseTrailRenderer { // CBaseRendererSource2 + constexpr std::ptrdiff_t m_nOrientationType = 0x2470; // ParticleOrientationChoiceList_t + constexpr std::ptrdiff_t m_nOrientationControlPoint = 0x2474; // int32_t + constexpr std::ptrdiff_t m_flMinSize = 0x2478; // float + constexpr std::ptrdiff_t m_flMaxSize = 0x247C; // float + constexpr std::ptrdiff_t m_flStartFadeSize = 0x2480; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flEndFadeSize = 0x25D8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_bClampV = 0x2730; // bool +} + +namespace CGeneralRandomRotation { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flDegrees = 0x1C4; // float + constexpr std::ptrdiff_t m_flDegreesMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flDegreesMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flRotationRandExponent = 0x1D0; // float + constexpr std::ptrdiff_t m_bRandomlyFlipDirection = 0x1D4; // bool +} + +namespace CGeneralSpin { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nSpinRateDegrees = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nSpinRateMinDegrees = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_fSpinRateStopTime = 0x1CC; // float +} + +namespace CNewParticleEffect { // IParticleEffect + constexpr std::ptrdiff_t m_pNext = 0x10; // CNewParticleEffect* + constexpr std::ptrdiff_t m_pPrev = 0x18; // CNewParticleEffect* + constexpr std::ptrdiff_t m_pParticles = 0x20; // IParticleCollection* + constexpr std::ptrdiff_t m_pDebugName = 0x28; // char* + constexpr std::ptrdiff_t m_bDontRemove = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bRemove = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNeedsBBoxUpdate = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bIsFirstFrame = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bAutoUpdateBBox = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bAllocated = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bSimulate = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bShouldPerformCullCheck = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bForceNoDraw = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bShouldSave = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bDisableAggregation = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bShouldSimulateDuringGamePaused = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bShouldCheckFoW = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_vSortOrigin = 0x40; // Vector + constexpr std::ptrdiff_t m_flScale = 0x4C; // float + constexpr std::ptrdiff_t m_hOwner = 0x50; // PARTICLE_EHANDLE__* + constexpr std::ptrdiff_t m_pOwningParticleProperty = 0x58; // CParticleProperty* + constexpr std::ptrdiff_t m_flFreezeTransitionStart = 0x70; // float + constexpr std::ptrdiff_t m_flFreezeTransitionDuration = 0x74; // float + constexpr std::ptrdiff_t m_flFreezeTransitionOverride = 0x78; // float + constexpr std::ptrdiff_t m_bFreezeTransitionActive = 0x7C; // bool + constexpr std::ptrdiff_t m_bFreezeTargetState = 0x7D; // bool + constexpr std::ptrdiff_t m_bCanFreeze = 0x7E; // bool + constexpr std::ptrdiff_t m_LastMin = 0x80; // Vector + constexpr std::ptrdiff_t m_LastMax = 0x8C; // Vector + constexpr std::ptrdiff_t m_nSplitScreenUser = 0x98; // CSplitScreenSlot + constexpr std::ptrdiff_t m_vecAggregationCenter = 0x9C; // Vector + constexpr std::ptrdiff_t m_RefCount = 0xC0; // int32_t +} + +namespace CParticleBindingRealPulse { // CParticleCollectionBindingInstance +} + +namespace CParticleCollectionBindingInstance { // CBasePulseGraphInstance +} + +namespace CParticleCollectionFloatInput { // CParticleFloatInput +} + +namespace CParticleCollectionRendererFloatInput { // CParticleCollectionFloatInput +} + +namespace CParticleCollectionRendererVecInput { // CParticleCollectionVecInput +} + +namespace CParticleCollectionVecInput { // CParticleVecInput +} + +namespace CParticleFloatInput { // CParticleInput + constexpr std::ptrdiff_t m_nType = 0x10; // ParticleFloatType_t + constexpr std::ptrdiff_t m_nMapType = 0x14; // ParticleFloatMapType_t + constexpr std::ptrdiff_t m_flLiteralValue = 0x18; // float + constexpr std::ptrdiff_t m_NamedValue = 0x20; // CParticleNamedValueRef + constexpr std::ptrdiff_t m_nControlPoint = 0x60; // int32_t + constexpr std::ptrdiff_t m_nScalarAttribute = 0x64; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nVectorAttribute = 0x68; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nVectorComponent = 0x6C; // int32_t + constexpr std::ptrdiff_t m_flRandomMin = 0x70; // float + constexpr std::ptrdiff_t m_flRandomMax = 0x74; // float + constexpr std::ptrdiff_t m_bHasRandomSignFlip = 0x78; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0x7C; // int32_t + constexpr std::ptrdiff_t m_nRandomMode = 0x80; // ParticleFloatRandomMode_t + constexpr std::ptrdiff_t m_flLOD0 = 0x88; // float + constexpr std::ptrdiff_t m_flLOD1 = 0x8C; // float + constexpr std::ptrdiff_t m_flLOD2 = 0x90; // float + constexpr std::ptrdiff_t m_flLOD3 = 0x94; // float + constexpr std::ptrdiff_t m_nNoiseInputVectorAttribute = 0x98; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flNoiseOutputMin = 0x9C; // float + constexpr std::ptrdiff_t m_flNoiseOutputMax = 0xA0; // float + constexpr std::ptrdiff_t m_flNoiseScale = 0xA4; // float + constexpr std::ptrdiff_t m_vecNoiseOffsetRate = 0xA8; // Vector + constexpr std::ptrdiff_t m_flNoiseOffset = 0xB4; // float + constexpr std::ptrdiff_t m_nNoiseOctaves = 0xB8; // int32_t + constexpr std::ptrdiff_t m_nNoiseTurbulence = 0xBC; // PFNoiseTurbulence_t + constexpr std::ptrdiff_t m_nNoiseType = 0xC0; // PFNoiseType_t + constexpr std::ptrdiff_t m_nNoiseModifier = 0xC4; // PFNoiseModifier_t + constexpr std::ptrdiff_t m_flNoiseTurbulenceScale = 0xC8; // float + constexpr std::ptrdiff_t m_flNoiseTurbulenceMix = 0xCC; // float + constexpr std::ptrdiff_t m_flNoiseImgPreviewScale = 0xD0; // float + constexpr std::ptrdiff_t m_bNoiseImgPreviewLive = 0xD4; // bool + constexpr std::ptrdiff_t m_flNoCameraFallback = 0xE0; // float + constexpr std::ptrdiff_t m_bUseBoundsCenter = 0xE4; // bool + constexpr std::ptrdiff_t m_nInputMode = 0xE8; // ParticleFloatInputMode_t + constexpr std::ptrdiff_t m_flMultFactor = 0xEC; // float + constexpr std::ptrdiff_t m_flInput0 = 0xF0; // float + constexpr std::ptrdiff_t m_flInput1 = 0xF4; // float + constexpr std::ptrdiff_t m_flOutput0 = 0xF8; // float + constexpr std::ptrdiff_t m_flOutput1 = 0xFC; // float + constexpr std::ptrdiff_t m_flNotchedRangeMin = 0x100; // float + constexpr std::ptrdiff_t m_flNotchedRangeMax = 0x104; // float + constexpr std::ptrdiff_t m_flNotchedOutputOutside = 0x108; // float + constexpr std::ptrdiff_t m_flNotchedOutputInside = 0x10C; // float + constexpr std::ptrdiff_t m_nBiasType = 0x110; // ParticleFloatBiasType_t + constexpr std::ptrdiff_t m_flBiasParameter = 0x114; // float + constexpr std::ptrdiff_t m_Curve = 0x118; // CPiecewiseCurve +} + +namespace CParticleFunction { + constexpr std::ptrdiff_t m_flOpStrength = 0x8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nOpEndCapState = 0x160; // ParticleEndcapMode_t + constexpr std::ptrdiff_t m_flOpStartFadeInTime = 0x164; // float + constexpr std::ptrdiff_t m_flOpEndFadeInTime = 0x168; // float + constexpr std::ptrdiff_t m_flOpStartFadeOutTime = 0x16C; // float + constexpr std::ptrdiff_t m_flOpEndFadeOutTime = 0x170; // float + constexpr std::ptrdiff_t m_flOpFadeOscillatePeriod = 0x174; // float + constexpr std::ptrdiff_t m_bNormalizeToStopTime = 0x178; // bool + constexpr std::ptrdiff_t m_flOpTimeOffsetMin = 0x17C; // float + constexpr std::ptrdiff_t m_flOpTimeOffsetMax = 0x180; // float + constexpr std::ptrdiff_t m_nOpTimeOffsetSeed = 0x184; // int32_t + constexpr std::ptrdiff_t m_nOpTimeScaleSeed = 0x188; // int32_t + constexpr std::ptrdiff_t m_flOpTimeScaleMin = 0x18C; // float + constexpr std::ptrdiff_t m_flOpTimeScaleMax = 0x190; // float + constexpr std::ptrdiff_t m_bDisableOperator = 0x196; // bool + constexpr std::ptrdiff_t m_Notes = 0x198; // CUtlString +} + +namespace CParticleFunctionConstraint { // CParticleFunction +} + +namespace CParticleFunctionEmitter { // CParticleFunction + constexpr std::ptrdiff_t m_nEmitterIndex = 0x1B8; // int32_t +} + +namespace CParticleFunctionForce { // CParticleFunction +} + +namespace CParticleFunctionInitializer { // CParticleFunction + constexpr std::ptrdiff_t m_nAssociatedEmitterIndex = 0x1B8; // int32_t +} + +namespace CParticleFunctionOperator { // CParticleFunction +} + +namespace CParticleFunctionPreEmission { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_bRunOnce = 0x1C0; // bool +} + +namespace CParticleFunctionRenderer { // CParticleFunction + constexpr std::ptrdiff_t VisibilityInputs = 0x1B8; // CParticleVisibilityInputs + constexpr std::ptrdiff_t m_bCannotBeRefracted = 0x1FC; // bool + constexpr std::ptrdiff_t m_bSkipRenderingOnMobile = 0x1FD; // bool +} + +namespace CParticleInput { +} + +namespace CParticleModelInput { // CParticleInput + constexpr std::ptrdiff_t m_nType = 0x10; // ParticleModelType_t + constexpr std::ptrdiff_t m_NamedValue = 0x18; // CParticleNamedValueRef + constexpr std::ptrdiff_t m_nControlPoint = 0x58; // int32_t +} + +namespace CParticleProperty { +} + +namespace CParticleRemapFloatInput { // CParticleFloatInput +} + +namespace CParticleSystemDefinition { // IParticleSystemDefinition + constexpr std::ptrdiff_t m_nBehaviorVersion = 0x8; // int32_t + constexpr std::ptrdiff_t m_PreEmissionOperators = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_Emitters = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_Initializers = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_Operators = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_ForceGenerators = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_Constraints = 0x88; // CUtlVector + constexpr std::ptrdiff_t m_Renderers = 0xA0; // CUtlVector + constexpr std::ptrdiff_t m_Children = 0xB8; // CUtlVector + constexpr std::ptrdiff_t m_nFirstMultipleOverride_BackwardCompat = 0x178; // int32_t + constexpr std::ptrdiff_t m_nInitialParticles = 0x210; // int32_t + constexpr std::ptrdiff_t m_nMaxParticles = 0x214; // int32_t + constexpr std::ptrdiff_t m_nGroupID = 0x218; // int32_t + constexpr std::ptrdiff_t m_BoundingBoxMin = 0x21C; // Vector + constexpr std::ptrdiff_t m_BoundingBoxMax = 0x228; // Vector + constexpr std::ptrdiff_t m_flDepthSortBias = 0x234; // float + constexpr std::ptrdiff_t m_nSortOverridePositionCP = 0x238; // int32_t + constexpr std::ptrdiff_t m_bInfiniteBounds = 0x23C; // bool + constexpr std::ptrdiff_t m_bEnableNamedValues = 0x23D; // bool + constexpr std::ptrdiff_t m_NamedValueDomain = 0x240; // CUtlString + constexpr std::ptrdiff_t m_NamedValueLocals = 0x248; // CUtlVector + constexpr std::ptrdiff_t m_ConstantColor = 0x260; // Color + constexpr std::ptrdiff_t m_ConstantNormal = 0x264; // Vector + constexpr std::ptrdiff_t m_flConstantRadius = 0x270; // float + constexpr std::ptrdiff_t m_flConstantRotation = 0x274; // float + constexpr std::ptrdiff_t m_flConstantRotationSpeed = 0x278; // float + constexpr std::ptrdiff_t m_flConstantLifespan = 0x27C; // float + constexpr std::ptrdiff_t m_nConstantSequenceNumber = 0x280; // int32_t + constexpr std::ptrdiff_t m_nConstantSequenceNumber1 = 0x284; // int32_t + constexpr std::ptrdiff_t m_nSnapshotControlPoint = 0x288; // int32_t + constexpr std::ptrdiff_t m_hSnapshot = 0x290; // CStrongHandle + constexpr std::ptrdiff_t m_pszCullReplacementName = 0x298; // CStrongHandle + constexpr std::ptrdiff_t m_flCullRadius = 0x2A0; // float + constexpr std::ptrdiff_t m_flCullFillCost = 0x2A4; // float + constexpr std::ptrdiff_t m_nCullControlPoint = 0x2A8; // int32_t + constexpr std::ptrdiff_t m_hFallback = 0x2B0; // CStrongHandle + constexpr std::ptrdiff_t m_nFallbackMaxCount = 0x2B8; // int32_t + constexpr std::ptrdiff_t m_hLowViolenceDef = 0x2C0; // CStrongHandle + constexpr std::ptrdiff_t m_hReferenceReplacement = 0x2C8; // CStrongHandle + constexpr std::ptrdiff_t m_flPreSimulationTime = 0x2D0; // float + constexpr std::ptrdiff_t m_flStopSimulationAfterTime = 0x2D4; // float + constexpr std::ptrdiff_t m_flMaximumTimeStep = 0x2D8; // float + constexpr std::ptrdiff_t m_flMaximumSimTime = 0x2DC; // float + constexpr std::ptrdiff_t m_flMinimumSimTime = 0x2E0; // float + constexpr std::ptrdiff_t m_flMinimumTimeStep = 0x2E4; // float + constexpr std::ptrdiff_t m_nMinimumFrames = 0x2E8; // int32_t + constexpr std::ptrdiff_t m_nMinCPULevel = 0x2EC; // int32_t + constexpr std::ptrdiff_t m_nMinGPULevel = 0x2F0; // int32_t + constexpr std::ptrdiff_t m_flNoDrawTimeToGoToSleep = 0x2F4; // float + constexpr std::ptrdiff_t m_flMaxDrawDistance = 0x2F8; // float + constexpr std::ptrdiff_t m_flStartFadeDistance = 0x2FC; // float + constexpr std::ptrdiff_t m_flMaxCreationDistance = 0x300; // float + constexpr std::ptrdiff_t m_nAggregationMinAvailableParticles = 0x304; // int32_t + constexpr std::ptrdiff_t m_flAggregateRadius = 0x308; // float + constexpr std::ptrdiff_t m_bShouldBatch = 0x30C; // bool + constexpr std::ptrdiff_t m_bShouldHitboxesFallbackToRenderBounds = 0x30D; // bool + constexpr std::ptrdiff_t m_bShouldHitboxesFallbackToSnapshot = 0x30E; // bool + constexpr std::ptrdiff_t m_nViewModelEffect = 0x310; // InheritableBoolType_t + constexpr std::ptrdiff_t m_bScreenSpaceEffect = 0x314; // bool + constexpr std::ptrdiff_t m_pszTargetLayerID = 0x318; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nSkipRenderControlPoint = 0x320; // int32_t + constexpr std::ptrdiff_t m_nAllowRenderControlPoint = 0x324; // int32_t + constexpr std::ptrdiff_t m_bShouldSort = 0x328; // bool + constexpr std::ptrdiff_t m_controlPointConfigurations = 0x370; // CUtlVector +} + +namespace CParticleTransformInput { // CParticleInput + constexpr std::ptrdiff_t m_nType = 0x10; // ParticleTransformType_t + constexpr std::ptrdiff_t m_NamedValue = 0x18; // CParticleNamedValueRef + constexpr std::ptrdiff_t m_bFollowNamedValue = 0x58; // bool + constexpr std::ptrdiff_t m_bSupportsDisabled = 0x59; // bool + constexpr std::ptrdiff_t m_bUseOrientation = 0x5A; // bool + constexpr std::ptrdiff_t m_nControlPoint = 0x5C; // int32_t + constexpr std::ptrdiff_t m_nControlPointRangeMax = 0x60; // int32_t + constexpr std::ptrdiff_t m_flEndCPGrowthTime = 0x64; // float +} + +namespace CParticleVariableRef { + constexpr std::ptrdiff_t m_variableName = 0x0; // CKV3MemberNameWithStorage + constexpr std::ptrdiff_t m_variableType = 0x38; // PulseValueType_t +} + +namespace CParticleVecInput { // CParticleInput + constexpr std::ptrdiff_t m_nType = 0x10; // ParticleVecType_t + constexpr std::ptrdiff_t m_vLiteralValue = 0x14; // Vector + constexpr std::ptrdiff_t m_LiteralColor = 0x20; // Color + constexpr std::ptrdiff_t m_NamedValue = 0x28; // CParticleNamedValueRef + constexpr std::ptrdiff_t m_bFollowNamedValue = 0x68; // bool + constexpr std::ptrdiff_t m_nVectorAttribute = 0x6C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vVectorAttributeScale = 0x70; // Vector + constexpr std::ptrdiff_t m_nControlPoint = 0x7C; // int32_t + constexpr std::ptrdiff_t m_nDeltaControlPoint = 0x80; // int32_t + constexpr std::ptrdiff_t m_vCPValueScale = 0x84; // Vector + constexpr std::ptrdiff_t m_vCPRelativePosition = 0x90; // Vector + constexpr std::ptrdiff_t m_vCPRelativeDir = 0x9C; // Vector + constexpr std::ptrdiff_t m_FloatComponentX = 0xA8; // CParticleFloatInput + constexpr std::ptrdiff_t m_FloatComponentY = 0x200; // CParticleFloatInput + constexpr std::ptrdiff_t m_FloatComponentZ = 0x358; // CParticleFloatInput + constexpr std::ptrdiff_t m_FloatInterp = 0x4B0; // CParticleFloatInput + constexpr std::ptrdiff_t m_flInterpInput0 = 0x608; // float + constexpr std::ptrdiff_t m_flInterpInput1 = 0x60C; // float + constexpr std::ptrdiff_t m_vInterpOutput0 = 0x610; // Vector + constexpr std::ptrdiff_t m_vInterpOutput1 = 0x61C; // Vector + constexpr std::ptrdiff_t m_Gradient = 0x628; // CColorGradient + constexpr std::ptrdiff_t m_vRandomMin = 0x640; // Vector + constexpr std::ptrdiff_t m_vRandomMax = 0x64C; // Vector +} + +namespace CParticleVisibilityInputs { + constexpr std::ptrdiff_t m_flCameraBias = 0x0; // float + constexpr std::ptrdiff_t m_nCPin = 0x4; // int32_t + constexpr std::ptrdiff_t m_flProxyRadius = 0x8; // float + constexpr std::ptrdiff_t m_flInputMin = 0xC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x10; // float + constexpr std::ptrdiff_t m_flNoPixelVisibilityFallback = 0x14; // float + constexpr std::ptrdiff_t m_flDistanceInputMin = 0x18; // float + constexpr std::ptrdiff_t m_flDistanceInputMax = 0x1C; // float + constexpr std::ptrdiff_t m_flDotInputMin = 0x20; // float + constexpr std::ptrdiff_t m_flDotInputMax = 0x24; // float + constexpr std::ptrdiff_t m_bDotCPAngles = 0x28; // bool + constexpr std::ptrdiff_t m_bDotCameraAngles = 0x29; // bool + constexpr std::ptrdiff_t m_flAlphaScaleMin = 0x2C; // float + constexpr std::ptrdiff_t m_flAlphaScaleMax = 0x30; // float + constexpr std::ptrdiff_t m_flRadiusScaleMin = 0x34; // float + constexpr std::ptrdiff_t m_flRadiusScaleMax = 0x38; // float + constexpr std::ptrdiff_t m_flRadiusScaleFOVBase = 0x3C; // float + constexpr std::ptrdiff_t m_bRightEye = 0x40; // bool +} + +namespace CPathParameters { + constexpr std::ptrdiff_t m_nStartControlPointNumber = 0x0; // int32_t + constexpr std::ptrdiff_t m_nEndControlPointNumber = 0x4; // int32_t + constexpr std::ptrdiff_t m_nBulgeControl = 0x8; // int32_t + constexpr std::ptrdiff_t m_flBulge = 0xC; // float + constexpr std::ptrdiff_t m_flMidPoint = 0x10; // float + constexpr std::ptrdiff_t m_vStartPointOffset = 0x14; // Vector + constexpr std::ptrdiff_t m_vMidPointOffset = 0x20; // Vector + constexpr std::ptrdiff_t m_vEndOffset = 0x2C; // Vector +} + +namespace CPerParticleFloatInput { // CParticleFloatInput +} + +namespace CPerParticleVecInput { // CParticleVecInput +} + +namespace CRandomNumberGeneratorParameters { + constexpr std::ptrdiff_t m_bDistributeEvenly = 0x0; // bool + constexpr std::ptrdiff_t m_nSeed = 0x4; // int32_t +} + +namespace CSpinUpdateBase { // CParticleFunctionOperator +} + +namespace C_INIT_AddVectorToVector { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecScale = 0x1C0; // Vector + constexpr std::ptrdiff_t m_nFieldOutput = 0x1CC; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldInput = 0x1D0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vOffsetMin = 0x1D4; // Vector + constexpr std::ptrdiff_t m_vOffsetMax = 0x1E0; // Vector + constexpr std::ptrdiff_t m_randomnessParameters = 0x1EC; // CRandomNumberGeneratorParameters +} + +namespace C_INIT_AgeNoise { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_bAbsVal = 0x1C0; // bool + constexpr std::ptrdiff_t m_bAbsValInv = 0x1C1; // bool + constexpr std::ptrdiff_t m_flOffset = 0x1C4; // float + constexpr std::ptrdiff_t m_flAgeMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flAgeMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flNoiseScale = 0x1D0; // float + constexpr std::ptrdiff_t m_flNoiseScaleLoc = 0x1D4; // float + constexpr std::ptrdiff_t m_vecOffsetLoc = 0x1D8; // Vector +} + +namespace C_INIT_ChaoticAttractor { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flAParm = 0x1C0; // float + constexpr std::ptrdiff_t m_flBParm = 0x1C4; // float + constexpr std::ptrdiff_t m_flCParm = 0x1C8; // float + constexpr std::ptrdiff_t m_flDParm = 0x1CC; // float + constexpr std::ptrdiff_t m_flScale = 0x1D0; // float + constexpr std::ptrdiff_t m_flSpeedMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flSpeedMax = 0x1D8; // float + constexpr std::ptrdiff_t m_nBaseCP = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_bUniformSpeed = 0x1E0; // bool +} + +namespace C_INIT_ColorLitPerParticle { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_ColorMin = 0x1D8; // Color + constexpr std::ptrdiff_t m_ColorMax = 0x1DC; // Color + constexpr std::ptrdiff_t m_TintMin = 0x1E0; // Color + constexpr std::ptrdiff_t m_TintMax = 0x1E4; // Color + constexpr std::ptrdiff_t m_flTintPerc = 0x1E8; // float + constexpr std::ptrdiff_t m_nTintBlendMode = 0x1EC; // ParticleColorBlendMode_t + constexpr std::ptrdiff_t m_flLightAmplification = 0x1F0; // float +} + +namespace C_INIT_CreateAlongPath { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_fMaxDistance = 0x1C0; // float + constexpr std::ptrdiff_t m_PathParams = 0x1D0; // CPathParameters + constexpr std::ptrdiff_t m_bUseRandomCPs = 0x210; // bool + constexpr std::ptrdiff_t m_vEndOffset = 0x214; // Vector + constexpr std::ptrdiff_t m_bSaveOffset = 0x220; // bool +} + +namespace C_INIT_CreateFromCPs { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nIncrement = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nMinCP = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nMaxCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nDynamicCPCount = 0x1D0; // CParticleCollectionFloatInput +} + +namespace C_INIT_CreateFromParentParticles { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flVelocityScale = 0x1C0; // float + constexpr std::ptrdiff_t m_flIncrement = 0x1C4; // float + constexpr std::ptrdiff_t m_bRandomDistribution = 0x1C8; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_bSubFrame = 0x1D0; // bool +} + +namespace C_INIT_CreateFromPlaneCache { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecOffsetMin = 0x1C0; // Vector + constexpr std::ptrdiff_t m_vecOffsetMax = 0x1CC; // Vector + constexpr std::ptrdiff_t m_bUseNormal = 0x1D9; // bool +} + +namespace C_INIT_CreateInEpitrochoid { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nComponent1 = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nComponent2 = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_TransformInput = 0x1C8; // CParticleTransformInput + constexpr std::ptrdiff_t m_flParticleDensity = 0x230; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOffset = 0x388; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRadius1 = 0x4E0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRadius2 = 0x638; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bUseCount = 0x790; // bool + constexpr std::ptrdiff_t m_bUseLocalCoords = 0x791; // bool + constexpr std::ptrdiff_t m_bOffsetExistingPos = 0x792; // bool +} + +namespace C_INIT_CreateOnGrid { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nXCount = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nYCount = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nZCount = 0x470; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nXSpacing = 0x5C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nYSpacing = 0x720; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nZSpacing = 0x878; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nControlPointNumber = 0x9D0; // int32_t + constexpr std::ptrdiff_t m_bLocalSpace = 0x9D4; // bool + constexpr std::ptrdiff_t m_bCenter = 0x9D5; // bool + constexpr std::ptrdiff_t m_bHollow = 0x9D6; // bool +} + +namespace C_INIT_CreateOnModel { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_modelInput = 0x1C0; // CParticleModelInput + constexpr std::ptrdiff_t m_transformInput = 0x220; // CParticleTransformInput + constexpr std::ptrdiff_t m_nForceInModel = 0x288; // int32_t + constexpr std::ptrdiff_t m_nDesiredHitbox = 0x28C; // int32_t + constexpr std::ptrdiff_t m_nHitboxValueFromControlPointIndex = 0x290; // int32_t + constexpr std::ptrdiff_t m_vecHitBoxScale = 0x298; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_flBoneVelocity = 0x8F0; // float + constexpr std::ptrdiff_t m_flMaxBoneVelocity = 0x8F4; // float + constexpr std::ptrdiff_t m_vecDirectionBias = 0x8F8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_HitboxSetName = 0xF50; // char[128] + constexpr std::ptrdiff_t m_bLocalCoords = 0xFD0; // bool + constexpr std::ptrdiff_t m_bUseBones = 0xFD1; // bool + constexpr std::ptrdiff_t m_flShellSize = 0xFD8; // CParticleCollectionFloatInput +} + +namespace C_INIT_CreateOnModelAtHeight { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_bUseBones = 0x1C0; // bool + constexpr std::ptrdiff_t m_bForceZ = 0x1C1; // bool + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nHeightCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_bUseWaterHeight = 0x1CC; // bool + constexpr std::ptrdiff_t m_flDesiredHeight = 0x1D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_vecHitBoxScale = 0x328; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_vecDirectionBias = 0x980; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nBiasType = 0xFD8; // ParticleHitboxBiasType_t + constexpr std::ptrdiff_t m_bLocalCoords = 0xFDC; // bool + constexpr std::ptrdiff_t m_bPreferMovingBoxes = 0xFDD; // bool + constexpr std::ptrdiff_t m_HitboxSetName = 0xFDE; // char[128] + constexpr std::ptrdiff_t m_flHitboxVelocityScale = 0x1060; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flMaxBoneVelocity = 0x11B8; // CParticleCollectionFloatInput +} + +namespace C_INIT_CreateParticleImpulse { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_InputRadius = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_InputMagnitude = 0x318; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nFalloffFunction = 0x470; // ParticleFalloffFunction_t + constexpr std::ptrdiff_t m_InputFalloffExp = 0x478; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nImpulseType = 0x5D0; // ParticleImpulseType_t +} + +namespace C_INIT_CreatePhyllotaxis { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nScaleCP = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nComponent = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_fRadCentCore = 0x1CC; // float + constexpr std::ptrdiff_t m_fRadPerPoint = 0x1D0; // float + constexpr std::ptrdiff_t m_fRadPerPointTo = 0x1D4; // float + constexpr std::ptrdiff_t m_fpointAngle = 0x1D8; // float + constexpr std::ptrdiff_t m_fsizeOverall = 0x1DC; // float + constexpr std::ptrdiff_t m_fRadBias = 0x1E0; // float + constexpr std::ptrdiff_t m_fMinRad = 0x1E4; // float + constexpr std::ptrdiff_t m_fDistBias = 0x1E8; // float + constexpr std::ptrdiff_t m_bUseLocalCoords = 0x1EC; // bool + constexpr std::ptrdiff_t m_bUseWithContEmit = 0x1ED; // bool + constexpr std::ptrdiff_t m_bUseOrigRadius = 0x1EE; // bool +} + +namespace C_INIT_CreateSequentialPath { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_fMaxDistance = 0x1C0; // float + constexpr std::ptrdiff_t m_flNumToAssign = 0x1C4; // float + constexpr std::ptrdiff_t m_bLoop = 0x1C8; // bool + constexpr std::ptrdiff_t m_bCPPairs = 0x1C9; // bool + constexpr std::ptrdiff_t m_bSaveOffset = 0x1CA; // bool + constexpr std::ptrdiff_t m_PathParams = 0x1D0; // CPathParameters +} + +namespace C_INIT_CreateSequentialPathV2 { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_fMaxDistance = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flNumToAssign = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bLoop = 0x470; // bool + constexpr std::ptrdiff_t m_bCPPairs = 0x471; // bool + constexpr std::ptrdiff_t m_bSaveOffset = 0x472; // bool + constexpr std::ptrdiff_t m_PathParams = 0x480; // CPathParameters +} + +namespace C_INIT_CreateSpiralSphere { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nOverrideCP = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nDensity = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_flInitialRadius = 0x1CC; // float + constexpr std::ptrdiff_t m_flInitialSpeedMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flInitialSpeedMax = 0x1D4; // float + constexpr std::ptrdiff_t m_bUseParticleCount = 0x1D8; // bool +} + +namespace C_INIT_CreateWithinBox { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecMin = 0x1C0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecMax = 0x818; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nControlPointNumber = 0xE70; // int32_t + constexpr std::ptrdiff_t m_bLocalSpace = 0xE74; // bool + constexpr std::ptrdiff_t m_randomnessParameters = 0xE78; // CRandomNumberGeneratorParameters +} + +namespace C_INIT_CreateWithinSphereTransform { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_fRadiusMin = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_fRadiusMax = 0x318; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecDistanceBias = 0x470; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecDistanceBiasAbs = 0xAC8; // Vector + constexpr std::ptrdiff_t m_TransformInput = 0xAD8; // CParticleTransformInput + constexpr std::ptrdiff_t m_fSpeedMin = 0xB40; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_fSpeedMax = 0xC98; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_fSpeedRandExp = 0xDF0; // float + constexpr std::ptrdiff_t m_bLocalCoords = 0xDF4; // bool + constexpr std::ptrdiff_t m_flEndCPGrowthTime = 0xDF8; // float + constexpr std::ptrdiff_t m_LocalCoordinateSystemSpeedMin = 0xE00; // CPerParticleVecInput + constexpr std::ptrdiff_t m_LocalCoordinateSystemSpeedMax = 0x1458; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nFieldOutput = 0x1AB0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldVelocity = 0x1AB4; // ParticleAttributeIndex_t +} + +namespace C_INIT_CreationNoise { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bAbsVal = 0x1C4; // bool + constexpr std::ptrdiff_t m_bAbsValInv = 0x1C5; // bool + constexpr std::ptrdiff_t m_flOffset = 0x1C8; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_flNoiseScale = 0x1D4; // float + constexpr std::ptrdiff_t m_flNoiseScaleLoc = 0x1D8; // float + constexpr std::ptrdiff_t m_vecOffsetLoc = 0x1DC; // Vector + constexpr std::ptrdiff_t m_flWorldTimeScale = 0x1E8; // float +} + +namespace C_INIT_DistanceCull { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPoint = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flDistance = 0x1C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bCullInside = 0x320; // bool +} + +namespace C_INIT_DistanceToCPInit { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0x320; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x478; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x5D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nStartCP = 0x728; // int32_t + constexpr std::ptrdiff_t m_bLOS = 0x72C; // bool + constexpr std::ptrdiff_t m_CollisionGroupName = 0x72D; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x7B0; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x7B8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flLOSScale = 0x910; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x914; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x918; // bool + constexpr std::ptrdiff_t m_vecDistanceScale = 0x91C; // Vector + constexpr std::ptrdiff_t m_flRemapBias = 0x928; // float +} + +namespace C_INIT_DistanceToNeighborCull { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flDistance = 0x1C0; // CPerParticleFloatInput +} + +namespace C_INIT_GlobalScale { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nScaleControlPointNumber = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_bScaleRadius = 0x1CC; // bool + constexpr std::ptrdiff_t m_bScalePosition = 0x1CD; // bool + constexpr std::ptrdiff_t m_bScaleVelocity = 0x1CE; // bool +} + +namespace C_INIT_InheritFromParentParticles { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nIncrement = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_bRandomDistribution = 0x1CC; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0x1D0; // int32_t +} + +namespace C_INIT_InheritVelocity { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flVelocityScale = 0x1C4; // float +} + +namespace C_INIT_InitFloat { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0x318; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0x31C; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_InputStrength = 0x320; // CPerParticleFloatInput +} + +namespace C_INIT_InitFloatCollection { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0x318; // ParticleAttributeIndex_t +} + +namespace C_INIT_InitFromCPSnapshot { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nAttributeToRead = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nAttributeToWrite = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nLocalSpaceCP = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_bRandom = 0x1D0; // bool + constexpr std::ptrdiff_t m_bReverse = 0x1D1; // bool + constexpr std::ptrdiff_t m_nSnapShotIncrement = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nManualSnapshotIndex = 0x330; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nRandomSeed = 0x488; // int32_t + constexpr std::ptrdiff_t m_bLocalSpaceAngles = 0x48C; // bool +} + +namespace C_INIT_InitFromParentKilled { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nAttributeToCopy = 0x1C0; // ParticleAttributeIndex_t +} + +namespace C_INIT_InitFromVectorFieldSnapshot { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nLocalSpaceCP = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nWeightUpdateCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_bUseVerticalVelocity = 0x1CC; // bool + constexpr std::ptrdiff_t m_vecScale = 0x1D0; // CPerParticleVecInput +} + +namespace C_INIT_InitSkinnedPositionFromCPSnapshot { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nSnapshotControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_bRandom = 0x1C8; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_bRigid = 0x1D0; // bool + constexpr std::ptrdiff_t m_bSetNormal = 0x1D1; // bool + constexpr std::ptrdiff_t m_bIgnoreDt = 0x1D2; // bool + constexpr std::ptrdiff_t m_flMinNormalVelocity = 0x1D4; // float + constexpr std::ptrdiff_t m_flMaxNormalVelocity = 0x1D8; // float + constexpr std::ptrdiff_t m_flIncrement = 0x1DC; // float + constexpr std::ptrdiff_t m_nFullLoopIncrement = 0x1E0; // int32_t + constexpr std::ptrdiff_t m_nSnapShotStartPoint = 0x1E4; // int32_t + constexpr std::ptrdiff_t m_flBoneVelocity = 0x1E8; // float + constexpr std::ptrdiff_t m_flBoneVelocityMax = 0x1EC; // float + constexpr std::ptrdiff_t m_bCopyColor = 0x1F0; // bool + constexpr std::ptrdiff_t m_bCopyAlpha = 0x1F1; // bool + constexpr std::ptrdiff_t m_bSetRadius = 0x1F2; // bool +} + +namespace C_INIT_InitVec { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nOutputField = 0x818; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0x81C; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bNormalizedOutput = 0x820; // bool + constexpr std::ptrdiff_t m_bWritePreviousPosition = 0x821; // bool +} + +namespace C_INIT_InitVecCollection { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nOutputField = 0x818; // ParticleAttributeIndex_t +} + +namespace C_INIT_InitialRepulsionVelocity { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_CollisionGroupName = 0x1C0; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x240; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_vecOutputMin = 0x244; // Vector + constexpr std::ptrdiff_t m_vecOutputMax = 0x250; // Vector + constexpr std::ptrdiff_t m_nControlPointNumber = 0x25C; // int32_t + constexpr std::ptrdiff_t m_bPerParticle = 0x260; // bool + constexpr std::ptrdiff_t m_bTranslate = 0x261; // bool + constexpr std::ptrdiff_t m_bProportional = 0x262; // bool + constexpr std::ptrdiff_t m_flTraceLength = 0x264; // float + constexpr std::ptrdiff_t m_bPerParticleTR = 0x268; // bool + constexpr std::ptrdiff_t m_bInherit = 0x269; // bool + constexpr std::ptrdiff_t m_nChildCP = 0x26C; // int32_t + constexpr std::ptrdiff_t m_nChildGroupID = 0x270; // int32_t +} + +namespace C_INIT_InitialSequenceFromModel { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutputAnim = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1DC; // ParticleSetMethod_t +} + +namespace C_INIT_InitialVelocityFromHitbox { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flVelocityMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flVelocityMax = 0x1C4; // float + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_HitboxSetName = 0x1CC; // char[128] + constexpr std::ptrdiff_t m_bUseBones = 0x24C; // bool +} + +namespace C_INIT_InitialVelocityNoise { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecAbsVal = 0x1C0; // Vector + constexpr std::ptrdiff_t m_vecAbsValInv = 0x1CC; // Vector + constexpr std::ptrdiff_t m_vecOffsetLoc = 0x1D8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_flOffset = 0x830; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecOutputMin = 0x988; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecOutputMax = 0xFE0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_flNoiseScale = 0x1638; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flNoiseScaleLoc = 0x1790; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_TransformInput = 0x18E8; // CParticleTransformInput + constexpr std::ptrdiff_t m_bIgnoreDt = 0x1950; // bool +} + +namespace C_INIT_LifespanFromVelocity { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecComponentScale = 0x1C0; // Vector + constexpr std::ptrdiff_t m_flTraceOffset = 0x1CC; // float + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x1D0; // float + constexpr std::ptrdiff_t m_flTraceTolerance = 0x1D4; // float + constexpr std::ptrdiff_t m_nMaxPlanes = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_CollisionGroupName = 0x1E0; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x260; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_bIncludeWater = 0x270; // bool +} + +namespace C_INIT_ModelCull { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_bBoundBox = 0x1C4; // bool + constexpr std::ptrdiff_t m_bCullOutside = 0x1C5; // bool + constexpr std::ptrdiff_t m_bUseBones = 0x1C6; // bool + constexpr std::ptrdiff_t m_HitboxSetName = 0x1C7; // char[128] +} + +namespace C_INIT_MoveBetweenPoints { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flSpeedMin = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flSpeedMax = 0x318; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flEndSpread = 0x470; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flStartOffset = 0x5C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flEndOffset = 0x720; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nEndControlPointNumber = 0x878; // int32_t + constexpr std::ptrdiff_t m_bTrailBias = 0x87C; // bool +} + +namespace C_INIT_NormalAlignToCP { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_transformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_nControlPointAxis = 0x228; // ParticleControlPointAxis_t +} + +namespace C_INIT_NormalOffset { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_OffsetMin = 0x1C0; // Vector + constexpr std::ptrdiff_t m_OffsetMax = 0x1CC; // Vector + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_bLocalCoords = 0x1DC; // bool + constexpr std::ptrdiff_t m_bNormalize = 0x1DD; // bool +} + +namespace C_INIT_OffsetVectorToVector { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecOutputMin = 0x1C8; // Vector + constexpr std::ptrdiff_t m_vecOutputMax = 0x1D4; // Vector + constexpr std::ptrdiff_t m_randomnessParameters = 0x1E0; // CRandomNumberGeneratorParameters +} + +namespace C_INIT_Orient2DRelToCP { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nCP = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flRotOffset = 0x1C8; // float +} + +namespace C_INIT_PlaneCull { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPoint = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flDistance = 0x1C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bCullInside = 0x320; // bool +} + +namespace C_INIT_PointList { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_pointList = 0x1C8; // CUtlVector + constexpr std::ptrdiff_t m_bPlaceAlongPath = 0x1E0; // bool + constexpr std::ptrdiff_t m_bClosedLoop = 0x1E1; // bool + constexpr std::ptrdiff_t m_nNumPointsAlongPath = 0x1E4; // int32_t +} + +namespace C_INIT_PositionOffset { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_OffsetMin = 0x1C0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_OffsetMax = 0x818; // CPerParticleVecInput + constexpr std::ptrdiff_t m_TransformInput = 0xE70; // CParticleTransformInput + constexpr std::ptrdiff_t m_bLocalCoords = 0xED8; // bool + constexpr std::ptrdiff_t m_bProportional = 0xED9; // bool + constexpr std::ptrdiff_t m_randomnessParameters = 0xEDC; // CRandomNumberGeneratorParameters +} + +namespace C_INIT_PositionOffsetToCP { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumberStart = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nControlPointNumberEnd = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_bLocalCoords = 0x1C8; // bool +} + +namespace C_INIT_PositionPlaceOnGround { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flOffset = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x318; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_CollisionGroupName = 0x470; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x4F0; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_nTraceMissBehavior = 0x500; // ParticleTraceMissBehavior_t + constexpr std::ptrdiff_t m_bIncludeWater = 0x504; // bool + constexpr std::ptrdiff_t m_bSetNormal = 0x505; // bool + constexpr std::ptrdiff_t m_bSetPXYZOnly = 0x506; // bool + constexpr std::ptrdiff_t m_bTraceAlongNormal = 0x507; // bool + constexpr std::ptrdiff_t m_bOffsetonColOnly = 0x508; // bool + constexpr std::ptrdiff_t m_flOffsetByRadiusFactor = 0x50C; // float + constexpr std::ptrdiff_t m_nPreserveOffsetCP = 0x510; // int32_t + constexpr std::ptrdiff_t m_nIgnoreCP = 0x514; // int32_t +} + +namespace C_INIT_PositionWarp { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecWarpMin = 0x1C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_vecWarpMax = 0x818; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nScaleControlPointNumber = 0xE70; // int32_t + constexpr std::ptrdiff_t m_nControlPointNumber = 0xE74; // int32_t + constexpr std::ptrdiff_t m_nRadiusComponent = 0xE78; // int32_t + constexpr std::ptrdiff_t m_flWarpTime = 0xE7C; // float + constexpr std::ptrdiff_t m_flWarpStartTime = 0xE80; // float + constexpr std::ptrdiff_t m_flPrevPosScale = 0xE84; // float + constexpr std::ptrdiff_t m_bInvertWarp = 0xE88; // bool + constexpr std::ptrdiff_t m_bUseCount = 0xE89; // bool +} + +namespace C_INIT_PositionWarpScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecWarpMin = 0x1C0; // Vector + constexpr std::ptrdiff_t m_vecWarpMax = 0x1CC; // Vector + constexpr std::ptrdiff_t m_InputValue = 0x1D8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flPrevPosScale = 0x330; // float + constexpr std::ptrdiff_t m_nScaleControlPointNumber = 0x334; // int32_t + constexpr std::ptrdiff_t m_nControlPointNumber = 0x338; // int32_t +} + +namespace C_INIT_QuantizeFloat { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0x318; // ParticleAttributeIndex_t +} + +namespace C_INIT_RadiusFromCPObject { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPoint = 0x1C0; // int32_t +} + +namespace C_INIT_RandomAlpha { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nAlphaMin = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nAlphaMax = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_flAlphaRandExponent = 0x1D4; // float +} + +namespace C_INIT_RandomAlphaWindowThreshold { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flExponent = 0x1C8; // float +} + +namespace C_INIT_RandomColor { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_ColorMin = 0x1DC; // Color + constexpr std::ptrdiff_t m_ColorMax = 0x1E0; // Color + constexpr std::ptrdiff_t m_TintMin = 0x1E4; // Color + constexpr std::ptrdiff_t m_TintMax = 0x1E8; // Color + constexpr std::ptrdiff_t m_flTintPerc = 0x1EC; // float + constexpr std::ptrdiff_t m_flUpdateThreshold = 0x1F0; // float + constexpr std::ptrdiff_t m_nTintCP = 0x1F4; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1F8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nTintBlendMode = 0x1FC; // ParticleColorBlendMode_t + constexpr std::ptrdiff_t m_flLightAmplification = 0x200; // float +} + +namespace C_INIT_RandomLifeTime { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_fLifetimeMin = 0x1C0; // float + constexpr std::ptrdiff_t m_fLifetimeMax = 0x1C4; // float + constexpr std::ptrdiff_t m_fLifetimeRandExponent = 0x1C8; // float +} + +namespace C_INIT_RandomModelSequence { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_ActivityName = 0x1C0; // char[256] + constexpr std::ptrdiff_t m_SequenceName = 0x2C0; // char[256] + constexpr std::ptrdiff_t m_hModel = 0x3C0; // CStrongHandle +} + +namespace C_INIT_RandomNamedModelBodyPart { // C_INIT_RandomNamedModelElement +} + +namespace C_INIT_RandomNamedModelElement { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_hModel = 0x1C0; // CStrongHandle + constexpr std::ptrdiff_t m_names = 0x1C8; // CUtlVector + constexpr std::ptrdiff_t m_bShuffle = 0x1E0; // bool + constexpr std::ptrdiff_t m_bLinear = 0x1E1; // bool + constexpr std::ptrdiff_t m_bModelFromRenderer = 0x1E2; // bool + constexpr std::ptrdiff_t m_nFieldOutput = 0x1E4; // ParticleAttributeIndex_t +} + +namespace C_INIT_RandomNamedModelMeshGroup { // C_INIT_RandomNamedModelElement +} + +namespace C_INIT_RandomNamedModelSequence { // C_INIT_RandomNamedModelElement +} + +namespace C_INIT_RandomRadius { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flRadiusMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flRadiusMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flRadiusRandExponent = 0x1C8; // float +} + +namespace C_INIT_RandomRotation { // CGeneralRandomRotation +} + +namespace C_INIT_RandomRotationSpeed { // CGeneralRandomRotation +} + +namespace C_INIT_RandomScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flExponent = 0x1C8; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1CC; // ParticleAttributeIndex_t +} + +namespace C_INIT_RandomSecondSequence { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nSequenceMin = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nSequenceMax = 0x1C4; // int32_t +} + +namespace C_INIT_RandomSequence { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nSequenceMin = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nSequenceMax = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_bShuffle = 0x1C8; // bool + constexpr std::ptrdiff_t m_bLinear = 0x1C9; // bool + constexpr std::ptrdiff_t m_WeightedList = 0x1D0; // CUtlVector +} + +namespace C_INIT_RandomTrailLength { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flMinLength = 0x1C0; // float + constexpr std::ptrdiff_t m_flMaxLength = 0x1C4; // float + constexpr std::ptrdiff_t m_flLengthRandExponent = 0x1C8; // float +} + +namespace C_INIT_RandomVector { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecMin = 0x1C0; // Vector + constexpr std::ptrdiff_t m_vecMax = 0x1CC; // Vector + constexpr std::ptrdiff_t m_nFieldOutput = 0x1D8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_randomnessParameters = 0x1DC; // CRandomNumberGeneratorParameters +} + +namespace C_INIT_RandomVectorComponent { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flMax = 0x1C4; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nComponent = 0x1CC; // int32_t +} + +namespace C_INIT_RandomYaw { // CGeneralRandomRotation +} + +namespace C_INIT_RandomYawFlip { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flPercent = 0x1C0; // float +} + +namespace C_INIT_RemapCPtoScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nCPInput = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nField = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_flStartTime = 0x1DC; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1E0; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1E4; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_flRemapBias = 0x1E8; // float +} + +namespace C_INIT_RemapInitialDirectionToTransformToVector { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_nFieldOutput = 0x228; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0x22C; // float + constexpr std::ptrdiff_t m_flOffsetRot = 0x230; // float + constexpr std::ptrdiff_t m_vecOffsetAxis = 0x234; // Vector + constexpr std::ptrdiff_t m_bNormalize = 0x240; // bool +} + +namespace C_INIT_RemapInitialTransformDirectionToRotation { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_nFieldOutput = 0x228; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOffsetRot = 0x22C; // float + constexpr std::ptrdiff_t m_nComponent = 0x230; // int32_t +} + +namespace C_INIT_RemapInitialVisibilityScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D4; // float +} + +namespace C_INIT_RemapNamedModelBodyPartToScalar { // C_INIT_RemapNamedModelElementToScalar +} + +namespace C_INIT_RemapNamedModelElementToScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_hModel = 0x1C0; // CStrongHandle + constexpr std::ptrdiff_t m_names = 0x1C8; // CUtlVector + constexpr std::ptrdiff_t m_values = 0x1E0; // CUtlVector + constexpr std::ptrdiff_t m_nFieldInput = 0x1F8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1FC; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0x200; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bModelFromRenderer = 0x204; // bool +} + +namespace C_INIT_RemapNamedModelMeshGroupToScalar { // C_INIT_RemapNamedModelElementToScalar +} + +namespace C_INIT_RemapNamedModelSequenceToScalar { // C_INIT_RemapNamedModelElementToScalar +} + +namespace C_INIT_RemapParticleCountToNamedModelBodyPartScalar { // C_INIT_RemapParticleCountToNamedModelElementScalar +} + +namespace C_INIT_RemapParticleCountToNamedModelElementScalar { // C_INIT_RemapParticleCountToScalar + constexpr std::ptrdiff_t m_hModel = 0x1F0; // CStrongHandle + constexpr std::ptrdiff_t m_outputMinName = 0x1F8; // CUtlString + constexpr std::ptrdiff_t m_outputMaxName = 0x200; // CUtlString + constexpr std::ptrdiff_t m_bModelFromRenderer = 0x208; // bool +} + +namespace C_INIT_RemapParticleCountToNamedModelMeshGroupScalar { // C_INIT_RemapParticleCountToNamedModelElementScalar +} + +namespace C_INIT_RemapParticleCountToNamedModelSequenceScalar { // C_INIT_RemapParticleCountToNamedModelElementScalar +} + +namespace C_INIT_RemapParticleCountToScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nInputMin = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nInputMax = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nScaleControlPoint = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_nScaleControlPointField = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_flOutputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1DC; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x1E0; // bool + constexpr std::ptrdiff_t m_bInvert = 0x1E1; // bool + constexpr std::ptrdiff_t m_bWrap = 0x1E2; // bool + constexpr std::ptrdiff_t m_flRemapBias = 0x1E4; // float +} + +namespace C_INIT_RemapQAnglesToRotation { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput +} + +namespace C_INIT_RemapScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D4; // float + constexpr std::ptrdiff_t m_flStartTime = 0x1D8; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1DC; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1E0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x1E4; // bool + constexpr std::ptrdiff_t m_flRemapBias = 0x1E8; // float +} + +namespace C_INIT_RemapScalarToVector { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1CC; // float + constexpr std::ptrdiff_t m_vecOutputMin = 0x1D0; // Vector + constexpr std::ptrdiff_t m_vecOutputMax = 0x1DC; // Vector + constexpr std::ptrdiff_t m_flStartTime = 0x1E8; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1EC; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1F0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1F4; // int32_t + constexpr std::ptrdiff_t m_bLocalCoords = 0x1F8; // bool + constexpr std::ptrdiff_t m_flRemapBias = 0x1FC; // float +} + +namespace C_INIT_RemapSpeedToScalar { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_flStartTime = 0x1C8; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1CC; // float + constexpr std::ptrdiff_t m_flInputMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D8; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1DC; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1E0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bPerParticle = 0x1E4; // bool +} + +namespace C_INIT_RemapTransformOrientationToRotations { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_vecRotation = 0x228; // Vector + constexpr std::ptrdiff_t m_bUseQuat = 0x234; // bool + constexpr std::ptrdiff_t m_bWriteNormal = 0x235; // bool +} + +namespace C_INIT_RemapTransformToVector { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vInputMin = 0x1C4; // Vector + constexpr std::ptrdiff_t m_vInputMax = 0x1D0; // Vector + constexpr std::ptrdiff_t m_vOutputMin = 0x1DC; // Vector + constexpr std::ptrdiff_t m_vOutputMax = 0x1E8; // Vector + constexpr std::ptrdiff_t m_TransformInput = 0x1F8; // CParticleTransformInput + constexpr std::ptrdiff_t m_LocalSpaceTransform = 0x260; // CParticleTransformInput + constexpr std::ptrdiff_t m_flStartTime = 0x2C8; // float + constexpr std::ptrdiff_t m_flEndTime = 0x2CC; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x2D0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bOffset = 0x2D4; // bool + constexpr std::ptrdiff_t m_bAccelerate = 0x2D5; // bool + constexpr std::ptrdiff_t m_flRemapBias = 0x2D8; // float +} + +namespace C_INIT_RingWave { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_flParticlesPerOrbit = 0x228; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInitialRadius = 0x380; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flThickness = 0x4D8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInitialSpeedMin = 0x630; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInitialSpeedMax = 0x788; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRoll = 0x8E0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flPitch = 0xA38; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flYaw = 0xB90; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bEvenDistribution = 0xCE8; // bool + constexpr std::ptrdiff_t m_bXYVelocityOnly = 0xCE9; // bool +} + +namespace C_INIT_RtEnvCull { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecTestDir = 0x1C0; // Vector + constexpr std::ptrdiff_t m_vecTestNormal = 0x1CC; // Vector + constexpr std::ptrdiff_t m_bUseVelocity = 0x1D8; // bool + constexpr std::ptrdiff_t m_bCullOnMiss = 0x1D9; // bool + constexpr std::ptrdiff_t m_bLifeAdjust = 0x1DA; // bool + constexpr std::ptrdiff_t m_RtEnvName = 0x1DB; // char[128] + constexpr std::ptrdiff_t m_nRTEnvCP = 0x25C; // int32_t + constexpr std::ptrdiff_t m_nComponent = 0x260; // int32_t +} + +namespace C_INIT_ScaleVelocity { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_vecScale = 0x1C0; // CParticleCollectionVecInput +} + +namespace C_INIT_SequenceFromCP { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_bKillUnused = 0x1C0; // bool + constexpr std::ptrdiff_t m_bRadiusScale = 0x1C1; // bool + constexpr std::ptrdiff_t m_nCP = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_vecOffset = 0x1C8; // Vector +} + +namespace C_INIT_SequenceLifeTime { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flFramerate = 0x1C0; // float +} + +namespace C_INIT_SetHitboxToClosest { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nDesiredHitbox = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_vecHitBoxScale = 0x1C8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_HitboxSetName = 0x820; // char[128] + constexpr std::ptrdiff_t m_bUseBones = 0x8A0; // bool + constexpr std::ptrdiff_t m_bUseClosestPointOnHitbox = 0x8A1; // bool + constexpr std::ptrdiff_t m_nTestType = 0x8A4; // ClosestPointTestType_t + constexpr std::ptrdiff_t m_flHybridRatio = 0x8A8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bUpdatePosition = 0xA00; // bool +} + +namespace C_INIT_SetHitboxToModel { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nForceInModel = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nDesiredHitbox = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_vecHitBoxScale = 0x1D0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_vecDirectionBias = 0x828; // Vector + constexpr std::ptrdiff_t m_bMaintainHitbox = 0x834; // bool + constexpr std::ptrdiff_t m_bUseBones = 0x835; // bool + constexpr std::ptrdiff_t m_HitboxSetName = 0x836; // char[128] + constexpr std::ptrdiff_t m_flShellSize = 0x8B8; // CParticleCollectionFloatInput +} + +namespace C_INIT_SetRigidAttachment { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldInput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bLocalSpace = 0x1CC; // bool +} + +namespace C_INIT_SetVectorAttributeToVectorExpression { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nExpression = 0x1C0; // VectorExpressionType_t + constexpr std::ptrdiff_t m_vInput1 = 0x1C8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vInput2 = 0x820; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nOutputField = 0xE78; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0xE7C; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bNormalizedOutput = 0xE80; // bool +} + +namespace C_INIT_StatusEffect { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nDetail2Combo = 0x1C0; // Detail2Combo_t + constexpr std::ptrdiff_t m_flDetail2Rotation = 0x1C4; // float + constexpr std::ptrdiff_t m_flDetail2Scale = 0x1C8; // float + constexpr std::ptrdiff_t m_flDetail2BlendFactor = 0x1CC; // float + constexpr std::ptrdiff_t m_flColorWarpIntensity = 0x1D0; // float + constexpr std::ptrdiff_t m_flDiffuseWarpBlendToFull = 0x1D4; // float + constexpr std::ptrdiff_t m_flEnvMapIntensity = 0x1D8; // float + constexpr std::ptrdiff_t m_flAmbientScale = 0x1DC; // float + constexpr std::ptrdiff_t m_specularColor = 0x1E0; // Color + constexpr std::ptrdiff_t m_flSpecularScale = 0x1E4; // float + constexpr std::ptrdiff_t m_flSpecularExponent = 0x1E8; // float + constexpr std::ptrdiff_t m_flSpecularExponentBlendToFull = 0x1EC; // float + constexpr std::ptrdiff_t m_flSpecularBlendToFull = 0x1F0; // float + constexpr std::ptrdiff_t m_rimLightColor = 0x1F4; // Color + constexpr std::ptrdiff_t m_flRimLightScale = 0x1F8; // float + constexpr std::ptrdiff_t m_flReflectionsTintByBaseBlendToNone = 0x1FC; // float + constexpr std::ptrdiff_t m_flMetalnessBlendToFull = 0x200; // float + constexpr std::ptrdiff_t m_flSelfIllumBlendToFull = 0x204; // float +} + +namespace C_INIT_StatusEffectCitadel { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_flSFXColorWarpAmount = 0x1C0; // float + constexpr std::ptrdiff_t m_flSFXNormalAmount = 0x1C4; // float + constexpr std::ptrdiff_t m_flSFXMetalnessAmount = 0x1C8; // float + constexpr std::ptrdiff_t m_flSFXRoughnessAmount = 0x1CC; // float + constexpr std::ptrdiff_t m_flSFXSelfIllumAmount = 0x1D0; // float + constexpr std::ptrdiff_t m_flSFXSScale = 0x1D4; // float + constexpr std::ptrdiff_t m_flSFXSScrollX = 0x1D8; // float + constexpr std::ptrdiff_t m_flSFXSScrollY = 0x1DC; // float + constexpr std::ptrdiff_t m_flSFXSScrollZ = 0x1E0; // float + constexpr std::ptrdiff_t m_flSFXSOffsetX = 0x1E4; // float + constexpr std::ptrdiff_t m_flSFXSOffsetY = 0x1E8; // float + constexpr std::ptrdiff_t m_flSFXSOffsetZ = 0x1EC; // float + constexpr std::ptrdiff_t m_nDetailCombo = 0x1F0; // DetailCombo_t + constexpr std::ptrdiff_t m_flSFXSDetailAmount = 0x1F4; // float + constexpr std::ptrdiff_t m_flSFXSDetailScale = 0x1F8; // float + constexpr std::ptrdiff_t m_flSFXSDetailScrollX = 0x1FC; // float + constexpr std::ptrdiff_t m_flSFXSDetailScrollY = 0x200; // float + constexpr std::ptrdiff_t m_flSFXSDetailScrollZ = 0x204; // float + constexpr std::ptrdiff_t m_flSFXSUseModelUVs = 0x208; // float +} + +namespace C_INIT_VelocityFromCP { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_velocityInput = 0x1C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_transformInput = 0x818; // CParticleTransformInput + constexpr std::ptrdiff_t m_flVelocityScale = 0x880; // float + constexpr std::ptrdiff_t m_bDirectionOnly = 0x884; // bool +} + +namespace C_INIT_VelocityFromNormal { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_fSpeedMin = 0x1C0; // float + constexpr std::ptrdiff_t m_fSpeedMax = 0x1C4; // float + constexpr std::ptrdiff_t m_bIgnoreDt = 0x1C8; // bool +} + +namespace C_INIT_VelocityRadialRandom { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_fSpeedMin = 0x1C4; // float + constexpr std::ptrdiff_t m_fSpeedMax = 0x1C8; // float + constexpr std::ptrdiff_t m_vecLocalCoordinateSystemSpeedScale = 0x1CC; // Vector + constexpr std::ptrdiff_t m_bIgnoreDelta = 0x1D9; // bool +} + +namespace C_INIT_VelocityRandom { // CParticleFunctionInitializer + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_fSpeedMin = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_fSpeedMax = 0x320; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_LocalCoordinateSystemSpeedMin = 0x478; // CPerParticleVecInput + constexpr std::ptrdiff_t m_LocalCoordinateSystemSpeedMax = 0xAD0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_bIgnoreDT = 0x1128; // bool + constexpr std::ptrdiff_t m_randomnessParameters = 0x112C; // CRandomNumberGeneratorParameters +} + +namespace C_OP_AlphaDecay { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flMinAlpha = 0x1C0; // float +} + +namespace C_OP_AttractToControlPoint { // CParticleFunctionForce + constexpr std::ptrdiff_t m_vecComponentScale = 0x1D0; // Vector + constexpr std::ptrdiff_t m_fForceAmount = 0x1E0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_fFalloffPower = 0x338; // float + constexpr std::ptrdiff_t m_TransformInput = 0x340; // CParticleTransformInput + constexpr std::ptrdiff_t m_fForceAmountMin = 0x3A8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bApplyMinForce = 0x500; // bool +} + +namespace C_OP_BasicMovement { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_Gravity = 0x1C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_fDrag = 0x818; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nMaxConstraintPasses = 0x970; // int32_t +} + +namespace C_OP_BoxConstraint { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_vecMin = 0x1C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_vecMax = 0x818; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nCP = 0xE70; // int32_t + constexpr std::ptrdiff_t m_bLocalSpace = 0xE74; // bool + constexpr std::ptrdiff_t m_bAccountForRadius = 0xE75; // bool +} + +namespace C_OP_CPOffsetToPercentageBetweenCPs { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flInputMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flInputBias = 0x1C8; // float + constexpr std::ptrdiff_t m_nStartCP = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_nEndCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nOffsetCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nOuputCP = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nInputCP = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_bRadialCheck = 0x1E0; // bool + constexpr std::ptrdiff_t m_bScaleOffset = 0x1E1; // bool + constexpr std::ptrdiff_t m_vecOffset = 0x1E4; // Vector +} + +namespace C_OP_CPVelocityForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_flScale = 0x1D8; // CPerParticleFloatInput +} + +namespace C_OP_CalculateVectorAttribute { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_vStartValue = 0x1C0; // Vector + constexpr std::ptrdiff_t m_nFieldInput1 = 0x1CC; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputScale1 = 0x1D0; // float + constexpr std::ptrdiff_t m_nFieldInput2 = 0x1D4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputScale2 = 0x1D8; // float + constexpr std::ptrdiff_t m_nControlPointInput1 = 0x1DC; // ControlPointReference_t + constexpr std::ptrdiff_t m_flControlPointScale1 = 0x1F0; // float + constexpr std::ptrdiff_t m_nControlPointInput2 = 0x1F4; // ControlPointReference_t + constexpr std::ptrdiff_t m_flControlPointScale2 = 0x208; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x20C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vFinalOutputScale = 0x210; // Vector +} + +namespace C_OP_Callback { // CParticleFunctionRenderer +} + +namespace C_OP_ChladniWave { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0x320; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x478; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x5D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecWaveLength = 0x728; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecHarmonics = 0xD80; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nSetMethod = 0x13D8; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_nLocalSpaceControlPoint = 0x13DC; // int32_t + constexpr std::ptrdiff_t m_b3D = 0x13E0; // bool +} + +namespace C_OP_ChooseRandomChildrenInGroup { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nChildGroupID = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_flNumberOfChildren = 0x1D8; // CParticleCollectionFloatInput +} + +namespace C_OP_ClampScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOutputMin = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x320; // CPerParticleFloatInput +} + +namespace C_OP_ClampVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecOutputMin = 0x1C8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecOutputMax = 0x820; // CPerParticleVecInput +} + +namespace C_OP_CollideWithParentParticles { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_flParentRadiusScale = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRadiusScale = 0x318; // CPerParticleFloatInput +} + +namespace C_OP_CollideWithSelf { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_flRadiusScale = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flMinimumSpeed = 0x318; // CPerParticleFloatInput +} + +namespace C_OP_ColorAdjustHSL { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flHueAdjust = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flSaturationAdjust = 0x318; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flLightnessAdjust = 0x470; // CPerParticleFloatInput +} + +namespace C_OP_ColorInterpolate { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_ColorFade = 0x1C0; // Color + constexpr std::ptrdiff_t m_flFadeStartTime = 0x1D0; // float + constexpr std::ptrdiff_t m_flFadeEndTime = 0x1D4; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1D8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bEaseInOut = 0x1DC; // bool + constexpr std::ptrdiff_t m_bUseNewCode = 0x1DD; // bool +} + +namespace C_OP_ColorInterpolateRandom { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_ColorFadeMin = 0x1C0; // Color + constexpr std::ptrdiff_t m_ColorFadeMax = 0x1DC; // Color + constexpr std::ptrdiff_t m_flFadeStartTime = 0x1EC; // float + constexpr std::ptrdiff_t m_flFadeEndTime = 0x1F0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1F4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bEaseInOut = 0x1F8; // bool +} + +namespace C_OP_ConnectParentParticleToNearest { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFirstControlPoint = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nSecondControlPoint = 0x1C4; // int32_t +} + +namespace C_OP_ConstrainDistance { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_fMinDistance = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_fMaxDistance = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nControlPointNumber = 0x470; // int32_t + constexpr std::ptrdiff_t m_CenterOffset = 0x474; // Vector + constexpr std::ptrdiff_t m_bGlobalCenter = 0x480; // bool +} + +namespace C_OP_ConstrainDistanceToPath { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_fMinDistance = 0x1C0; // float + constexpr std::ptrdiff_t m_flMaxDistance0 = 0x1C4; // float + constexpr std::ptrdiff_t m_flMaxDistanceMid = 0x1C8; // float + constexpr std::ptrdiff_t m_flMaxDistance1 = 0x1CC; // float + constexpr std::ptrdiff_t m_PathParameters = 0x1D0; // CPathParameters + constexpr std::ptrdiff_t m_flTravelTime = 0x210; // float + constexpr std::ptrdiff_t m_nFieldScale = 0x214; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nManualTField = 0x218; // ParticleAttributeIndex_t +} + +namespace C_OP_ConstrainDistanceToUserSpecifiedPath { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_fMinDistance = 0x1C0; // float + constexpr std::ptrdiff_t m_flMaxDistance = 0x1C4; // float + constexpr std::ptrdiff_t m_flTimeScale = 0x1C8; // float + constexpr std::ptrdiff_t m_bLoopedPath = 0x1CC; // bool + constexpr std::ptrdiff_t m_pointList = 0x1D0; // CUtlVector +} + +namespace C_OP_ConstrainLineLength { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_flMinDistance = 0x1C0; // float + constexpr std::ptrdiff_t m_flMaxDistance = 0x1C4; // float +} + +namespace C_OP_ContinuousEmitter { // CParticleFunctionEmitter + constexpr std::ptrdiff_t m_flEmissionDuration = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flStartTime = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flEmitRate = 0x470; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flEmissionScale = 0x5C8; // float + constexpr std::ptrdiff_t m_flScalePerParentParticle = 0x5CC; // float + constexpr std::ptrdiff_t m_bInitFromKilledParentParticles = 0x5D0; // bool + constexpr std::ptrdiff_t m_nSnapshotControlPoint = 0x5D4; // int32_t + constexpr std::ptrdiff_t m_nLimitPerUpdate = 0x5D8; // int32_t + constexpr std::ptrdiff_t m_bForceEmitOnFirstUpdate = 0x5DC; // bool + constexpr std::ptrdiff_t m_bForceEmitOnLastUpdate = 0x5DD; // bool +} + +namespace C_OP_ControlPointToRadialScreenSpace { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCPIn = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_vecCP1Pos = 0x1D4; // Vector + constexpr std::ptrdiff_t m_nCPOut = 0x1E0; // int32_t + constexpr std::ptrdiff_t m_nCPOutField = 0x1E4; // int32_t + constexpr std::ptrdiff_t m_nCPSSPosOut = 0x1E8; // int32_t +} + +namespace C_OP_ControlpointLight { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nControlPoint1 = 0x650; // int32_t + constexpr std::ptrdiff_t m_nControlPoint2 = 0x654; // int32_t + constexpr std::ptrdiff_t m_nControlPoint3 = 0x658; // int32_t + constexpr std::ptrdiff_t m_nControlPoint4 = 0x65C; // int32_t + constexpr std::ptrdiff_t m_vecCPOffset1 = 0x660; // Vector + constexpr std::ptrdiff_t m_vecCPOffset2 = 0x66C; // Vector + constexpr std::ptrdiff_t m_vecCPOffset3 = 0x678; // Vector + constexpr std::ptrdiff_t m_vecCPOffset4 = 0x684; // Vector + constexpr std::ptrdiff_t m_LightFiftyDist1 = 0x690; // float + constexpr std::ptrdiff_t m_LightZeroDist1 = 0x694; // float + constexpr std::ptrdiff_t m_LightFiftyDist2 = 0x698; // float + constexpr std::ptrdiff_t m_LightZeroDist2 = 0x69C; // float + constexpr std::ptrdiff_t m_LightFiftyDist3 = 0x6A0; // float + constexpr std::ptrdiff_t m_LightZeroDist3 = 0x6A4; // float + constexpr std::ptrdiff_t m_LightFiftyDist4 = 0x6A8; // float + constexpr std::ptrdiff_t m_LightZeroDist4 = 0x6AC; // float + constexpr std::ptrdiff_t m_LightColor1 = 0x6B0; // Color + constexpr std::ptrdiff_t m_LightColor2 = 0x6B4; // Color + constexpr std::ptrdiff_t m_LightColor3 = 0x6B8; // Color + constexpr std::ptrdiff_t m_LightColor4 = 0x6BC; // Color + constexpr std::ptrdiff_t m_bLightType1 = 0x6C0; // bool + constexpr std::ptrdiff_t m_bLightType2 = 0x6C1; // bool + constexpr std::ptrdiff_t m_bLightType3 = 0x6C2; // bool + constexpr std::ptrdiff_t m_bLightType4 = 0x6C3; // bool + constexpr std::ptrdiff_t m_bLightDynamic1 = 0x6C4; // bool + constexpr std::ptrdiff_t m_bLightDynamic2 = 0x6C5; // bool + constexpr std::ptrdiff_t m_bLightDynamic3 = 0x6C6; // bool + constexpr std::ptrdiff_t m_bLightDynamic4 = 0x6C7; // bool + constexpr std::ptrdiff_t m_bUseNormal = 0x6C8; // bool + constexpr std::ptrdiff_t m_bUseHLambert = 0x6C9; // bool + constexpr std::ptrdiff_t m_bClampLowerRange = 0x6CE; // bool + constexpr std::ptrdiff_t m_bClampUpperRange = 0x6CF; // bool +} + +namespace C_OP_Cull { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flCullPerc = 0x1C0; // float + constexpr std::ptrdiff_t m_flCullStart = 0x1C4; // float + constexpr std::ptrdiff_t m_flCullEnd = 0x1C8; // float + constexpr std::ptrdiff_t m_flCullExp = 0x1CC; // float +} + +namespace C_OP_CurlNoiseForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_nNoiseType = 0x1D0; // ParticleDirectionNoiseType_t + constexpr std::ptrdiff_t m_vecNoiseFreq = 0x1D8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecNoiseScale = 0x830; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecOffset = 0xE88; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecOffsetRate = 0x14E0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_flWorleySeed = 0x1B38; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flWorleyJitter = 0x1C90; // CPerParticleFloatInput +} + +namespace C_OP_CycleScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nDestField = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flStartValue = 0x1C4; // float + constexpr std::ptrdiff_t m_flEndValue = 0x1C8; // float + constexpr std::ptrdiff_t m_flCycleTime = 0x1CC; // float + constexpr std::ptrdiff_t m_bDoNotRepeatCycle = 0x1D0; // bool + constexpr std::ptrdiff_t m_bSynchronizeParticles = 0x1D1; // bool + constexpr std::ptrdiff_t m_nCPScale = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nCPFieldMin = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nCPFieldMax = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_nSetMethod = 0x1E0; // ParticleSetMethod_t +} + +namespace C_OP_CylindricalDistanceToTransform { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0x320; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x478; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x5D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_TransformStart = 0x728; // CParticleTransformInput + constexpr std::ptrdiff_t m_TransformEnd = 0x790; // CParticleTransformInput + constexpr std::ptrdiff_t m_nSetMethod = 0x7F8; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x7FC; // bool + constexpr std::ptrdiff_t m_bAdditive = 0x7FD; // bool + constexpr std::ptrdiff_t m_bCapsule = 0x7FE; // bool +} + +namespace C_OP_DampenToCP { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flRange = 0x1C4; // float + constexpr std::ptrdiff_t m_flScale = 0x1C8; // float +} + +namespace C_OP_Decay { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_bRopeDecay = 0x1C0; // bool + constexpr std::ptrdiff_t m_bForcePreserveParticleOrder = 0x1C1; // bool +} + +namespace C_OP_DecayClampCount { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCount = 0x1C0; // CParticleCollectionFloatInput +} + +namespace C_OP_DecayMaintainCount { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nParticlesToMaintain = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flDecayDelay = 0x1C4; // float + constexpr std::ptrdiff_t m_nSnapshotControlPoint = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_bLifespanDecay = 0x1CC; // bool + constexpr std::ptrdiff_t m_flScale = 0x1D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bKillNewest = 0x328; // bool +} + +namespace C_OP_DecayOffscreen { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flOffscreenTime = 0x1C0; // CParticleCollectionFloatInput +} + +namespace C_OP_DensityForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flRadiusScale = 0x1D0; // float + constexpr std::ptrdiff_t m_flForceScale = 0x1D4; // float + constexpr std::ptrdiff_t m_flTargetDensity = 0x1D8; // float +} + +namespace C_OP_DifferencePreviousParticle { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D4; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1D8; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x1DC; // bool + constexpr std::ptrdiff_t m_bSetPreviousParticle = 0x1DD; // bool +} + +namespace C_OP_Diffusion { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flRadiusScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nVoxelGridResolution = 0x1C8; // int32_t +} + +namespace C_OP_DirectionBetweenVecsToVec { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecPoint1 = 0x1C8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecPoint2 = 0x820; // CPerParticleVecInput +} + +namespace C_OP_DistanceBetweenCPsToCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nStartCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nEndCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nOutputCP = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nOutputCPField = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_bSetOnce = 0x1E0; // bool + constexpr std::ptrdiff_t m_flInputMin = 0x1E4; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1E8; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1EC; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1F0; // float + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x1F4; // float + constexpr std::ptrdiff_t m_flLOSScale = 0x1F8; // float + constexpr std::ptrdiff_t m_bLOS = 0x1FC; // bool + constexpr std::ptrdiff_t m_CollisionGroupName = 0x1FD; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x280; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_nSetParent = 0x284; // ParticleParentSetMode_t +} + +namespace C_OP_DistanceBetweenTransforms { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_TransformStart = 0x1C8; // CParticleTransformInput + constexpr std::ptrdiff_t m_TransformEnd = 0x230; // CParticleTransformInput + constexpr std::ptrdiff_t m_flInputMin = 0x298; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0x3F0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x548; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x6A0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x7F8; // float + constexpr std::ptrdiff_t m_flLOSScale = 0x7FC; // float + constexpr std::ptrdiff_t m_CollisionGroupName = 0x800; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x880; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_bLOS = 0x884; // bool + constexpr std::ptrdiff_t m_nSetMethod = 0x888; // ParticleSetMethod_t +} + +namespace C_OP_DistanceBetweenVecs { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecPoint1 = 0x1C8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecPoint2 = 0x820; // CPerParticleVecInput + constexpr std::ptrdiff_t m_flInputMin = 0xE78; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0xFD0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x1128; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x1280; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nSetMethod = 0x13D8; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bDeltaTime = 0x13DC; // bool +} + +namespace C_OP_DistanceCull { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPoint = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_vecPointOffset = 0x1C4; // Vector + constexpr std::ptrdiff_t m_flDistance = 0x1D0; // float + constexpr std::ptrdiff_t m_bCullInside = 0x1D4; // bool +} + +namespace C_OP_DistanceToTransform { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0x320; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x478; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x5D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_TransformStart = 0x728; // CParticleTransformInput + constexpr std::ptrdiff_t m_bLOS = 0x790; // bool + constexpr std::ptrdiff_t m_CollisionGroupName = 0x791; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x814; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x818; // float + constexpr std::ptrdiff_t m_flLOSScale = 0x81C; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x820; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x824; // bool + constexpr std::ptrdiff_t m_bAdditive = 0x825; // bool + constexpr std::ptrdiff_t m_vecComponentScale = 0x828; // CPerParticleVecInput +} + +namespace C_OP_DragRelativeToPlane { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flDragAtPlane = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flFalloff = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bDirectional = 0x470; // bool + constexpr std::ptrdiff_t m_vecPlaneNormal = 0x478; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nControlPointNumber = 0xAD0; // int32_t +} + +namespace C_OP_DriveCPFromGlobalSoundFloat { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nOutputControlPoint = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nOutputField = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1D8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1DC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1E0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1E4; // float + constexpr std::ptrdiff_t m_StackName = 0x1E8; // CUtlString + constexpr std::ptrdiff_t m_OperatorName = 0x1F0; // CUtlString + constexpr std::ptrdiff_t m_FieldName = 0x1F8; // CUtlString +} + +namespace C_OP_EnableChildrenFromParentParticleCount { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nChildGroupID = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nFirstChild = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nNumChildrenToEnable = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bDisableChildren = 0x330; // bool + constexpr std::ptrdiff_t m_bPlayEndcapOnStop = 0x331; // bool + constexpr std::ptrdiff_t m_bDestroyImmediately = 0x332; // bool +} + +namespace C_OP_EndCapDecay { // CParticleFunctionOperator +} + +namespace C_OP_EndCapTimedDecay { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flDecayTime = 0x1C0; // float +} + +namespace C_OP_EndCapTimedFreeze { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flFreezeTime = 0x1C0; // CParticleCollectionFloatInput +} + +namespace C_OP_ExternalGameImpulseForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flForceScale = 0x1D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bRopes = 0x328; // bool + constexpr std::ptrdiff_t m_bRopesZOnly = 0x329; // bool + constexpr std::ptrdiff_t m_bExplosions = 0x32A; // bool + constexpr std::ptrdiff_t m_bParticles = 0x32B; // bool +} + +namespace C_OP_ExternalWindForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_vecSamplePosition = 0x1D0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecScale = 0x828; // CPerParticleVecInput + constexpr std::ptrdiff_t m_bSampleWind = 0xE80; // bool + constexpr std::ptrdiff_t m_bSampleWater = 0xE81; // bool + constexpr std::ptrdiff_t m_bDampenNearWaterPlane = 0xE82; // bool + constexpr std::ptrdiff_t m_bSampleGravity = 0xE83; // bool + constexpr std::ptrdiff_t m_vecGravityForce = 0xE88; // CPerParticleVecInput + constexpr std::ptrdiff_t m_bUseBasicMovementGravity = 0x14E0; // bool + constexpr std::ptrdiff_t m_flLocalGravityScale = 0x14E8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flLocalBuoyancyScale = 0x1640; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecBuoyancyForce = 0x1798; // CPerParticleVecInput +} + +namespace C_OP_FadeAndKill { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flStartFadeInTime = 0x1C0; // float + constexpr std::ptrdiff_t m_flEndFadeInTime = 0x1C4; // float + constexpr std::ptrdiff_t m_flStartFadeOutTime = 0x1C8; // float + constexpr std::ptrdiff_t m_flEndFadeOutTime = 0x1CC; // float + constexpr std::ptrdiff_t m_flStartAlpha = 0x1D0; // float + constexpr std::ptrdiff_t m_flEndAlpha = 0x1D4; // float + constexpr std::ptrdiff_t m_bForcePreserveParticleOrder = 0x1D8; // bool +} + +namespace C_OP_FadeAndKillForTracers { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flStartFadeInTime = 0x1C0; // float + constexpr std::ptrdiff_t m_flEndFadeInTime = 0x1C4; // float + constexpr std::ptrdiff_t m_flStartFadeOutTime = 0x1C8; // float + constexpr std::ptrdiff_t m_flEndFadeOutTime = 0x1CC; // float + constexpr std::ptrdiff_t m_flStartAlpha = 0x1D0; // float + constexpr std::ptrdiff_t m_flEndAlpha = 0x1D4; // float +} + +namespace C_OP_FadeIn { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flFadeInTimeMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flFadeInTimeMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flFadeInTimeExp = 0x1C8; // float + constexpr std::ptrdiff_t m_bProportional = 0x1CC; // bool +} + +namespace C_OP_FadeInSimple { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flFadeInTime = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t +} + +namespace C_OP_FadeOut { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flFadeOutTimeMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flFadeOutTimeMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flFadeOutTimeExp = 0x1C8; // float + constexpr std::ptrdiff_t m_flFadeBias = 0x1CC; // float + constexpr std::ptrdiff_t m_bProportional = 0x200; // bool + constexpr std::ptrdiff_t m_bEaseInAndOut = 0x201; // bool +} + +namespace C_OP_FadeOutSimple { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flFadeOutTime = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t +} + +namespace C_OP_ForceBasedOnDistanceToPlane { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flMinDist = 0x1D0; // float + constexpr std::ptrdiff_t m_vecForceAtMinDist = 0x1D4; // Vector + constexpr std::ptrdiff_t m_flMaxDist = 0x1E0; // float + constexpr std::ptrdiff_t m_vecForceAtMaxDist = 0x1E4; // Vector + constexpr std::ptrdiff_t m_vecPlaneNormal = 0x1F0; // Vector + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1FC; // int32_t + constexpr std::ptrdiff_t m_flExponent = 0x200; // float +} + +namespace C_OP_ForceControlPointStub { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_ControlPoint = 0x1D0; // int32_t +} + +namespace C_OP_GlobalLight { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flScale = 0x1C0; // float + constexpr std::ptrdiff_t m_bClampLowerRange = 0x1C4; // bool + constexpr std::ptrdiff_t m_bClampUpperRange = 0x1C5; // bool +} + +namespace C_OP_HSVShiftToCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nColorCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nColorGemEnableCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nOutputCP = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_DefaultHSVColor = 0x1DC; // Color +} + +namespace C_OP_InheritFromParentParticles { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nIncrement = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_bRandomDistribution = 0x1CC; // bool +} + +namespace C_OP_InheritFromParentParticlesV2 { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nIncrement = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_bRandomDistribution = 0x1CC; // bool + constexpr std::ptrdiff_t m_nMissingParentBehavior = 0x1D0; // MissingParentInheritBehavior_t +} + +namespace C_OP_InheritFromPeerSystem { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldInput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nIncrement = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nGroupID = 0x1CC; // int32_t +} + +namespace C_OP_InstantaneousEmitter { // CParticleFunctionEmitter + constexpr std::ptrdiff_t m_nParticlesToEmit = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flStartTime = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInitFromKilledParentParticles = 0x470; // float + constexpr std::ptrdiff_t m_flParentParticleScale = 0x478; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nMaxEmittedPerFrame = 0x5D0; // int32_t + constexpr std::ptrdiff_t m_nSnapshotControlPoint = 0x5D4; // int32_t +} + +namespace C_OP_InterpolateRadius { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flStartTime = 0x1C0; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1C4; // float + constexpr std::ptrdiff_t m_flStartScale = 0x1C8; // float + constexpr std::ptrdiff_t m_flEndScale = 0x1CC; // float + constexpr std::ptrdiff_t m_bEaseInAndOut = 0x1D0; // bool + constexpr std::ptrdiff_t m_flBias = 0x1D4; // float +} + +namespace C_OP_LagCompensation { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nDesiredVelocityCP = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nLatencyCP = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nLatencyCPField = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nDesiredVelocityCPField = 0x1CC; // int32_t +} + +namespace C_OP_LerpEndCapScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOutput = 0x1C4; // float + constexpr std::ptrdiff_t m_flLerpTime = 0x1C8; // float +} + +namespace C_OP_LerpEndCapVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecOutput = 0x1C4; // Vector + constexpr std::ptrdiff_t m_flLerpTime = 0x1D0; // float +} + +namespace C_OP_LerpScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOutput = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flStartTime = 0x320; // float + constexpr std::ptrdiff_t m_flEndTime = 0x324; // float +} + +namespace C_OP_LerpToInitialPosition { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flInterpolation = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nCacheField = 0x320; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0x328; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_vecScale = 0x480; // CParticleCollectionVecInput +} + +namespace C_OP_LerpToOtherAttribute { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flInterpolation = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nFieldInputFrom = 0x318; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldInput = 0x31C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x320; // ParticleAttributeIndex_t +} + +namespace C_OP_LerpVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecOutput = 0x1C4; // Vector + constexpr std::ptrdiff_t m_flStartTime = 0x1D0; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1D4; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1D8; // ParticleSetMethod_t +} + +namespace C_OP_LightningSnapshotGenerator { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCPSnapshot = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPStartPnt = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nCPEndPnt = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_flSegments = 0x1E0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOffset = 0x338; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOffsetDecay = 0x490; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flRecalcRate = 0x5E8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flUVScale = 0x740; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flUVOffset = 0x898; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flSplitRate = 0x9F0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flBranchTwist = 0xB48; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nBranchBehavior = 0xCA0; // ParticleLightnintBranchBehavior_t + constexpr std::ptrdiff_t m_flRadiusStart = 0xCA8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flRadiusEnd = 0xE00; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flDedicatedPool = 0xF58; // CParticleCollectionFloatInput +} + +namespace C_OP_LocalAccelerationForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_nCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nScaleCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_vecAccel = 0x1D8; // CParticleCollectionVecInput +} + +namespace C_OP_LockPoints { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nMinCol = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nMaxCol = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nMinRow = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nMaxRow = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_nControlPoint = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_flBlendValue = 0x1D4; // float +} + +namespace C_OP_LockToBone { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_modelInput = 0x1C0; // CParticleModelInput + constexpr std::ptrdiff_t m_transformInput = 0x220; // CParticleTransformInput + constexpr std::ptrdiff_t m_flLifeTimeFadeStart = 0x288; // float + constexpr std::ptrdiff_t m_flLifeTimeFadeEnd = 0x28C; // float + constexpr std::ptrdiff_t m_flJumpThreshold = 0x290; // float + constexpr std::ptrdiff_t m_flPrevPosScale = 0x294; // float + constexpr std::ptrdiff_t m_HitboxSetName = 0x298; // char[128] + constexpr std::ptrdiff_t m_bRigid = 0x318; // bool + constexpr std::ptrdiff_t m_bUseBones = 0x319; // bool + constexpr std::ptrdiff_t m_nFieldOutput = 0x31C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutputPrev = 0x320; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nRotationSetType = 0x324; // ParticleRotationLockType_t + constexpr std::ptrdiff_t m_bRigidRotationLock = 0x328; // bool + constexpr std::ptrdiff_t m_vecRotation = 0x330; // CPerParticleVecInput + constexpr std::ptrdiff_t m_flRotLerp = 0x988; // CPerParticleFloatInput +} + +namespace C_OP_LockToPointList { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_pointList = 0x1C8; // CUtlVector + constexpr std::ptrdiff_t m_bPlaceAlongPath = 0x1E0; // bool + constexpr std::ptrdiff_t m_bClosedLoop = 0x1E1; // bool + constexpr std::ptrdiff_t m_nNumPointsAlongPath = 0x1E4; // int32_t +} + +namespace C_OP_LockToSavedSequentialPath { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flFadeStart = 0x1C4; // float + constexpr std::ptrdiff_t m_flFadeEnd = 0x1C8; // float + constexpr std::ptrdiff_t m_bCPPairs = 0x1CC; // bool + constexpr std::ptrdiff_t m_PathParams = 0x1D0; // CPathParameters +} + +namespace C_OP_LockToSavedSequentialPathV2 { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flFadeStart = 0x1C0; // float + constexpr std::ptrdiff_t m_flFadeEnd = 0x1C4; // float + constexpr std::ptrdiff_t m_bCPPairs = 0x1C8; // bool + constexpr std::ptrdiff_t m_PathParams = 0x1D0; // CPathParameters +} + +namespace C_OP_MaintainEmitter { // CParticleFunctionEmitter + constexpr std::ptrdiff_t m_nParticlesToMaintain = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flStartTime = 0x318; // float + constexpr std::ptrdiff_t m_flEmissionDuration = 0x320; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flEmissionRate = 0x478; // float + constexpr std::ptrdiff_t m_nSnapshotControlPoint = 0x47C; // int32_t + constexpr std::ptrdiff_t m_bEmitInstantaneously = 0x480; // bool + constexpr std::ptrdiff_t m_bFinalEmitOnStop = 0x481; // bool + constexpr std::ptrdiff_t m_flScale = 0x488; // CParticleCollectionFloatInput +} + +namespace C_OP_MaintainSequentialPath { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_fMaxDistance = 0x1C0; // float + constexpr std::ptrdiff_t m_flNumToAssign = 0x1C4; // float + constexpr std::ptrdiff_t m_flCohesionStrength = 0x1C8; // float + constexpr std::ptrdiff_t m_flTolerance = 0x1CC; // float + constexpr std::ptrdiff_t m_bLoop = 0x1D0; // bool + constexpr std::ptrdiff_t m_bUseParticleCount = 0x1D1; // bool + constexpr std::ptrdiff_t m_PathParams = 0x1E0; // CPathParameters +} + +namespace C_OP_MaxVelocity { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flMaxVelocity = 0x1C0; // float + constexpr std::ptrdiff_t m_flMinVelocity = 0x1C4; // float + constexpr std::ptrdiff_t m_nOverrideCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nOverrideCPField = 0x1CC; // int32_t +} + +namespace C_OP_ModelCull { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_bBoundBox = 0x1C4; // bool + constexpr std::ptrdiff_t m_bCullOutside = 0x1C5; // bool + constexpr std::ptrdiff_t m_bUseBones = 0x1C6; // bool + constexpr std::ptrdiff_t m_HitboxSetName = 0x1C7; // char[128] +} + +namespace C_OP_ModelDampenMovement { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_bBoundBox = 0x1C4; // bool + constexpr std::ptrdiff_t m_bOutside = 0x1C5; // bool + constexpr std::ptrdiff_t m_bUseBones = 0x1C6; // bool + constexpr std::ptrdiff_t m_HitboxSetName = 0x1C7; // char[128] + constexpr std::ptrdiff_t m_vecPosOffset = 0x248; // CPerParticleVecInput + constexpr std::ptrdiff_t m_fDrag = 0x8A0; // float +} + +namespace C_OP_MoveToHitbox { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_modelInput = 0x1C0; // CParticleModelInput + constexpr std::ptrdiff_t m_transformInput = 0x220; // CParticleTransformInput + constexpr std::ptrdiff_t m_flLifeTimeLerpStart = 0x28C; // float + constexpr std::ptrdiff_t m_flLifeTimeLerpEnd = 0x290; // float + constexpr std::ptrdiff_t m_flPrevPosScale = 0x294; // float + constexpr std::ptrdiff_t m_HitboxSetName = 0x298; // char[128] + constexpr std::ptrdiff_t m_bUseBones = 0x318; // bool + constexpr std::ptrdiff_t m_nLerpType = 0x31C; // HitboxLerpType_t + constexpr std::ptrdiff_t m_flInterpolation = 0x320; // CPerParticleFloatInput +} + +namespace C_OP_MovementLoopInsideSphere { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCP = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flDistance = 0x1C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_vecScale = 0x320; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nDistSqrAttr = 0x978; // ParticleAttributeIndex_t +} + +namespace C_OP_MovementMaintainOffset { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_vecOffset = 0x1C0; // Vector + constexpr std::ptrdiff_t m_nCP = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_bRadiusScale = 0x1D0; // bool +} + +namespace C_OP_MovementMoveAlongSkinnedCPSnapshot { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nSnapshotControlPointNumber = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_bSetNormal = 0x1C8; // bool + constexpr std::ptrdiff_t m_bSetRadius = 0x1C9; // bool + constexpr std::ptrdiff_t m_flInterpolation = 0x1D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flTValue = 0x328; // CPerParticleFloatInput +} + +namespace C_OP_MovementPlaceOnGround { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flOffset = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x318; // float + constexpr std::ptrdiff_t m_flTolerance = 0x31C; // float + constexpr std::ptrdiff_t m_flTraceOffset = 0x320; // float + constexpr std::ptrdiff_t m_flLerpRate = 0x324; // float + constexpr std::ptrdiff_t m_CollisionGroupName = 0x328; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x3A8; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_nRefCP1 = 0x3AC; // int32_t + constexpr std::ptrdiff_t m_nRefCP2 = 0x3B0; // int32_t + constexpr std::ptrdiff_t m_nLerpCP = 0x3B4; // int32_t + constexpr std::ptrdiff_t m_nTraceMissBehavior = 0x3C0; // ParticleTraceMissBehavior_t + constexpr std::ptrdiff_t m_bIncludeShotHull = 0x3C4; // bool + constexpr std::ptrdiff_t m_bIncludeWater = 0x3C5; // bool + constexpr std::ptrdiff_t m_bSetNormal = 0x3C8; // bool + constexpr std::ptrdiff_t m_bScaleOffset = 0x3C9; // bool + constexpr std::ptrdiff_t m_nPreserveOffsetCP = 0x3CC; // int32_t + constexpr std::ptrdiff_t m_nIgnoreCP = 0x3D0; // int32_t +} + +namespace C_OP_MovementRigidAttachToCP { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nScaleControlPoint = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nScaleCPField = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nFieldInput = 0x1CC; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1D0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bOffsetLocal = 0x1D4; // bool +} + +namespace C_OP_MovementRotateParticleAroundAxis { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_vecRotAxis = 0x1C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_flRotRate = 0x818; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_TransformInput = 0x970; // CParticleTransformInput + constexpr std::ptrdiff_t m_bLocalSpace = 0x9D8; // bool +} + +namespace C_OP_MovementSkinnedPositionFromCPSnapshot { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nSnapshotControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_bRandom = 0x1C8; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_bSetNormal = 0x1D0; // bool + constexpr std::ptrdiff_t m_bSetRadius = 0x1D1; // bool + constexpr std::ptrdiff_t m_flIncrement = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nFullLoopIncrement = 0x330; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nSnapShotStartPoint = 0x488; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInterpolation = 0x5E0; // CPerParticleFloatInput +} + +namespace C_OP_Noise { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOutputMin = 0x1C4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1C8; // float + constexpr std::ptrdiff_t m_fl4NoiseScale = 0x1CC; // float + constexpr std::ptrdiff_t m_bAdditive = 0x1D0; // bool + constexpr std::ptrdiff_t m_flNoiseAnimationTimeScale = 0x1D4; // float +} + +namespace C_OP_NoiseEmitter { // CParticleFunctionEmitter + constexpr std::ptrdiff_t m_flEmissionDuration = 0x1C0; // float + constexpr std::ptrdiff_t m_flStartTime = 0x1C4; // float + constexpr std::ptrdiff_t m_flEmissionScale = 0x1C8; // float + constexpr std::ptrdiff_t m_nScaleControlPoint = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_nScaleControlPointField = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nWorldNoisePoint = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_bAbsVal = 0x1D8; // bool + constexpr std::ptrdiff_t m_bAbsValInv = 0x1D9; // bool + constexpr std::ptrdiff_t m_flOffset = 0x1DC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1E0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1E4; // float + constexpr std::ptrdiff_t m_flNoiseScale = 0x1E8; // float + constexpr std::ptrdiff_t m_flWorldNoiseScale = 0x1EC; // float + constexpr std::ptrdiff_t m_vecOffsetLoc = 0x1F0; // Vector + constexpr std::ptrdiff_t m_flWorldTimeScale = 0x1FC; // float +} + +namespace C_OP_NormalLock { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t +} + +namespace C_OP_NormalizeVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0x1C4; // float +} + +namespace C_OP_Orient2DRelToCP { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flRotOffset = 0x1C0; // float + constexpr std::ptrdiff_t m_flSpinStrength = 0x1C4; // float + constexpr std::ptrdiff_t m_nCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1CC; // ParticleAttributeIndex_t +} + +namespace C_OP_OrientTo2dDirection { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flRotOffset = 0x1C0; // float + constexpr std::ptrdiff_t m_flSpinStrength = 0x1C4; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C8; // ParticleAttributeIndex_t +} + +namespace C_OP_OscillateScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_RateMin = 0x1C0; // float + constexpr std::ptrdiff_t m_RateMax = 0x1C4; // float + constexpr std::ptrdiff_t m_FrequencyMin = 0x1C8; // float + constexpr std::ptrdiff_t m_FrequencyMax = 0x1CC; // float + constexpr std::ptrdiff_t m_nField = 0x1D0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bProportional = 0x1D4; // bool + constexpr std::ptrdiff_t m_bProportionalOp = 0x1D5; // bool + constexpr std::ptrdiff_t m_flStartTime_min = 0x1D8; // float + constexpr std::ptrdiff_t m_flStartTime_max = 0x1DC; // float + constexpr std::ptrdiff_t m_flEndTime_min = 0x1E0; // float + constexpr std::ptrdiff_t m_flEndTime_max = 0x1E4; // float + constexpr std::ptrdiff_t m_flOscMult = 0x1E8; // float + constexpr std::ptrdiff_t m_flOscAdd = 0x1EC; // float +} + +namespace C_OP_OscillateScalarSimple { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_Rate = 0x1C0; // float + constexpr std::ptrdiff_t m_Frequency = 0x1C4; // float + constexpr std::ptrdiff_t m_nField = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOscMult = 0x1CC; // float + constexpr std::ptrdiff_t m_flOscAdd = 0x1D0; // float +} + +namespace C_OP_OscillateVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_RateMin = 0x1C0; // Vector + constexpr std::ptrdiff_t m_RateMax = 0x1CC; // Vector + constexpr std::ptrdiff_t m_FrequencyMin = 0x1D8; // Vector + constexpr std::ptrdiff_t m_FrequencyMax = 0x1E4; // Vector + constexpr std::ptrdiff_t m_nField = 0x1F0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bProportional = 0x1F4; // bool + constexpr std::ptrdiff_t m_bProportionalOp = 0x1F5; // bool + constexpr std::ptrdiff_t m_bOffset = 0x1F6; // bool + constexpr std::ptrdiff_t m_flStartTime_min = 0x1F8; // float + constexpr std::ptrdiff_t m_flStartTime_max = 0x1FC; // float + constexpr std::ptrdiff_t m_flEndTime_min = 0x200; // float + constexpr std::ptrdiff_t m_flEndTime_max = 0x204; // float + constexpr std::ptrdiff_t m_flOscMult = 0x208; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOscAdd = 0x360; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRateScale = 0x4B8; // CPerParticleFloatInput +} + +namespace C_OP_OscillateVectorSimple { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_Rate = 0x1C0; // Vector + constexpr std::ptrdiff_t m_Frequency = 0x1CC; // Vector + constexpr std::ptrdiff_t m_nField = 0x1D8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOscMult = 0x1DC; // float + constexpr std::ptrdiff_t m_flOscAdd = 0x1E0; // float + constexpr std::ptrdiff_t m_bOffset = 0x1E4; // bool +} + +namespace C_OP_ParentVortices { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flForceScale = 0x1D0; // float + constexpr std::ptrdiff_t m_vecTwistAxis = 0x1D4; // Vector + constexpr std::ptrdiff_t m_bFlipBasedOnYaw = 0x1E0; // bool +} + +namespace C_OP_ParticlePhysics { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_Gravity = 0x1C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_fDrag = 0x818; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nMaxConstraintPasses = 0x970; // int32_t +} + +namespace C_OP_PerParticleForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flForceScale = 0x1D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vForce = 0x328; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nCP = 0x980; // int32_t +} + +namespace C_OP_PercentageBetweenTransformLerpCPs { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C4; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1C8; // float + constexpr std::ptrdiff_t m_TransformStart = 0x1D0; // CParticleTransformInput + constexpr std::ptrdiff_t m_TransformEnd = 0x238; // CParticleTransformInput + constexpr std::ptrdiff_t m_nOutputStartCP = 0x2A0; // int32_t + constexpr std::ptrdiff_t m_nOutputStartField = 0x2A4; // int32_t + constexpr std::ptrdiff_t m_nOutputEndCP = 0x2A8; // int32_t + constexpr std::ptrdiff_t m_nOutputEndField = 0x2AC; // int32_t + constexpr std::ptrdiff_t m_nSetMethod = 0x2B0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x2B4; // bool + constexpr std::ptrdiff_t m_bRadialCheck = 0x2B5; // bool +} + +namespace C_OP_PercentageBetweenTransforms { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C4; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1C8; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_TransformStart = 0x1D8; // CParticleTransformInput + constexpr std::ptrdiff_t m_TransformEnd = 0x240; // CParticleTransformInput + constexpr std::ptrdiff_t m_nSetMethod = 0x2A8; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x2AC; // bool + constexpr std::ptrdiff_t m_bRadialCheck = 0x2AD; // bool +} + +namespace C_OP_PercentageBetweenTransformsVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C4; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1C8; // float + constexpr std::ptrdiff_t m_vecOutputMin = 0x1CC; // Vector + constexpr std::ptrdiff_t m_vecOutputMax = 0x1D8; // Vector + constexpr std::ptrdiff_t m_TransformStart = 0x1E8; // CParticleTransformInput + constexpr std::ptrdiff_t m_TransformEnd = 0x250; // CParticleTransformInput + constexpr std::ptrdiff_t m_nSetMethod = 0x2B8; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x2BC; // bool + constexpr std::ptrdiff_t m_bRadialCheck = 0x2BD; // bool +} + +namespace C_OP_PinParticleToCP { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_vecOffset = 0x1C8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_bOffsetLocal = 0x820; // bool + constexpr std::ptrdiff_t m_nParticleSelection = 0x824; // ParticleSelection_t + constexpr std::ptrdiff_t m_nParticleNumber = 0x828; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nPinBreakType = 0x980; // ParticlePinDistance_t + constexpr std::ptrdiff_t m_flBreakDistance = 0x988; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flBreakSpeed = 0xAE0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flAge = 0xC38; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nBreakControlPointNumber = 0xD90; // int32_t + constexpr std::ptrdiff_t m_nBreakControlPointNumber2 = 0xD94; // int32_t + constexpr std::ptrdiff_t m_flBreakValue = 0xD98; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInterpolation = 0xEF0; // CPerParticleFloatInput +} + +namespace C_OP_PlanarConstraint { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_PointOnPlane = 0x1C0; // Vector + constexpr std::ptrdiff_t m_PlaneNormal = 0x1CC; // Vector + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_bGlobalOrigin = 0x1DC; // bool + constexpr std::ptrdiff_t m_bGlobalNormal = 0x1DD; // bool + constexpr std::ptrdiff_t m_flRadiusScale = 0x1E0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flMaximumDistanceToCP = 0x338; // CParticleCollectionFloatInput +} + +namespace C_OP_PlaneCull { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nPlaneControlPoint = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_vecPlaneDirection = 0x1C4; // Vector + constexpr std::ptrdiff_t m_bLocalSpace = 0x1D0; // bool + constexpr std::ptrdiff_t m_flPlaneOffset = 0x1D4; // float +} + +namespace C_OP_PlayEndCapWhenFinished { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_bFireOnEmissionEnd = 0x1D0; // bool + constexpr std::ptrdiff_t m_bIncludeChildren = 0x1D1; // bool +} + +namespace C_OP_PointVectorAtNextParticle { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInterpolation = 0x1C8; // CPerParticleFloatInput +} + +namespace C_OP_PositionLock { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_flStartTime_min = 0x228; // float + constexpr std::ptrdiff_t m_flStartTime_max = 0x22C; // float + constexpr std::ptrdiff_t m_flStartTime_exp = 0x230; // float + constexpr std::ptrdiff_t m_flEndTime_min = 0x234; // float + constexpr std::ptrdiff_t m_flEndTime_max = 0x238; // float + constexpr std::ptrdiff_t m_flEndTime_exp = 0x23C; // float + constexpr std::ptrdiff_t m_flRange = 0x240; // float + constexpr std::ptrdiff_t m_flRangeBias = 0x248; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flJumpThreshold = 0x3A0; // float + constexpr std::ptrdiff_t m_flPrevPosScale = 0x3A4; // float + constexpr std::ptrdiff_t m_bLockRot = 0x3A8; // bool + constexpr std::ptrdiff_t m_vecScale = 0x3B0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nFieldOutput = 0xA08; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutputPrev = 0xA0C; // ParticleAttributeIndex_t +} + +namespace C_OP_QuantizeCPComponent { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_flInputValue = 0x1D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nCPOutput = 0x328; // int32_t + constexpr std::ptrdiff_t m_nOutVectorField = 0x32C; // int32_t + constexpr std::ptrdiff_t m_flQuantizeValue = 0x330; // CParticleCollectionFloatInput +} + +namespace C_OP_QuantizeFloat { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0x318; // ParticleAttributeIndex_t +} + +namespace C_OP_RadiusDecay { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flMinRadius = 0x1C0; // float +} + +namespace C_OP_RampCPLinearRandom { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nOutControlPointNumber = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_vecRateMin = 0x1D4; // Vector + constexpr std::ptrdiff_t m_vecRateMax = 0x1E0; // Vector +} + +namespace C_OP_RampScalarLinear { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_RateMin = 0x1C0; // float + constexpr std::ptrdiff_t m_RateMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flStartTime_min = 0x1C8; // float + constexpr std::ptrdiff_t m_flStartTime_max = 0x1CC; // float + constexpr std::ptrdiff_t m_flEndTime_min = 0x1D0; // float + constexpr std::ptrdiff_t m_flEndTime_max = 0x1D4; // float + constexpr std::ptrdiff_t m_nField = 0x200; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bProportionalOp = 0x204; // bool +} + +namespace C_OP_RampScalarLinearSimple { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_Rate = 0x1C0; // float + constexpr std::ptrdiff_t m_flStartTime = 0x1C4; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1C8; // float + constexpr std::ptrdiff_t m_nField = 0x1F0; // ParticleAttributeIndex_t +} + +namespace C_OP_RampScalarSpline { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_RateMin = 0x1C0; // float + constexpr std::ptrdiff_t m_RateMax = 0x1C4; // float + constexpr std::ptrdiff_t m_flStartTime_min = 0x1C8; // float + constexpr std::ptrdiff_t m_flStartTime_max = 0x1CC; // float + constexpr std::ptrdiff_t m_flEndTime_min = 0x1D0; // float + constexpr std::ptrdiff_t m_flEndTime_max = 0x1D4; // float + constexpr std::ptrdiff_t m_flBias = 0x1D8; // float + constexpr std::ptrdiff_t m_nField = 0x200; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bProportionalOp = 0x204; // bool + constexpr std::ptrdiff_t m_bEaseOut = 0x205; // bool +} + +namespace C_OP_RampScalarSplineSimple { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_Rate = 0x1C0; // float + constexpr std::ptrdiff_t m_flStartTime = 0x1C4; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1C8; // float + constexpr std::ptrdiff_t m_nField = 0x1F0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bEaseOut = 0x1F4; // bool +} + +namespace C_OP_RandomForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_MinForce = 0x1D0; // Vector + constexpr std::ptrdiff_t m_MaxForce = 0x1DC; // Vector +} + +namespace C_OP_ReadFromNeighboringParticle { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nIncrement = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_DistanceCheck = 0x1D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInterpolation = 0x328; // CPerParticleFloatInput +} + +namespace C_OP_ReinitializeScalarEndCap { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOutputMin = 0x1C4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1C8; // float +} + +namespace C_OP_RemapAverageHitboxSpeedtoCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nInControlPointNumber = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nOutControlPointNumber = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nField = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nHitboxDataType = 0x1DC; // ParticleHitboxDataSelection_t + constexpr std::ptrdiff_t m_flInputMin = 0x1E0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0x338; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x490; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x5E8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nHeightControlPointNumber = 0x740; // int32_t + constexpr std::ptrdiff_t m_vecComparisonVelocity = 0x748; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_HitboxSetName = 0xDA0; // char[128] +} + +namespace C_OP_RemapAverageScalarValuetoCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nOutControlPointNumber = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nOutVectorField = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nField = 0x1D8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1DC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1E0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1E4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1E8; // float +} + +namespace C_OP_RemapBoundingVolumetoCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nOutControlPointNumber = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1DC; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1E0; // float +} + +namespace C_OP_RemapCPVelocityToVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPoint = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0x1C8; // float + constexpr std::ptrdiff_t m_bNormalize = 0x1CC; // bool +} + +namespace C_OP_RemapCPtoCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nInputControlPoint = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nOutputControlPoint = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nInputField = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nOutputField = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1E0; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1E4; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1E8; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1EC; // float + constexpr std::ptrdiff_t m_bDerivative = 0x1F0; // bool + constexpr std::ptrdiff_t m_flInterpRate = 0x1F4; // float +} + +namespace C_OP_RemapCPtoScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCPInput = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nField = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_flStartTime = 0x1DC; // float + constexpr std::ptrdiff_t m_flEndTime = 0x1E0; // float + constexpr std::ptrdiff_t m_flInterpRate = 0x1E4; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1E8; // ParticleSetMethod_t +} + +namespace C_OP_RemapCPtoVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCPInput = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nLocalSpaceCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_vInputMin = 0x1CC; // Vector + constexpr std::ptrdiff_t m_vInputMax = 0x1D8; // Vector + constexpr std::ptrdiff_t m_vOutputMin = 0x1E4; // Vector + constexpr std::ptrdiff_t m_vOutputMax = 0x1F0; // Vector + constexpr std::ptrdiff_t m_flStartTime = 0x1FC; // float + constexpr std::ptrdiff_t m_flEndTime = 0x200; // float + constexpr std::ptrdiff_t m_flInterpRate = 0x204; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x208; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bOffset = 0x20C; // bool + constexpr std::ptrdiff_t m_bAccelerate = 0x20D; // bool +} + +namespace C_OP_RemapControlPointDirectionToVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0x1C4; // float + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C8; // int32_t +} + +namespace C_OP_RemapControlPointOrientationToRotation { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCP = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flOffsetRot = 0x1C8; // float + constexpr std::ptrdiff_t m_nComponent = 0x1CC; // int32_t +} + +namespace C_OP_RemapCrossProductOfTwoVectorsToVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_InputVec1 = 0x1C0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_InputVec2 = 0x818; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nFieldOutput = 0xE70; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bNormalize = 0xE74; // bool +} + +namespace C_OP_RemapDensityGradientToVectorAttribute { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flRadiusScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t +} + +namespace C_OP_RemapDensityToVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flRadiusScale = 0x1C0; // float + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flDensityMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flDensityMax = 0x1CC; // float + constexpr std::ptrdiff_t m_vecOutputMin = 0x1D0; // Vector + constexpr std::ptrdiff_t m_vecOutputMax = 0x1DC; // Vector + constexpr std::ptrdiff_t m_bUseParentDensity = 0x1E8; // bool + constexpr std::ptrdiff_t m_nVoxelGridResolution = 0x1EC; // int32_t +} + +namespace C_OP_RemapDirectionToCPToVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCP = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0x1C8; // float + constexpr std::ptrdiff_t m_flOffsetRot = 0x1CC; // float + constexpr std::ptrdiff_t m_vecOffsetAxis = 0x1D0; // Vector + constexpr std::ptrdiff_t m_bNormalize = 0x1DC; // bool + constexpr std::ptrdiff_t m_nFieldStrength = 0x1E0; // ParticleAttributeIndex_t +} + +namespace C_OP_RemapDistanceToLineSegmentBase { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCP0 = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nCP1 = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_flMinInputValue = 0x1C8; // float + constexpr std::ptrdiff_t m_flMaxInputValue = 0x1CC; // float + constexpr std::ptrdiff_t m_bInfiniteLine = 0x1D0; // bool +} + +namespace C_OP_RemapDistanceToLineSegmentToScalar { // C_OP_RemapDistanceToLineSegmentBase + constexpr std::ptrdiff_t m_nFieldOutput = 0x1E0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flMinOutputValue = 0x1E4; // float + constexpr std::ptrdiff_t m_flMaxOutputValue = 0x1E8; // float +} + +namespace C_OP_RemapDistanceToLineSegmentToVector { // C_OP_RemapDistanceToLineSegmentBase + constexpr std::ptrdiff_t m_nFieldOutput = 0x1E0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vMinOutputValue = 0x1E4; // Vector + constexpr std::ptrdiff_t m_vMaxOutputValue = 0x1F0; // Vector +} + +namespace C_OP_RemapDotProductToCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nInputCP1 = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nInputCP2 = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nOutputCP = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nOutVectorField = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1E0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInputMax = 0x338; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x490; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x5E8; // CParticleCollectionFloatInput +} + +namespace C_OP_RemapDotProductToScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nInputCP1 = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nInputCP2 = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_bUseParticleVelocity = 0x1DC; // bool + constexpr std::ptrdiff_t m_nSetMethod = 0x1E0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bActiveRange = 0x1E4; // bool + constexpr std::ptrdiff_t m_bUseParticleNormal = 0x1E5; // bool +} + +namespace C_OP_RemapExternalWindToCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPOutput = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_vecScale = 0x1D8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_bSetMagnitude = 0x830; // bool + constexpr std::ptrdiff_t m_nOutVectorField = 0x834; // int32_t +} + +namespace C_OP_RemapModelVolumetoCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nBBoxType = 0x1D0; // BBoxVolumeType_t + constexpr std::ptrdiff_t m_nInControlPointNumber = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nOutControlPointNumber = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nOutControlPointMaxNumber = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_nField = 0x1E0; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1E4; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1E8; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1EC; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1F0; // float +} + +namespace C_OP_RemapNamedModelBodyPartEndCap { // C_OP_RemapNamedModelElementEndCap +} + +namespace C_OP_RemapNamedModelBodyPartOnceTimed { // C_OP_RemapNamedModelElementOnceTimed +} + +namespace C_OP_RemapNamedModelElementEndCap { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_hModel = 0x1C0; // CStrongHandle + constexpr std::ptrdiff_t m_inNames = 0x1C8; // CUtlVector + constexpr std::ptrdiff_t m_outNames = 0x1E0; // CUtlVector + constexpr std::ptrdiff_t m_fallbackNames = 0x1F8; // CUtlVector + constexpr std::ptrdiff_t m_bModelFromRenderer = 0x210; // bool + constexpr std::ptrdiff_t m_nFieldInput = 0x214; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x218; // ParticleAttributeIndex_t +} + +namespace C_OP_RemapNamedModelElementOnceTimed { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_hModel = 0x1C0; // CStrongHandle + constexpr std::ptrdiff_t m_inNames = 0x1C8; // CUtlVector + constexpr std::ptrdiff_t m_outNames = 0x1E0; // CUtlVector + constexpr std::ptrdiff_t m_fallbackNames = 0x1F8; // CUtlVector + constexpr std::ptrdiff_t m_bModelFromRenderer = 0x210; // bool + constexpr std::ptrdiff_t m_bProportional = 0x211; // bool + constexpr std::ptrdiff_t m_nFieldInput = 0x214; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x218; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flRemapTime = 0x21C; // float +} + +namespace C_OP_RemapNamedModelMeshGroupEndCap { // C_OP_RemapNamedModelElementEndCap +} + +namespace C_OP_RemapNamedModelMeshGroupOnceTimed { // C_OP_RemapNamedModelElementOnceTimed +} + +namespace C_OP_RemapNamedModelSequenceEndCap { // C_OP_RemapNamedModelElementEndCap +} + +namespace C_OP_RemapNamedModelSequenceOnceTimed { // C_OP_RemapNamedModelElementOnceTimed +} + +namespace C_OP_RemapParticleCountOnScalarEndCap { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nInputMin = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nInputMax = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_flOutputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_bBackwards = 0x1D4; // bool + constexpr std::ptrdiff_t m_nSetMethod = 0x1D8; // ParticleSetMethod_t +} + +namespace C_OP_RemapParticleCountToScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nInputMin = 0x1C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nInputMax = 0x320; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOutputMin = 0x478; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOutputMax = 0x5D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bActiveRange = 0x728; // bool + constexpr std::ptrdiff_t m_nSetMethod = 0x72C; // ParticleSetMethod_t +} + +namespace C_OP_RemapSDFDistanceToScalarAttribute { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nVectorFieldInput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flMinDistance = 0x1C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flMaxDistance = 0x320; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flValueBelowMin = 0x478; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flValueAtMin = 0x5D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flValueAtMax = 0x728; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flValueAboveMax = 0x880; // CParticleCollectionFloatInput +} + +namespace C_OP_RemapSDFDistanceToVectorAttribute { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nVectorFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nVectorFieldInput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flMinDistance = 0x1C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flMaxDistance = 0x320; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_vValueBelowMin = 0x478; // Vector + constexpr std::ptrdiff_t m_vValueAtMin = 0x484; // Vector + constexpr std::ptrdiff_t m_vValueAtMax = 0x490; // Vector + constexpr std::ptrdiff_t m_vValueAboveMax = 0x49C; // Vector +} + +namespace C_OP_RemapSDFGradientToVectorAttribute { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t +} + +namespace C_OP_RemapScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D4; // float + constexpr std::ptrdiff_t m_bOldCode = 0x1D8; // bool +} + +namespace C_OP_RemapScalarEndCap { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D4; // float +} + +namespace C_OP_RemapScalarOnceTimed { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_bProportional = 0x1C0; // bool + constexpr std::ptrdiff_t m_nFieldInput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_flRemapTime = 0x1DC; // float +} + +namespace C_OP_RemapSpeed { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C4; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1C8; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1D4; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bIgnoreDelta = 0x1D8; // bool +} + +namespace C_OP_RemapSpeedtoCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nInControlPointNumber = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nOutControlPointNumber = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nField = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_flInputMin = 0x1DC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1E0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1E4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1E8; // float + constexpr std::ptrdiff_t m_bUseDeltaV = 0x1EC; // bool +} + +namespace C_OP_RemapTransformOrientationToRotations { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_vecRotation = 0x228; // Vector + constexpr std::ptrdiff_t m_bUseQuat = 0x234; // bool + constexpr std::ptrdiff_t m_bWriteNormal = 0x235; // bool +} + +namespace C_OP_RemapTransformOrientationToYaw { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput + constexpr std::ptrdiff_t m_nFieldOutput = 0x228; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flRotOffset = 0x22C; // float + constexpr std::ptrdiff_t m_flSpinStrength = 0x230; // float +} + +namespace C_OP_RemapTransformToVelocity { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_TransformInput = 0x1C0; // CParticleTransformInput +} + +namespace C_OP_RemapTransformVisibilityToScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nSetMethod = 0x1C0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_TransformInput = 0x1C8; // CParticleTransformInput + constexpr std::ptrdiff_t m_nFieldOutput = 0x230; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x234; // float + constexpr std::ptrdiff_t m_flInputMax = 0x238; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x23C; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x240; // float + constexpr std::ptrdiff_t m_flRadius = 0x244; // float +} + +namespace C_OP_RemapTransformVisibilityToVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nSetMethod = 0x1C0; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_TransformInput = 0x1C8; // CParticleTransformInput + constexpr std::ptrdiff_t m_nFieldOutput = 0x230; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x234; // float + constexpr std::ptrdiff_t m_flInputMax = 0x238; // float + constexpr std::ptrdiff_t m_vecOutputMin = 0x23C; // Vector + constexpr std::ptrdiff_t m_vecOutputMax = 0x248; // Vector + constexpr std::ptrdiff_t m_flRadius = 0x254; // float +} + +namespace C_OP_RemapVectorComponentToScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nComponent = 0x1C8; // int32_t +} + +namespace C_OP_RemapVectortoCP { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nOutControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldInput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nParticleNumber = 0x1C8; // int32_t +} + +namespace C_OP_RemapVelocityToVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0x1C4; // float + constexpr std::ptrdiff_t m_bNormalize = 0x1C8; // bool +} + +namespace C_OP_RemapVisibilityScalar { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldInput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1C8; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1CC; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D4; // float + constexpr std::ptrdiff_t m_flRadiusScale = 0x1D8; // float +} + +namespace C_OP_RenderAsModels { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_ModelList = 0x200; // CUtlVector + constexpr std::ptrdiff_t m_flModelScale = 0x21C; // float + constexpr std::ptrdiff_t m_bFitToModelSize = 0x220; // bool + constexpr std::ptrdiff_t m_bNonUniformScaling = 0x221; // bool + constexpr std::ptrdiff_t m_nXAxisScalingAttribute = 0x224; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nYAxisScalingAttribute = 0x228; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nZAxisScalingAttribute = 0x22C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSizeCullBloat = 0x230; // int32_t +} + +namespace C_OP_RenderBlobs { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_cubeWidth = 0x200; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_cutoffRadius = 0x358; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_renderRadius = 0x4B0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nScaleCP = 0x608; // int32_t + constexpr std::ptrdiff_t m_MaterialVars = 0x610; // CUtlVector + constexpr std::ptrdiff_t m_hMaterial = 0x640; // CStrongHandle +} + +namespace C_OP_RenderCables { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flRadiusScale = 0x200; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flAlphaScale = 0x358; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_vecColorScale = 0x4B0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nColorBlendType = 0xB08; // ParticleColorBlendType_t + constexpr std::ptrdiff_t m_hMaterial = 0xB10; // CStrongHandle + constexpr std::ptrdiff_t m_nTextureRepetitionMode = 0xB18; // TextureRepetitionMode_t + constexpr std::ptrdiff_t m_flTextureRepeatsPerSegment = 0xB20; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flTextureRepeatsCircumference = 0xC78; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flColorMapOffsetV = 0xDD0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flColorMapOffsetU = 0xF28; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flNormalMapOffsetV = 0x1080; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flNormalMapOffsetU = 0x11D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bDrawCableCaps = 0x1330; // bool + constexpr std::ptrdiff_t m_flCapRoundness = 0x1334; // float + constexpr std::ptrdiff_t m_flCapOffsetAmount = 0x1338; // float + constexpr std::ptrdiff_t m_flTessScale = 0x133C; // float + constexpr std::ptrdiff_t m_nMinTesselation = 0x1340; // int32_t + constexpr std::ptrdiff_t m_nMaxTesselation = 0x1344; // int32_t + constexpr std::ptrdiff_t m_nRoundness = 0x1348; // int32_t + constexpr std::ptrdiff_t m_LightingTransform = 0x1350; // CParticleTransformInput + constexpr std::ptrdiff_t m_MaterialFloatVars = 0x13B8; // CUtlVector + constexpr std::ptrdiff_t m_MaterialVecVars = 0x13E8; // CUtlVector +} + +namespace C_OP_RenderClothForce { // CParticleFunctionRenderer +} + +namespace C_OP_RenderDeferredLight { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_bUseAlphaTestWindow = 0x200; // bool + constexpr std::ptrdiff_t m_bUseTexture = 0x201; // bool + constexpr std::ptrdiff_t m_flRadiusScale = 0x204; // float + constexpr std::ptrdiff_t m_flAlphaScale = 0x208; // float + constexpr std::ptrdiff_t m_nAlpha2Field = 0x20C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecColorScale = 0x210; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nColorBlendType = 0x868; // ParticleColorBlendType_t + constexpr std::ptrdiff_t m_flLightDistance = 0x86C; // float + constexpr std::ptrdiff_t m_flStartFalloff = 0x870; // float + constexpr std::ptrdiff_t m_flDistanceFalloff = 0x874; // float + constexpr std::ptrdiff_t m_flSpotFoV = 0x878; // float + constexpr std::ptrdiff_t m_nAlphaTestPointField = 0x87C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nAlphaTestRangeField = 0x880; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nAlphaTestSharpnessField = 0x884; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_hTexture = 0x888; // CStrongHandle + constexpr std::ptrdiff_t m_nHSVShiftControlPoint = 0x890; // int32_t +} + +namespace C_OP_RenderFlattenGrass { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flFlattenStrength = 0x200; // float + constexpr std::ptrdiff_t m_nStrengthFieldOverride = 0x204; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flRadiusScale = 0x208; // float +} + +namespace C_OP_RenderGpuImplicit { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_bUsePerParticleRadius = 0x200; // bool + constexpr std::ptrdiff_t m_fGridSize = 0x208; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_fRadiusScale = 0x360; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_fIsosurfaceThreshold = 0x4B8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nScaleCP = 0x610; // int32_t + constexpr std::ptrdiff_t m_hMaterial = 0x618; // CStrongHandle +} + +namespace C_OP_RenderLightBeam { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_vColorBlend = 0x200; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nColorBlendType = 0x858; // ParticleColorBlendType_t + constexpr std::ptrdiff_t m_flBrightnessLumensPerMeter = 0x860; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bCastShadows = 0x9B8; // bool + constexpr std::ptrdiff_t m_flSkirt = 0x9C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flRange = 0xB18; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flThickness = 0xC70; // CParticleCollectionFloatInput +} + +namespace C_OP_RenderLights { // C_OP_RenderPoints + constexpr std::ptrdiff_t m_flAnimationRate = 0x210; // float + constexpr std::ptrdiff_t m_nAnimationType = 0x214; // AnimationType_t + constexpr std::ptrdiff_t m_bAnimateInFPS = 0x218; // bool + constexpr std::ptrdiff_t m_flMinSize = 0x21C; // float + constexpr std::ptrdiff_t m_flMaxSize = 0x220; // float + constexpr std::ptrdiff_t m_flStartFadeSize = 0x224; // float + constexpr std::ptrdiff_t m_flEndFadeSize = 0x228; // float +} + +namespace C_OP_RenderMaterialProxy { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_nMaterialControlPoint = 0x200; // int32_t + constexpr std::ptrdiff_t m_nProxyType = 0x204; // MaterialProxyType_t + constexpr std::ptrdiff_t m_MaterialVars = 0x208; // CUtlVector + constexpr std::ptrdiff_t m_hOverrideMaterial = 0x220; // CStrongHandle + constexpr std::ptrdiff_t m_flMaterialOverrideEnabled = 0x228; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_vecColorScale = 0x380; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_flAlpha = 0x9D8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nColorBlendType = 0xB30; // ParticleColorBlendType_t +} + +namespace C_OP_RenderModels { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_bOnlyRenderInEffectsBloomPass = 0x200; // bool + constexpr std::ptrdiff_t m_bOnlyRenderInEffectsWaterPass = 0x201; // bool + constexpr std::ptrdiff_t m_bUseMixedResolutionRendering = 0x202; // bool + constexpr std::ptrdiff_t m_bOnlyRenderInEffecsGameOverlay = 0x203; // bool + constexpr std::ptrdiff_t m_ModelList = 0x208; // CUtlVector + constexpr std::ptrdiff_t m_nBodyGroupField = 0x224; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSubModelField = 0x228; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bIgnoreNormal = 0x22C; // bool + constexpr std::ptrdiff_t m_bOrientZ = 0x22D; // bool + constexpr std::ptrdiff_t m_bCenterOffset = 0x22E; // bool + constexpr std::ptrdiff_t m_vecLocalOffset = 0x230; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vecLocalRotation = 0x888; // CPerParticleVecInput + constexpr std::ptrdiff_t m_bIgnoreRadius = 0xEE0; // bool + constexpr std::ptrdiff_t m_nModelScaleCP = 0xEE4; // int32_t + constexpr std::ptrdiff_t m_vecComponentScale = 0xEE8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_bLocalScale = 0x1540; // bool + constexpr std::ptrdiff_t m_nSizeCullBloat = 0x1544; // int32_t + constexpr std::ptrdiff_t m_bAnimated = 0x1548; // bool + constexpr std::ptrdiff_t m_flAnimationRate = 0x154C; // float + constexpr std::ptrdiff_t m_bScaleAnimationRate = 0x1550; // bool + constexpr std::ptrdiff_t m_bForceLoopingAnimation = 0x1551; // bool + constexpr std::ptrdiff_t m_bResetAnimOnStop = 0x1552; // bool + constexpr std::ptrdiff_t m_bManualAnimFrame = 0x1553; // bool + constexpr std::ptrdiff_t m_nAnimationScaleField = 0x1554; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nAnimationField = 0x1558; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nManualFrameField = 0x155C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_ActivityName = 0x1560; // char[256] + constexpr std::ptrdiff_t m_SequenceName = 0x1660; // char[256] + constexpr std::ptrdiff_t m_bEnableClothSimulation = 0x1760; // bool + constexpr std::ptrdiff_t m_hOverrideMaterial = 0x1768; // CStrongHandle + constexpr std::ptrdiff_t m_bOverrideTranslucentMaterials = 0x1770; // bool + constexpr std::ptrdiff_t m_nSkin = 0x1778; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_MaterialVars = 0x18D0; // CUtlVector + constexpr std::ptrdiff_t m_modelInput = 0x18E8; // CParticleModelInput + constexpr std::ptrdiff_t m_nLOD = 0x1948; // int32_t + constexpr std::ptrdiff_t m_EconSlotName = 0x194C; // char[256] + constexpr std::ptrdiff_t m_bOriginalModel = 0x1A4C; // bool + constexpr std::ptrdiff_t m_bSuppressTint = 0x1A4D; // bool + constexpr std::ptrdiff_t m_bUseRawMeshGroup = 0x1A4E; // bool + constexpr std::ptrdiff_t m_bDisableShadows = 0x1A4F; // bool + constexpr std::ptrdiff_t m_bAcceptsDecals = 0x1A50; // bool + constexpr std::ptrdiff_t m_bForceDrawInterlevedWithSiblings = 0x1A51; // bool + constexpr std::ptrdiff_t m_bDoNotDrawInParticlePass = 0x1A52; // bool + constexpr std::ptrdiff_t m_szRenderAttribute = 0x1A53; // char[260] + constexpr std::ptrdiff_t m_flRadiusScale = 0x1B58; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flAlphaScale = 0x1CB0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flRollScale = 0x1E08; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nAlpha2Field = 0x1F60; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecColorScale = 0x1F68; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nColorBlendType = 0x25C0; // ParticleColorBlendType_t +} + +namespace C_OP_RenderOmni2Light { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_nLightType = 0x200; // ParticleOmni2LightTypeChoiceList_t + constexpr std::ptrdiff_t m_vColorBlend = 0x208; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nColorBlendType = 0x860; // ParticleColorBlendType_t + constexpr std::ptrdiff_t m_nBrightnessUnit = 0x864; // ParticleLightUnitChoiceList_t + constexpr std::ptrdiff_t m_flBrightnessLumens = 0x868; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flBrightnessCandelas = 0x9C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bCastShadows = 0xB18; // bool + constexpr std::ptrdiff_t m_flLuminaireRadius = 0xB20; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flSkirt = 0xC78; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRange = 0xDD0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInnerConeAngle = 0xF28; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flOuterConeAngle = 0x1080; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_hLightCookie = 0x11D8; // CStrongHandle + constexpr std::ptrdiff_t m_bSphericalCookie = 0x11E0; // bool +} + +namespace C_OP_RenderPoints { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_hMaterial = 0x200; // CStrongHandle +} + +namespace C_OP_RenderPostProcessing { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flPostProcessStrength = 0x200; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_hPostTexture = 0x358; // CStrongHandle + constexpr std::ptrdiff_t m_nPriority = 0x360; // ParticlePostProcessPriorityGroup_t +} + +namespace C_OP_RenderProjected { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_bProjectCharacter = 0x200; // bool + constexpr std::ptrdiff_t m_bProjectWorld = 0x201; // bool + constexpr std::ptrdiff_t m_bProjectWater = 0x202; // bool + constexpr std::ptrdiff_t m_bFlipHorizontal = 0x203; // bool + constexpr std::ptrdiff_t m_bEnableProjectedDepthControls = 0x204; // bool + constexpr std::ptrdiff_t m_flMinProjectionDepth = 0x208; // float + constexpr std::ptrdiff_t m_flMaxProjectionDepth = 0x20C; // float + constexpr std::ptrdiff_t m_hProjectedMaterial = 0x210; // CStrongHandle + constexpr std::ptrdiff_t m_flAnimationTimeScale = 0x218; // float + constexpr std::ptrdiff_t m_bOrientToNormal = 0x21C; // bool + constexpr std::ptrdiff_t m_MaterialVars = 0x220; // CUtlVector +} + +namespace C_OP_RenderRopes { // CBaseRendererSource2 + constexpr std::ptrdiff_t m_bEnableFadingAndClamping = 0x2470; // bool + constexpr std::ptrdiff_t m_flMinSize = 0x2474; // float + constexpr std::ptrdiff_t m_flMaxSize = 0x2478; // float + constexpr std::ptrdiff_t m_flStartFadeSize = 0x247C; // float + constexpr std::ptrdiff_t m_flEndFadeSize = 0x2480; // float + constexpr std::ptrdiff_t m_flStartFadeDot = 0x2484; // float + constexpr std::ptrdiff_t m_flEndFadeDot = 0x2488; // float + constexpr std::ptrdiff_t m_flRadiusTaper = 0x248C; // float + constexpr std::ptrdiff_t m_nMinTesselation = 0x2490; // int32_t + constexpr std::ptrdiff_t m_nMaxTesselation = 0x2494; // int32_t + constexpr std::ptrdiff_t m_flTessScale = 0x2498; // float + constexpr std::ptrdiff_t m_flTextureVWorldSize = 0x24A0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flTextureVScrollRate = 0x25F8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flTextureVOffset = 0x2750; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nTextureVParamsCP = 0x28A8; // int32_t + constexpr std::ptrdiff_t m_bClampV = 0x28AC; // bool + constexpr std::ptrdiff_t m_nScaleCP1 = 0x28B0; // int32_t + constexpr std::ptrdiff_t m_nScaleCP2 = 0x28B4; // int32_t + constexpr std::ptrdiff_t m_flScaleVSizeByControlPointDistance = 0x28B8; // float + constexpr std::ptrdiff_t m_flScaleVScrollByControlPointDistance = 0x28BC; // float + constexpr std::ptrdiff_t m_flScaleVOffsetByControlPointDistance = 0x28C0; // float + constexpr std::ptrdiff_t m_bUseScalarForTextureCoordinate = 0x28C5; // bool + constexpr std::ptrdiff_t m_nScalarFieldForTextureCoordinate = 0x28C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScalarAttributeTextureCoordScale = 0x28CC; // float + constexpr std::ptrdiff_t m_bReverseOrder = 0x28D0; // bool + constexpr std::ptrdiff_t m_bClosedLoop = 0x28D1; // bool + constexpr std::ptrdiff_t m_nOrientationType = 0x28D4; // ParticleOrientationChoiceList_t + constexpr std::ptrdiff_t m_nVectorFieldForOrientation = 0x28D8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bDrawAsOpaque = 0x28DC; // bool + constexpr std::ptrdiff_t m_bGenerateNormals = 0x28DD; // bool +} + +namespace C_OP_RenderScreenShake { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flDurationScale = 0x200; // float + constexpr std::ptrdiff_t m_flRadiusScale = 0x204; // float + constexpr std::ptrdiff_t m_flFrequencyScale = 0x208; // float + constexpr std::ptrdiff_t m_flAmplitudeScale = 0x20C; // float + constexpr std::ptrdiff_t m_nRadiusField = 0x210; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nDurationField = 0x214; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFrequencyField = 0x218; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nAmplitudeField = 0x21C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFilterCP = 0x220; // int32_t +} + +namespace C_OP_RenderScreenVelocityRotate { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flRotateRateDegrees = 0x200; // float + constexpr std::ptrdiff_t m_flForwardDegrees = 0x204; // float +} + +namespace C_OP_RenderSound { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flDurationScale = 0x200; // float + constexpr std::ptrdiff_t m_flSndLvlScale = 0x204; // float + constexpr std::ptrdiff_t m_flPitchScale = 0x208; // float + constexpr std::ptrdiff_t m_flVolumeScale = 0x20C; // float + constexpr std::ptrdiff_t m_nSndLvlField = 0x210; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nDurationField = 0x214; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nPitchField = 0x218; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nVolumeField = 0x21C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nChannel = 0x220; // int32_t + constexpr std::ptrdiff_t m_nCPReference = 0x224; // int32_t + constexpr std::ptrdiff_t m_pszSoundName = 0x228; // char[256] + constexpr std::ptrdiff_t m_bSuppressStopSoundEvent = 0x328; // bool +} + +namespace C_OP_RenderSprites { // CBaseRendererSource2 + constexpr std::ptrdiff_t m_nSequenceOverride = 0x2470; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nOrientationType = 0x25C8; // ParticleOrientationChoiceList_t + constexpr std::ptrdiff_t m_nOrientationControlPoint = 0x25CC; // int32_t + constexpr std::ptrdiff_t m_bUseYawWithNormalAligned = 0x25D0; // bool + constexpr std::ptrdiff_t m_flMinSize = 0x25D4; // float + constexpr std::ptrdiff_t m_flMaxSize = 0x25D8; // float + constexpr std::ptrdiff_t m_flAlphaAdjustWithSizeAdjust = 0x25DC; // float + constexpr std::ptrdiff_t m_flStartFadeSize = 0x25E0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flEndFadeSize = 0x2738; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flStartFadeDot = 0x2890; // float + constexpr std::ptrdiff_t m_flEndFadeDot = 0x2894; // float + constexpr std::ptrdiff_t m_bDistanceAlpha = 0x2898; // bool + constexpr std::ptrdiff_t m_bSoftEdges = 0x2899; // bool + constexpr std::ptrdiff_t m_flEdgeSoftnessStart = 0x289C; // float + constexpr std::ptrdiff_t m_flEdgeSoftnessEnd = 0x28A0; // float + constexpr std::ptrdiff_t m_bOutline = 0x28A4; // bool + constexpr std::ptrdiff_t m_OutlineColor = 0x28A5; // Color + constexpr std::ptrdiff_t m_nOutlineAlpha = 0x28AC; // int32_t + constexpr std::ptrdiff_t m_flOutlineStart0 = 0x28B0; // float + constexpr std::ptrdiff_t m_flOutlineStart1 = 0x28B4; // float + constexpr std::ptrdiff_t m_flOutlineEnd0 = 0x28B8; // float + constexpr std::ptrdiff_t m_flOutlineEnd1 = 0x28BC; // float + constexpr std::ptrdiff_t m_nLightingMode = 0x28C0; // ParticleLightingQuality_t + constexpr std::ptrdiff_t m_flLightingTessellation = 0x28C8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flLightingDirectionality = 0x2A20; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_bParticleShadows = 0x2B78; // bool + constexpr std::ptrdiff_t m_flShadowDensity = 0x2B7C; // float +} + +namespace C_OP_RenderStandardLight { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_nLightType = 0x200; // ParticleLightTypeChoiceList_t + constexpr std::ptrdiff_t m_vecColorScale = 0x208; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_nColorBlendType = 0x860; // ParticleColorBlendType_t + constexpr std::ptrdiff_t m_flIntensity = 0x868; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bCastShadows = 0x9C0; // bool + constexpr std::ptrdiff_t m_flTheta = 0x9C8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flPhi = 0xB20; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flRadiusMultiplier = 0xC78; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nAttenuationStyle = 0xDD0; // StandardLightingAttenuationStyle_t + constexpr std::ptrdiff_t m_flFalloffLinearity = 0xDD8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flFiftyPercentFalloff = 0xF30; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flZeroPercentFalloff = 0x1088; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bRenderDiffuse = 0x11E0; // bool + constexpr std::ptrdiff_t m_bRenderSpecular = 0x11E1; // bool + constexpr std::ptrdiff_t m_lightCookie = 0x11E8; // CUtlString + constexpr std::ptrdiff_t m_nPriority = 0x11F0; // int32_t + constexpr std::ptrdiff_t m_nFogLightingMode = 0x11F4; // ParticleLightFogLightingMode_t + constexpr std::ptrdiff_t m_flFogContribution = 0x11F8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_nCapsuleLightBehavior = 0x1350; // ParticleLightBehaviorChoiceList_t + constexpr std::ptrdiff_t m_flCapsuleLength = 0x1354; // float + constexpr std::ptrdiff_t m_bReverseOrder = 0x1358; // bool + constexpr std::ptrdiff_t m_bClosedLoop = 0x1359; // bool + constexpr std::ptrdiff_t m_nPrevPntSource = 0x135C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flMaxLength = 0x1360; // float + constexpr std::ptrdiff_t m_flMinLength = 0x1364; // float + constexpr std::ptrdiff_t m_bIgnoreDT = 0x1368; // bool + constexpr std::ptrdiff_t m_flConstrainRadiusToLengthRatio = 0x136C; // float + constexpr std::ptrdiff_t m_flLengthScale = 0x1370; // float + constexpr std::ptrdiff_t m_flLengthFadeInTime = 0x1374; // float +} + +namespace C_OP_RenderStatusEffect { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_pTextureColorWarp = 0x200; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureDetail2 = 0x208; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureDiffuseWarp = 0x210; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureFresnelColorWarp = 0x218; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureFresnelWarp = 0x220; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureSpecularWarp = 0x228; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureEnvMap = 0x230; // CStrongHandle +} + +namespace C_OP_RenderStatusEffectCitadel { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_pTextureColorWarp = 0x200; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureNormal = 0x208; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureMetalness = 0x210; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureRoughness = 0x218; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureSelfIllum = 0x220; // CStrongHandle + constexpr std::ptrdiff_t m_pTextureDetail = 0x228; // CStrongHandle +} + +namespace C_OP_RenderText { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_OutlineColor = 0x200; // Color + constexpr std::ptrdiff_t m_DefaultText = 0x208; // CUtlString +} + +namespace C_OP_RenderTonemapController { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flTonemapLevel = 0x200; // float + constexpr std::ptrdiff_t m_flTonemapWeight = 0x204; // float + constexpr std::ptrdiff_t m_nTonemapLevelField = 0x208; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nTonemapWeightField = 0x20C; // ParticleAttributeIndex_t +} + +namespace C_OP_RenderTrails { // CBaseTrailRenderer + constexpr std::ptrdiff_t m_bEnableFadingAndClamping = 0x2740; // bool + constexpr std::ptrdiff_t m_flStartFadeDot = 0x2744; // float + constexpr std::ptrdiff_t m_flEndFadeDot = 0x2748; // float + constexpr std::ptrdiff_t m_nPrevPntSource = 0x274C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flMaxLength = 0x2750; // float + constexpr std::ptrdiff_t m_flMinLength = 0x2754; // float + constexpr std::ptrdiff_t m_bIgnoreDT = 0x2758; // bool + constexpr std::ptrdiff_t m_flConstrainRadiusToLengthRatio = 0x275C; // float + constexpr std::ptrdiff_t m_flLengthScale = 0x2760; // float + constexpr std::ptrdiff_t m_flLengthFadeInTime = 0x2764; // float + constexpr std::ptrdiff_t m_flRadiusHeadTaper = 0x2768; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecHeadColorScale = 0x28C0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_flHeadAlphaScale = 0x2F18; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRadiusTaper = 0x3070; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecTailColorScale = 0x31C8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_flTailAlphaScale = 0x3820; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nHorizCropField = 0x3978; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nVertCropField = 0x397C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flForwardShift = 0x3980; // float + constexpr std::ptrdiff_t m_bFlipUVBasedOnPitchYaw = 0x3984; // bool +} + +namespace C_OP_RenderTreeShake { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_flPeakStrength = 0x200; // float + constexpr std::ptrdiff_t m_nPeakStrengthFieldOverride = 0x204; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flRadius = 0x208; // float + constexpr std::ptrdiff_t m_nRadiusFieldOverride = 0x20C; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flShakeDuration = 0x210; // float + constexpr std::ptrdiff_t m_flTransitionTime = 0x214; // float + constexpr std::ptrdiff_t m_flTwistAmount = 0x218; // float + constexpr std::ptrdiff_t m_flRadialAmount = 0x21C; // float + constexpr std::ptrdiff_t m_flControlPointOrientationAmount = 0x220; // float + constexpr std::ptrdiff_t m_nControlPointForLinearDirection = 0x224; // int32_t +} + +namespace C_OP_RenderVRHapticEvent { // CParticleFunctionRenderer + constexpr std::ptrdiff_t m_nHand = 0x200; // ParticleVRHandChoiceList_t + constexpr std::ptrdiff_t m_nOutputHandCP = 0x204; // int32_t + constexpr std::ptrdiff_t m_nOutputField = 0x208; // int32_t + constexpr std::ptrdiff_t m_flAmplitude = 0x210; // CPerParticleFloatInput +} + +namespace C_OP_RepeatedTriggerChildGroup { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nChildGroupID = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_flClusterRefireTime = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flClusterSize = 0x330; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flClusterCooldown = 0x488; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bLimitChildCount = 0x5E0; // bool +} + +namespace C_OP_RestartAfterDuration { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flDurationMin = 0x1C0; // float + constexpr std::ptrdiff_t m_flDurationMax = 0x1C4; // float + constexpr std::ptrdiff_t m_nCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nCPField = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_nChildGroupID = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_bOnlyChildren = 0x1D4; // bool +} + +namespace C_OP_RopeSpringConstraint { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_flRestLength = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flMinDistance = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flMaxDistance = 0x470; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flAdjustmentScale = 0x5C8; // float + constexpr std::ptrdiff_t m_flInitialRestingLength = 0x5D0; // CParticleCollectionFloatInput +} + +namespace C_OP_RotateVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecRotAxisMin = 0x1C4; // Vector + constexpr std::ptrdiff_t m_vecRotAxisMax = 0x1D0; // Vector + constexpr std::ptrdiff_t m_flRotRateMin = 0x1DC; // float + constexpr std::ptrdiff_t m_flRotRateMax = 0x1E0; // float + constexpr std::ptrdiff_t m_bNormalize = 0x1E4; // bool + constexpr std::ptrdiff_t m_flScale = 0x1E8; // CPerParticleFloatInput +} + +namespace C_OP_RtEnvCull { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_vecTestDir = 0x1C0; // Vector + constexpr std::ptrdiff_t m_vecTestNormal = 0x1CC; // Vector + constexpr std::ptrdiff_t m_bCullOnMiss = 0x1D8; // bool + constexpr std::ptrdiff_t m_bStickInsteadOfCull = 0x1D9; // bool + constexpr std::ptrdiff_t m_RtEnvName = 0x1DA; // char[128] + constexpr std::ptrdiff_t m_nRTEnvCP = 0x25C; // int32_t + constexpr std::ptrdiff_t m_nComponent = 0x260; // int32_t +} + +namespace C_OP_SDFConstraint { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_flMinDist = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flMaxDist = 0x318; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nMaxIterations = 0x470; // int32_t +} + +namespace C_OP_SDFForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flForceScale = 0x1D0; // float +} + +namespace C_OP_SDFLighting { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_vLightingDir = 0x1C0; // Vector + constexpr std::ptrdiff_t m_vTint_0 = 0x1CC; // Vector + constexpr std::ptrdiff_t m_vTint_1 = 0x1D8; // Vector +} + +namespace C_OP_SelectivelyEnableChildren { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nChildGroupID = 0x1D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nFirstChild = 0x328; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nNumChildrenToEnable = 0x480; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bPlayEndcapOnStop = 0x5D8; // bool + constexpr std::ptrdiff_t m_bDestroyImmediately = 0x5D9; // bool +} + +namespace C_OP_SequenceFromModel { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nFieldOutputAnim = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flInputMin = 0x1CC; // float + constexpr std::ptrdiff_t m_flInputMax = 0x1D0; // float + constexpr std::ptrdiff_t m_flOutputMin = 0x1D4; // float + constexpr std::ptrdiff_t m_flOutputMax = 0x1D8; // float + constexpr std::ptrdiff_t m_nSetMethod = 0x1DC; // ParticleSetMethod_t +} + +namespace C_OP_SetAttributeToScalarExpression { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nExpression = 0x1C0; // ScalarExpressionType_t + constexpr std::ptrdiff_t m_flInput1 = 0x1C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flInput2 = 0x320; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0x478; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0x47C; // ParticleSetMethod_t +} + +namespace C_OP_SetCPOrientationToDirection { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nInputControlPoint = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nOutputControlPoint = 0x1C4; // int32_t +} + +namespace C_OP_SetCPOrientationToGroundNormal { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flInterpRate = 0x1C0; // float + constexpr std::ptrdiff_t m_flMaxTraceLength = 0x1C4; // float + constexpr std::ptrdiff_t m_flTolerance = 0x1C8; // float + constexpr std::ptrdiff_t m_flTraceOffset = 0x1CC; // float + constexpr std::ptrdiff_t m_CollisionGroupName = 0x1D0; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x250; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_nInputCP = 0x254; // int32_t + constexpr std::ptrdiff_t m_nOutputCP = 0x258; // int32_t + constexpr std::ptrdiff_t m_bIncludeWater = 0x268; // bool +} + +namespace C_OP_SetCPOrientationToPointAtCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nInputCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nOutputCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_flInterpolation = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_b2DOrientation = 0x330; // bool + constexpr std::ptrdiff_t m_bAvoidSingularity = 0x331; // bool + constexpr std::ptrdiff_t m_bPointAway = 0x332; // bool +} + +namespace C_OP_SetCPtoVector { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCPInput = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C4; // ParticleAttributeIndex_t +} + +namespace C_OP_SetChildControlPoints { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nChildGroupID = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFirstControlPoint = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nNumControlPoints = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nFirstSourcePoint = 0x1D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bReverse = 0x328; // bool + constexpr std::ptrdiff_t m_bSetOrientation = 0x329; // bool +} + +namespace C_OP_SetControlPointFieldFromVectorExpression { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nExpression = 0x1D0; // VectorFloatExpressionType_t + constexpr std::ptrdiff_t m_vecInput1 = 0x1D8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_vecInput2 = 0x830; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_flOutputRemap = 0xE88; // CParticleRemapFloatInput + constexpr std::ptrdiff_t m_nOutputCP = 0xFE0; // int32_t + constexpr std::ptrdiff_t m_nOutVectorField = 0xFE4; // int32_t +} + +namespace C_OP_SetControlPointFieldToScalarExpression { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nExpression = 0x1D0; // ScalarExpressionType_t + constexpr std::ptrdiff_t m_flInput1 = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInput2 = 0x330; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flOutputRemap = 0x488; // CParticleRemapFloatInput + constexpr std::ptrdiff_t m_nOutputCP = 0x5E0; // int32_t + constexpr std::ptrdiff_t m_nOutVectorField = 0x5E4; // int32_t +} + +namespace C_OP_SetControlPointFieldToWater { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nSourceCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nDestCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nCPField = 0x1D8; // int32_t +} + +namespace C_OP_SetControlPointFromObjectScale { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCPInput = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPOutput = 0x1D4; // int32_t +} + +namespace C_OP_SetControlPointOrientation { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_bUseWorldLocation = 0x1D0; // bool + constexpr std::ptrdiff_t m_bRandomize = 0x1D2; // bool + constexpr std::ptrdiff_t m_bSetOnce = 0x1D3; // bool + constexpr std::ptrdiff_t m_nCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nHeadLocation = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_vecRotation = 0x1DC; // QAngle + constexpr std::ptrdiff_t m_vecRotationB = 0x1E8; // QAngle + constexpr std::ptrdiff_t m_flInterpolation = 0x1F8; // CParticleCollectionFloatInput +} + +namespace C_OP_SetControlPointOrientationToCPVelocity { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCPInput = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPOutput = 0x1D4; // int32_t +} + +namespace C_OP_SetControlPointPositionToRandomActiveCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCP1 = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nHeadLocationMin = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nHeadLocationMax = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_flResetRate = 0x1E0; // CParticleCollectionFloatInput +} + +namespace C_OP_SetControlPointPositionToTimeOfDayValue { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_pszTimeOfDayParameter = 0x1D4; // char[128] + constexpr std::ptrdiff_t m_vecDefaultValue = 0x254; // Vector +} + +namespace C_OP_SetControlPointPositions { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_bUseWorldLocation = 0x1D0; // bool + constexpr std::ptrdiff_t m_bOrient = 0x1D1; // bool + constexpr std::ptrdiff_t m_bSetOnce = 0x1D2; // bool + constexpr std::ptrdiff_t m_nCP1 = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nCP2 = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nCP3 = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_nCP4 = 0x1E0; // int32_t + constexpr std::ptrdiff_t m_vecCP1Pos = 0x1E4; // Vector + constexpr std::ptrdiff_t m_vecCP2Pos = 0x1F0; // Vector + constexpr std::ptrdiff_t m_vecCP3Pos = 0x1FC; // Vector + constexpr std::ptrdiff_t m_vecCP4Pos = 0x208; // Vector + constexpr std::ptrdiff_t m_nHeadLocation = 0x214; // int32_t +} + +namespace C_OP_SetControlPointRotation { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_vecRotAxis = 0x1D0; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_flRotRate = 0x828; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nCP = 0x980; // int32_t + constexpr std::ptrdiff_t m_nLocalCP = 0x984; // int32_t +} + +namespace C_OP_SetControlPointToCPVelocity { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCPInput = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPOutputVel = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_bNormalize = 0x1D8; // bool + constexpr std::ptrdiff_t m_nCPOutputMag = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_nCPField = 0x1E0; // int32_t + constexpr std::ptrdiff_t m_vecComparisonVelocity = 0x1E8; // CParticleCollectionVecInput +} + +namespace C_OP_SetControlPointToCenter { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCP1 = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_vecCP1Pos = 0x1D4; // Vector + constexpr std::ptrdiff_t m_nSetParent = 0x1E0; // ParticleParentSetMode_t +} + +namespace C_OP_SetControlPointToHMD { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCP1 = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_vecCP1Pos = 0x1D4; // Vector + constexpr std::ptrdiff_t m_bOrientToHMD = 0x1E0; // bool +} + +namespace C_OP_SetControlPointToHand { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCP1 = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nHand = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_vecCP1Pos = 0x1D8; // Vector + constexpr std::ptrdiff_t m_bOrientToHand = 0x1E4; // bool +} + +namespace C_OP_SetControlPointToImpactPoint { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCPOut = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPIn = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_flUpdateRate = 0x1D8; // float + constexpr std::ptrdiff_t m_flTraceLength = 0x1E0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flStartOffset = 0x338; // float + constexpr std::ptrdiff_t m_flOffset = 0x33C; // float + constexpr std::ptrdiff_t m_vecTraceDir = 0x340; // Vector + constexpr std::ptrdiff_t m_CollisionGroupName = 0x34C; // char[128] + constexpr std::ptrdiff_t m_nTraceSet = 0x3CC; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_bSetToEndpoint = 0x3D0; // bool + constexpr std::ptrdiff_t m_bTraceToClosestSurface = 0x3D1; // bool + constexpr std::ptrdiff_t m_bIncludeWater = 0x3D2; // bool +} + +namespace C_OP_SetControlPointToPlayer { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCP1 = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_vecCP1Pos = 0x1D4; // Vector + constexpr std::ptrdiff_t m_bOrientToEyes = 0x1E0; // bool +} + +namespace C_OP_SetControlPointToVectorExpression { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nExpression = 0x1D0; // VectorExpressionType_t + constexpr std::ptrdiff_t m_nOutputCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_vInput1 = 0x1D8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_vInput2 = 0x830; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_bNormalizedOutput = 0xE88; // bool +} + +namespace C_OP_SetControlPointToWaterSurface { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nSourceCP = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nDestCP = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nFlowCP = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nActiveCP = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_nActiveCPField = 0x1E0; // int32_t + constexpr std::ptrdiff_t m_flRetestRate = 0x1E8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bAdaptiveThreshold = 0x340; // bool +} + +namespace C_OP_SetControlPointsToModelParticles { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_HitboxSetName = 0x1C0; // char[128] + constexpr std::ptrdiff_t m_AttachmentName = 0x240; // char[128] + constexpr std::ptrdiff_t m_nFirstControlPoint = 0x2C0; // int32_t + constexpr std::ptrdiff_t m_nNumControlPoints = 0x2C4; // int32_t + constexpr std::ptrdiff_t m_nFirstSourcePoint = 0x2C8; // int32_t + constexpr std::ptrdiff_t m_bSkin = 0x2CC; // bool + constexpr std::ptrdiff_t m_bAttachment = 0x2CD; // bool +} + +namespace C_OP_SetControlPointsToParticle { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nChildGroupID = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFirstControlPoint = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nNumControlPoints = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nFirstSourcePoint = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_bSetOrientation = 0x1D0; // bool + constexpr std::ptrdiff_t m_nOrientationMode = 0x1D4; // ParticleOrientationSetMode_t + constexpr std::ptrdiff_t m_nSetParent = 0x1D8; // ParticleParentSetMode_t +} + +namespace C_OP_SetFloat { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0x318; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0x31C; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_Lerp = 0x320; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bUseNewCode = 0x478; // bool +} + +namespace C_OP_SetFloatAttributeToVectorExpression { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nExpression = 0x1C0; // VectorFloatExpressionType_t + constexpr std::ptrdiff_t m_vInput1 = 0x1C8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vInput2 = 0x820; // CPerParticleVecInput + constexpr std::ptrdiff_t m_flOutputRemap = 0xE78; // CParticleRemapFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0xFD0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0xFD4; // ParticleSetMethod_t +} + +namespace C_OP_SetFloatCollection { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nOutputField = 0x318; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0x31C; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_Lerp = 0x320; // CParticleCollectionFloatInput +} + +namespace C_OP_SetFromCPSnapshot { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nAttributeToRead = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nAttributeToWrite = 0x1C8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nLocalSpaceCP = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_bRandom = 0x1D0; // bool + constexpr std::ptrdiff_t m_bReverse = 0x1D1; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nSnapShotStartPoint = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nSnapShotIncrement = 0x330; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_flInterpolation = 0x488; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bSubSample = 0x5E0; // bool +} + +namespace C_OP_SetGravityToCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nCPInput = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPOutput = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_flScale = 0x1D8; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bSetOrientation = 0x330; // bool + constexpr std::ptrdiff_t m_bSetZDown = 0x331; // bool +} + +namespace C_OP_SetParentControlPointsToChildCP { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_nChildGroupID = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nChildControlPoint = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nNumControlPoints = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_nFirstSourcePoint = 0x1DC; // int32_t + constexpr std::ptrdiff_t m_bSetOrientation = 0x1E0; // bool +} + +namespace C_OP_SetPerChildControlPoint { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nChildGroupID = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFirstControlPoint = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nNumControlPoints = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nParticleIncrement = 0x1D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_nFirstSourcePoint = 0x328; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bSetOrientation = 0x480; // bool + constexpr std::ptrdiff_t m_nOrientationField = 0x484; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_bNumBasedOnParticleCount = 0x488; // bool +} + +namespace C_OP_SetPerChildControlPointFromAttribute { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nChildGroupID = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nFirstControlPoint = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nNumControlPoints = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nParticleIncrement = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_nFirstSourcePoint = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_bNumBasedOnParticleCount = 0x1D4; // bool + constexpr std::ptrdiff_t m_nAttributeToRead = 0x1D8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nCPField = 0x1DC; // int32_t +} + +namespace C_OP_SetRandomControlPointPosition { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_bUseWorldLocation = 0x1D0; // bool + constexpr std::ptrdiff_t m_bOrient = 0x1D1; // bool + constexpr std::ptrdiff_t m_nCP1 = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_nHeadLocation = 0x1D8; // int32_t + constexpr std::ptrdiff_t m_flReRandomRate = 0x1E0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_vecCPMinPos = 0x338; // Vector + constexpr std::ptrdiff_t m_vecCPMaxPos = 0x344; // Vector + constexpr std::ptrdiff_t m_flInterpolation = 0x350; // CParticleCollectionFloatInput +} + +namespace C_OP_SetSimulationRate { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_flSimulationScale = 0x1D0; // CParticleCollectionFloatInput +} + +namespace C_OP_SetSingleControlPointPosition { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_bSetOnce = 0x1D0; // bool + constexpr std::ptrdiff_t m_nCP1 = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_vecCP1Pos = 0x1D8; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_transformInput = 0x830; // CParticleTransformInput +} + +namespace C_OP_SetToCP { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_vecOffset = 0x1C4; // Vector + constexpr std::ptrdiff_t m_bOffsetLocal = 0x1D0; // bool +} + +namespace C_OP_SetVariable { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_variableReference = 0x1D0; // CParticleVariableRef + constexpr std::ptrdiff_t m_transformInput = 0x210; // CParticleTransformInput + constexpr std::ptrdiff_t m_positionOffset = 0x278; // Vector + constexpr std::ptrdiff_t m_rotationOffset = 0x284; // QAngle + constexpr std::ptrdiff_t m_vecInput = 0x290; // CParticleCollectionVecInput + constexpr std::ptrdiff_t m_floatInput = 0x8E8; // CParticleCollectionFloatInput +} + +namespace C_OP_SetVec { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_InputValue = 0x1C0; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nOutputField = 0x818; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0x81C; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_Lerp = 0x820; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bNormalizedOutput = 0x978; // bool +} + +namespace C_OP_SetVectorAttributeToVectorExpression { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nExpression = 0x1C0; // VectorExpressionType_t + constexpr std::ptrdiff_t m_vInput1 = 0x1C8; // CPerParticleVecInput + constexpr std::ptrdiff_t m_vInput2 = 0x820; // CPerParticleVecInput + constexpr std::ptrdiff_t m_nOutputField = 0xE78; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nSetMethod = 0xE7C; // ParticleSetMethod_t + constexpr std::ptrdiff_t m_bNormalizedOutput = 0xE80; // bool +} + +namespace C_OP_ShapeMatchingConstraint { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_flShapeRestorationTime = 0x1C0; // float +} + +namespace C_OP_SnapshotRigidSkinToBones { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_bTransformNormals = 0x1C0; // bool + constexpr std::ptrdiff_t m_bTransformRadii = 0x1C1; // bool + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C4; // int32_t +} + +namespace C_OP_SnapshotSkinToBones { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_bTransformNormals = 0x1C0; // bool + constexpr std::ptrdiff_t m_bTransformRadii = 0x1C1; // bool + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_flLifeTimeFadeStart = 0x1C8; // float + constexpr std::ptrdiff_t m_flLifeTimeFadeEnd = 0x1CC; // float + constexpr std::ptrdiff_t m_flJumpThreshold = 0x1D0; // float + constexpr std::ptrdiff_t m_flPrevPosScale = 0x1D4; // float +} + +namespace C_OP_Spin { // CGeneralSpin +} + +namespace C_OP_SpinUpdate { // CSpinUpdateBase +} + +namespace C_OP_SpinYaw { // CGeneralSpin +} + +namespace C_OP_SpringToVectorConstraint { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_flRestLength = 0x1C0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flMinDistance = 0x318; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flMaxDistance = 0x470; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRestingLength = 0x5C8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecAnchorVector = 0x720; // CPerParticleVecInput +} + +namespace C_OP_StopAfterCPDuration { // CParticleFunctionPreEmission + constexpr std::ptrdiff_t m_flDuration = 0x1D0; // CParticleCollectionFloatInput + constexpr std::ptrdiff_t m_bDestroyImmediately = 0x328; // bool + constexpr std::ptrdiff_t m_bPlayEndCap = 0x329; // bool +} + +namespace C_OP_TeleportBeam { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nCPPosition = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nCPVelocity = 0x1C4; // int32_t + constexpr std::ptrdiff_t m_nCPMisc = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_nCPColor = 0x1CC; // int32_t + constexpr std::ptrdiff_t m_nCPInvalidColor = 0x1D0; // int32_t + constexpr std::ptrdiff_t m_nCPExtraArcData = 0x1D4; // int32_t + constexpr std::ptrdiff_t m_vGravity = 0x1D8; // Vector + constexpr std::ptrdiff_t m_flArcMaxDuration = 0x1E4; // float + constexpr std::ptrdiff_t m_flSegmentBreak = 0x1E8; // float + constexpr std::ptrdiff_t m_flArcSpeed = 0x1EC; // float + constexpr std::ptrdiff_t m_flAlpha = 0x1F0; // float +} + +namespace C_OP_TimeVaryingForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flStartLerpTime = 0x1D0; // float + constexpr std::ptrdiff_t m_StartingForce = 0x1D4; // Vector + constexpr std::ptrdiff_t m_flEndLerpTime = 0x1E0; // float + constexpr std::ptrdiff_t m_EndingForce = 0x1E4; // Vector +} + +namespace C_OP_TurbulenceForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_flNoiseCoordScale0 = 0x1D0; // float + constexpr std::ptrdiff_t m_flNoiseCoordScale1 = 0x1D4; // float + constexpr std::ptrdiff_t m_flNoiseCoordScale2 = 0x1D8; // float + constexpr std::ptrdiff_t m_flNoiseCoordScale3 = 0x1DC; // float + constexpr std::ptrdiff_t m_vecNoiseAmount0 = 0x1E0; // Vector + constexpr std::ptrdiff_t m_vecNoiseAmount1 = 0x1EC; // Vector + constexpr std::ptrdiff_t m_vecNoiseAmount2 = 0x1F8; // Vector + constexpr std::ptrdiff_t m_vecNoiseAmount3 = 0x204; // Vector +} + +namespace C_OP_TwistAroundAxis { // CParticleFunctionForce + constexpr std::ptrdiff_t m_fForceAmount = 0x1D0; // float + constexpr std::ptrdiff_t m_TwistAxis = 0x1D4; // Vector + constexpr std::ptrdiff_t m_bLocalSpace = 0x1E0; // bool + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1E4; // int32_t +} + +namespace C_OP_UpdateLightSource { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_vColorTint = 0x1C0; // Color + constexpr std::ptrdiff_t m_flBrightnessScale = 0x1C4; // float + constexpr std::ptrdiff_t m_flRadiusScale = 0x1C8; // float + constexpr std::ptrdiff_t m_flMinimumLightingRadius = 0x1CC; // float + constexpr std::ptrdiff_t m_flMaximumLightingRadius = 0x1D0; // float + constexpr std::ptrdiff_t m_flPositionDampingConstant = 0x1D4; // float +} + +namespace C_OP_VectorFieldSnapshot { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nControlPointNumber = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_nAttributeToWrite = 0x1C4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nLocalSpaceCP = 0x1C8; // int32_t + constexpr std::ptrdiff_t m_flInterpolation = 0x1D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_vecScale = 0x328; // CPerParticleVecInput + constexpr std::ptrdiff_t m_flBoundaryDampening = 0x980; // float + constexpr std::ptrdiff_t m_bSetVelocity = 0x984; // bool + constexpr std::ptrdiff_t m_bLockToSurface = 0x985; // bool + constexpr std::ptrdiff_t m_flGridSpacing = 0x988; // float +} + +namespace C_OP_VectorNoise { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_nFieldOutput = 0x1C0; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_vecOutputMin = 0x1C4; // Vector + constexpr std::ptrdiff_t m_vecOutputMax = 0x1D0; // Vector + constexpr std::ptrdiff_t m_fl4NoiseScale = 0x1DC; // float + constexpr std::ptrdiff_t m_bAdditive = 0x1E0; // bool + constexpr std::ptrdiff_t m_bOffset = 0x1E1; // bool + constexpr std::ptrdiff_t m_flNoiseAnimationTimeScale = 0x1E4; // float +} + +namespace C_OP_VelocityDecay { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flMinVelocity = 0x1C0; // float +} + +namespace C_OP_VelocityMatchingForce { // CParticleFunctionOperator + constexpr std::ptrdiff_t m_flDirScale = 0x1C0; // float + constexpr std::ptrdiff_t m_flSpdScale = 0x1C4; // float + constexpr std::ptrdiff_t m_nCPBroadcast = 0x1C8; // int32_t +} + +namespace C_OP_WindForce { // CParticleFunctionForce + constexpr std::ptrdiff_t m_vForce = 0x1D0; // Vector +} + +namespace C_OP_WorldCollideConstraint { // CParticleFunctionConstraint +} + +namespace C_OP_WorldTraceConstraint { // CParticleFunctionConstraint + constexpr std::ptrdiff_t m_nCP = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_vecCpOffset = 0x1C4; // Vector + constexpr std::ptrdiff_t m_nCollisionMode = 0x1D0; // ParticleCollisionMode_t + constexpr std::ptrdiff_t m_nCollisionModeMin = 0x1D4; // ParticleCollisionMode_t + constexpr std::ptrdiff_t m_nTraceSet = 0x1D8; // ParticleTraceSet_t + constexpr std::ptrdiff_t m_CollisionGroupName = 0x1DC; // char[128] + constexpr std::ptrdiff_t m_bWorldOnly = 0x25C; // bool + constexpr std::ptrdiff_t m_bBrushOnly = 0x25D; // bool + constexpr std::ptrdiff_t m_bIncludeWater = 0x25E; // bool + constexpr std::ptrdiff_t m_nIgnoreCP = 0x260; // int32_t + constexpr std::ptrdiff_t m_flCpMovementTolerance = 0x264; // float + constexpr std::ptrdiff_t m_flRetestRate = 0x268; // float + constexpr std::ptrdiff_t m_flTraceTolerance = 0x26C; // float + constexpr std::ptrdiff_t m_flCollisionConfirmationSpeed = 0x270; // float + constexpr std::ptrdiff_t m_nMaxTracesPerFrame = 0x274; // float + constexpr std::ptrdiff_t m_flRadiusScale = 0x278; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flBounceAmount = 0x3D0; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flSlideAmount = 0x528; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_flRandomDirScale = 0x680; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_bDecayBounce = 0x7D8; // bool + constexpr std::ptrdiff_t m_bKillonContact = 0x7D9; // bool + constexpr std::ptrdiff_t m_flMinSpeed = 0x7DC; // float + constexpr std::ptrdiff_t m_bSetNormal = 0x7E0; // bool + constexpr std::ptrdiff_t m_nStickOnCollisionField = 0x7E4; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flStopSpeed = 0x7E8; // CPerParticleFloatInput + constexpr std::ptrdiff_t m_nEntityStickDataField = 0x940; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_nEntityStickNormalField = 0x944; // ParticleAttributeIndex_t +} + +namespace CollisionGroupContext_t { + constexpr std::ptrdiff_t m_nCollisionGroupNumber = 0x0; // int32_t +} + +namespace ControlPointReference_t { + constexpr std::ptrdiff_t m_controlPointNameString = 0x0; // int32_t + constexpr std::ptrdiff_t m_vOffsetFromControlPoint = 0x4; // Vector + constexpr std::ptrdiff_t m_bOffsetInLocalSpace = 0x10; // bool +} + +namespace FloatInputMaterialVariable_t { + constexpr std::ptrdiff_t m_strVariable = 0x0; // CUtlString + constexpr std::ptrdiff_t m_flInput = 0x8; // CParticleCollectionFloatInput +} + +namespace IControlPointEditorData { +} + +namespace IParticleCollection { +} + +namespace IParticleEffect { +} + +namespace IParticleSystemDefinition { +} + +namespace MaterialVariable_t { + constexpr std::ptrdiff_t m_strVariable = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nVariableField = 0x8; // ParticleAttributeIndex_t + constexpr std::ptrdiff_t m_flScale = 0xC; // float +} + +namespace ModelReference_t { + constexpr std::ptrdiff_t m_model = 0x0; // CStrongHandle + constexpr std::ptrdiff_t m_flRelativeProbabilityOfSpawn = 0x8; // float +} + +namespace PARTICLE_EHANDLE__ { + constexpr std::ptrdiff_t unused = 0x0; // int32_t +} + +namespace PARTICLE_WORLD_HANDLE__ { + constexpr std::ptrdiff_t unused = 0x0; // int32_t +} + +namespace ParticleAttributeIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace ParticleChildrenInfo_t { + constexpr std::ptrdiff_t m_ChildRef = 0x0; // CStrongHandle + constexpr std::ptrdiff_t m_flDelay = 0x8; // float + constexpr std::ptrdiff_t m_bEndCap = 0xC; // bool + constexpr std::ptrdiff_t m_bDisableChild = 0xD; // bool + constexpr std::ptrdiff_t m_nDetailLevel = 0x10; // ParticleDetailLevel_t +} + +namespace ParticleControlPointConfiguration_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_drivers = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_previewState = 0x20; // ParticlePreviewState_t +} + +namespace ParticleControlPointDriver_t { + constexpr std::ptrdiff_t m_iControlPoint = 0x0; // int32_t + constexpr std::ptrdiff_t m_iAttachType = 0x4; // ParticleAttachment_t + constexpr std::ptrdiff_t m_attachmentName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_vecOffset = 0x10; // Vector + constexpr std::ptrdiff_t m_angOffset = 0x1C; // QAngle + constexpr std::ptrdiff_t m_entityName = 0x28; // CUtlString +} + +namespace ParticleNamedValueConfiguration_t { + constexpr std::ptrdiff_t m_ConfigName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_ConfigValue = 0x8; // KeyValues3 + constexpr std::ptrdiff_t m_iAttachType = 0x18; // ParticleAttachment_t + constexpr std::ptrdiff_t m_BoundEntityPath = 0x20; // CUtlString + constexpr std::ptrdiff_t m_strEntityScope = 0x28; // CUtlString + constexpr std::ptrdiff_t m_strAttachmentName = 0x30; // CUtlString +} + +namespace ParticleNamedValueSource_t { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_IsPublic = 0x8; // bool + constexpr std::ptrdiff_t m_ValueType = 0xC; // PulseValueType_t + constexpr std::ptrdiff_t m_DefaultConfig = 0x10; // ParticleNamedValueConfiguration_t + constexpr std::ptrdiff_t m_NamedConfigs = 0x48; // CUtlVector +} + +namespace ParticlePreviewBodyGroup_t { + constexpr std::ptrdiff_t m_bodyGroupName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nValue = 0x8; // int32_t +} + +namespace ParticlePreviewState_t { + constexpr std::ptrdiff_t m_previewModel = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nModSpecificData = 0x8; // uint32_t + constexpr std::ptrdiff_t m_groundType = 0xC; // PetGroundType_t + constexpr std::ptrdiff_t m_sequenceName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_nFireParticleOnSequenceFrame = 0x18; // int32_t + constexpr std::ptrdiff_t m_hitboxSetName = 0x20; // CUtlString + constexpr std::ptrdiff_t m_materialGroupName = 0x28; // CUtlString + constexpr std::ptrdiff_t m_vecBodyGroups = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_flPlaybackSpeed = 0x48; // float + constexpr std::ptrdiff_t m_flParticleSimulationRate = 0x4C; // float + constexpr std::ptrdiff_t m_bShouldDrawHitboxes = 0x50; // bool + constexpr std::ptrdiff_t m_bShouldDrawAttachments = 0x51; // bool + constexpr std::ptrdiff_t m_bShouldDrawAttachmentNames = 0x52; // bool + constexpr std::ptrdiff_t m_bShouldDrawControlPointAxes = 0x53; // bool + constexpr std::ptrdiff_t m_bAnimationNonLooping = 0x54; // bool + constexpr std::ptrdiff_t m_vecPreviewGravity = 0x58; // Vector +} + +namespace PointDefinitionWithTimeValues_t { // PointDefinition_t + constexpr std::ptrdiff_t m_flTimeDuration = 0x14; // float +} + +namespace PointDefinition_t { + constexpr std::ptrdiff_t m_nControlPoint = 0x0; // int32_t + constexpr std::ptrdiff_t m_bLocalCoords = 0x4; // bool + constexpr std::ptrdiff_t m_vOffset = 0x8; // Vector +} + +namespace SequenceWeightedList_t { + constexpr std::ptrdiff_t m_nSequence = 0x0; // int32_t + constexpr std::ptrdiff_t m_flRelativeWeight = 0x4; // float +} + +namespace TextureControls_t { + constexpr std::ptrdiff_t m_flFinalTextureScaleU = 0x0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flFinalTextureScaleV = 0x158; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flFinalTextureOffsetU = 0x2B0; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flFinalTextureOffsetV = 0x408; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flFinalTextureUVRotation = 0x560; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flZoomScale = 0x6B8; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_flDistortion = 0x810; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_bRandomizeOffsets = 0x968; // bool + constexpr std::ptrdiff_t m_bClampUVs = 0x969; // bool + constexpr std::ptrdiff_t m_nPerParticleBlend = 0x96C; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nPerParticleScale = 0x970; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nPerParticleOffsetU = 0x974; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nPerParticleOffsetV = 0x978; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nPerParticleRotation = 0x97C; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nPerParticleZoom = 0x980; // SpriteCardPerParticleScale_t + constexpr std::ptrdiff_t m_nPerParticleDistortion = 0x984; // SpriteCardPerParticleScale_t +} + +namespace TextureGroup_t { + constexpr std::ptrdiff_t m_bEnabled = 0x0; // bool + constexpr std::ptrdiff_t m_bReplaceTextureWithGradient = 0x1; // bool + constexpr std::ptrdiff_t m_hTexture = 0x8; // CStrongHandle + constexpr std::ptrdiff_t m_Gradient = 0x10; // CColorGradient + constexpr std::ptrdiff_t m_nTextureType = 0x28; // SpriteCardTextureType_t + constexpr std::ptrdiff_t m_nTextureChannels = 0x2C; // SpriteCardTextureChannel_t + constexpr std::ptrdiff_t m_nTextureBlendMode = 0x30; // ParticleTextureLayerBlendType_t + constexpr std::ptrdiff_t m_flTextureBlend = 0x38; // CParticleCollectionRendererFloatInput + constexpr std::ptrdiff_t m_TextureControls = 0x190; // TextureControls_t +} + +namespace VecInputMaterialVariable_t { + constexpr std::ptrdiff_t m_strVariable = 0x0; // CUtlString + constexpr std::ptrdiff_t m_vecInput = 0x8; // CParticleCollectionVecInput +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/pulse_system.dll.hpp b/HPCS2/HPCS2/offset/pulse_system.dll.hpp new file mode 100644 index 0000000..e2cbd0d --- /dev/null +++ b/HPCS2/HPCS2/offset/pulse_system.dll.hpp @@ -0,0 +1,352 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace CBasePulseGraphInstance { +} + +namespace CPulseCell_Base { + constexpr std::ptrdiff_t m_nEditorNodeID = 0x8; // PulseDocNodeID_t +} + +namespace CPulseCell_BaseFlow { // CPulseCell_Base +} + +namespace CPulseCell_BaseValue { // CPulseCell_Base +} + +namespace CPulseCell_BaseYieldingInflow { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Inflow_BaseEntrypoint { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_EntryChunk = 0x48; // PulseRuntimeChunkIndex_t + constexpr std::ptrdiff_t m_RegisterMap = 0x50; // PulseRegisterMap_t +} + +namespace CPulseCell_Inflow_EntOutputHandler { // CPulseCell_Inflow_BaseEntrypoint + constexpr std::ptrdiff_t m_SourceEntity = 0x70; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SourceOutput = 0x78; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_TargetInput = 0x80; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_ExpectedParamType = 0x88; // CPulseValueFullType +} + +namespace CPulseCell_Inflow_EventHandler { // CPulseCell_Inflow_BaseEntrypoint + constexpr std::ptrdiff_t m_EventName = 0x70; // CUtlSymbolLarge +} + +namespace CPulseCell_Inflow_GraphHook { // CPulseCell_Inflow_BaseEntrypoint + constexpr std::ptrdiff_t m_HookName = 0x70; // CUtlSymbolLarge +} + +namespace CPulseCell_Inflow_Method { // CPulseCell_Inflow_BaseEntrypoint + constexpr std::ptrdiff_t m_MethodName = 0x70; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Description = 0x78; // CUtlString + constexpr std::ptrdiff_t m_bIsPublic = 0x80; // bool + constexpr std::ptrdiff_t m_ReturnType = 0x88; // CPulseValueFullType + constexpr std::ptrdiff_t m_Args = 0x98; // CUtlVector +} + +namespace CPulseCell_Inflow_Wait { // CPulseCell_BaseYieldingInflow + constexpr std::ptrdiff_t m_WakeResume = 0x48; // CPulse_ResumePoint +} + +namespace CPulseCell_Inflow_Yield { // CPulseCell_BaseYieldingInflow + constexpr std::ptrdiff_t m_UnyieldResume = 0x48; // CPulse_ResumePoint +} + +namespace CPulseCell_Outflow_CycleOrdered { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Outputs = 0x48; // CUtlVector +} + +namespace CPulseCell_Outflow_CycleOrdered_InstanceState_t { + constexpr std::ptrdiff_t m_nNextIndex = 0x0; // int32_t +} + +namespace CPulseCell_Outflow_CycleRandom { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Outputs = 0x48; // CUtlVector +} + +namespace CPulseCell_Outflow_CycleShuffled { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Outputs = 0x48; // CUtlVector +} + +namespace CPulseCell_Outflow_CycleShuffled_InstanceState_t { + constexpr std::ptrdiff_t m_Shuffle = 0x0; // CUtlVectorFixedGrowable + constexpr std::ptrdiff_t m_nNextShuffle = 0x20; // int32_t +} + +namespace CPulseCell_Outflow_IntSwitch { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_DefaultCaseOutflow = 0x48; // CPulse_OutflowConnection + constexpr std::ptrdiff_t m_CaseOutflows = 0x58; // CUtlVector +} + +namespace CPulseCell_Outflow_SimultaneousParallel { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Outputs = 0x48; // CUtlVector +} + +namespace CPulseCell_Outflow_StringSwitch { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_DefaultCaseOutflow = 0x48; // CPulse_OutflowConnection + constexpr std::ptrdiff_t m_CaseOutflows = 0x58; // CUtlVector +} + +namespace CPulseCell_Outflow_TestExplicitYesNo { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Yes = 0x48; // CPulse_OutflowConnection + constexpr std::ptrdiff_t m_No = 0x58; // CPulse_OutflowConnection +} + +namespace CPulseCell_Outflow_TestRandomYesNo { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Yes = 0x48; // CPulse_OutflowConnection + constexpr std::ptrdiff_t m_No = 0x58; // CPulse_OutflowConnection +} + +namespace CPulseCell_Step_CallExternalMethod { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_MethodName = 0x48; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_ExpectedArgs = 0x50; // CUtlVector +} + +namespace CPulseCell_Step_DebugLog { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Step_PublicOutput { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_OutputIndex = 0x48; // PulseRuntimeOutputIndex_t +} + +namespace CPulseCell_Step_TestDomainCreateFakeEntity { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Step_TestDomainDestroyFakeEntity { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Step_TestDomainEntFire { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Input = 0x48; // CUtlString +} + +namespace CPulseCell_Step_TestDomainTracepoint { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Test_MultiInflow_NoDefault { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Test_MultiInflow_WithDefault { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Test_NoInflow { // CPulseCell_BaseFlow +} + +namespace CPulseCell_Val_TestDomainFindEntityByName { // CPulseCell_BaseValue +} + +namespace CPulseCell_Val_TestDomainGetEntityName { // CPulseCell_BaseValue +} + +namespace CPulseCell_Value_RandomInt { // CPulseCell_BaseValue +} + +namespace CPulseCell_Value_TestValue50 { // CPulseCell_BaseValue +} + +namespace CPulseExecCursor { +} + +namespace CPulseGraphDef { + constexpr std::ptrdiff_t m_DomainIdentifier = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_ParentMapName = 0x10; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Chunks = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_Cells = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_Vars = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_PublicOutputs = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_InvokeBindings = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_CallInfos = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_OutputConnections = 0xA8; // CUtlVector +} + +namespace CPulseGraphInstance_TestDomain { // CBasePulseGraphInstance + constexpr std::ptrdiff_t m_bIsRunningUnitTests = 0xD0; // bool + constexpr std::ptrdiff_t m_bExplicitTimeStepping = 0xD1; // bool + constexpr std::ptrdiff_t m_bExpectingToDestroyWithYieldedCursors = 0xD2; // bool + constexpr std::ptrdiff_t m_nNextValidateIndex = 0xD4; // int32_t + constexpr std::ptrdiff_t m_Tracepoints = 0xD8; // CUtlVector + constexpr std::ptrdiff_t m_bTestYesOrNoPath = 0xF0; // bool +} + +namespace CPulseGraphInstance_TestDomain_Derived { // CPulseGraphInstance_TestDomain + constexpr std::ptrdiff_t m_nInstanceValueX = 0xF8; // int32_t +} + +namespace CPulseGraphInstance_TurtleGraphics { // CBasePulseGraphInstance +} + +namespace CPulseMathlib { +} + +namespace CPulseRuntimeMethodArg { + constexpr std::ptrdiff_t m_Name = 0x0; // CKV3MemberNameWithStorage + constexpr std::ptrdiff_t m_Description = 0x38; // CUtlString + constexpr std::ptrdiff_t m_Type = 0x40; // CPulseValueFullType +} + +namespace CPulseTestFuncs_DerivedDomain { +} + +namespace CPulseTestFuncs_LibraryA { +} + +namespace CPulseTestScriptLib { +} + +namespace CPulseTurtleGraphicsCursor { // CPulseExecCursor + constexpr std::ptrdiff_t m_Color = 0x188; // Color + constexpr std::ptrdiff_t m_vPos = 0x18C; // Vector2D + constexpr std::ptrdiff_t m_flHeadingDeg = 0x194; // float + constexpr std::ptrdiff_t m_bPenUp = 0x198; // bool +} + +namespace CPulse_CallInfo { + constexpr std::ptrdiff_t m_PortName = 0x0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nEditorNodeID = 0x8; // PulseDocNodeID_t + constexpr std::ptrdiff_t m_RegisterMap = 0x10; // PulseRegisterMap_t + constexpr std::ptrdiff_t m_CallMethodID = 0x30; // PulseDocNodeID_t + constexpr std::ptrdiff_t m_nSrcChunk = 0x34; // PulseRuntimeChunkIndex_t + constexpr std::ptrdiff_t m_nSrcInstruction = 0x38; // int32_t +} + +namespace CPulse_Chunk { + constexpr std::ptrdiff_t m_Instructions = 0x0; // CUtlLeanVector + constexpr std::ptrdiff_t m_Registers = 0x10; // CUtlLeanVector + constexpr std::ptrdiff_t m_InstructionEditorIDs = 0x20; // CUtlLeanVector +} + +namespace CPulse_InvokeBinding { + constexpr std::ptrdiff_t m_RegisterMap = 0x0; // PulseRegisterMap_t + constexpr std::ptrdiff_t m_FuncName = 0x20; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nCellIndex = 0x28; // PulseRuntimeCellIndex_t + constexpr std::ptrdiff_t m_InstanceType = 0x30; // CPulseValueFullType + constexpr std::ptrdiff_t m_nSrcChunk = 0x40; // PulseRuntimeChunkIndex_t + constexpr std::ptrdiff_t m_nSrcInstruction = 0x44; // int32_t +} + +namespace CPulse_OutflowConnection { + constexpr std::ptrdiff_t m_SourceOutflowName = 0x0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nDestChunk = 0x8; // PulseRuntimeChunkIndex_t + constexpr std::ptrdiff_t m_nInstruction = 0xC; // int32_t +} + +namespace CPulse_OutputConnection { + constexpr std::ptrdiff_t m_SourceOutput = 0x0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_TargetEntity = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_TargetInput = 0x10; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Param = 0x18; // CUtlSymbolLarge +} + +namespace CPulse_PublicOutput { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Description = 0x8; // CUtlString + constexpr std::ptrdiff_t m_ParamType = 0x10; // CPulseValueFullType +} + +namespace CPulse_RegisterInfo { + constexpr std::ptrdiff_t m_nReg = 0x0; // PulseRuntimeRegisterIndex_t + constexpr std::ptrdiff_t m_Type = 0x8; // CPulseValueFullType + constexpr std::ptrdiff_t m_OriginName = 0x18; // CKV3MemberNameWithStorage + constexpr std::ptrdiff_t m_nWrittenByInstruction = 0x50; // int32_t + constexpr std::ptrdiff_t m_nLastReadByInstruction = 0x54; // int32_t +} + +namespace CPulse_ResumePoint { // CPulse_OutflowConnection +} + +namespace CPulse_Variable { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Description = 0x8; // CUtlString + constexpr std::ptrdiff_t m_Type = 0x10; // CPulseValueFullType + constexpr std::ptrdiff_t m_DefaultValue = 0x20; // KeyValues3 + constexpr std::ptrdiff_t m_bIsPublic = 0x32; // bool +} + +namespace CTestDomainDerived_Cursor { // CPulseExecCursor + constexpr std::ptrdiff_t m_nCursorValueA = 0x188; // int32_t + constexpr std::ptrdiff_t m_nCursorValueB = 0x18C; // int32_t +} + +namespace FakeEntity_t { + constexpr std::ptrdiff_t m_nHandle = 0x0; // PulseTestEHandle_t + constexpr std::ptrdiff_t m_Name = 0x8; // CUtlString + constexpr std::ptrdiff_t m_Class = 0x10; // CUtlString + constexpr std::ptrdiff_t m_bDestroyed = 0x18; // bool + constexpr std::ptrdiff_t m_pAssociatedGraphInstance = 0x20; // CPulseGraphInstance_TestDomain* + constexpr std::ptrdiff_t m_bFuncWasCalled = 0x28; // bool + constexpr std::ptrdiff_t m_fValue = 0x2C; // float +} + +namespace PGDInstruction_t { + constexpr std::ptrdiff_t m_nCode = 0x0; // PulseInstructionCode_t + constexpr std::ptrdiff_t m_nVar = 0x4; // PulseRuntimeVarIndex_t + constexpr std::ptrdiff_t m_nReg0 = 0x8; // PulseRuntimeRegisterIndex_t + constexpr std::ptrdiff_t m_nReg1 = 0xA; // PulseRuntimeRegisterIndex_t + constexpr std::ptrdiff_t m_nReg2 = 0xC; // PulseRuntimeRegisterIndex_t + constexpr std::ptrdiff_t m_nInvokeBindingIndex = 0x10; // PulseRuntimeInvokeIndex_t + constexpr std::ptrdiff_t m_nChunk = 0x14; // PulseRuntimeChunkIndex_t + constexpr std::ptrdiff_t m_nDestInstruction = 0x18; // int32_t + constexpr std::ptrdiff_t m_nCallInfoIndex = 0x1C; // PulseRuntimeCallInfoIndex_t + constexpr std::ptrdiff_t m_Arg0Name = 0x20; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Arg1Name = 0x28; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bLiteralBool = 0x30; // bool + constexpr std::ptrdiff_t m_nLiteralInt = 0x34; // int32_t + constexpr std::ptrdiff_t m_flLiteralFloat = 0x38; // float + constexpr std::ptrdiff_t m_LiteralString = 0x40; // CBufferString + constexpr std::ptrdiff_t m_vLiteralVec3 = 0x50; // Vector +} + +namespace PulseDocNodeID_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseRegisterMap_t { + constexpr std::ptrdiff_t m_Inparams = 0x0; // KeyValues3 + constexpr std::ptrdiff_t m_Outparams = 0x10; // KeyValues3 +} + +namespace PulseRuntimeCallInfoIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseRuntimeCellIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseRuntimeChunkIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseRuntimeEntrypointIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseRuntimeInvokeIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseRuntimeOutputIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseRuntimeRegisterIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int16_t +} + +namespace PulseRuntimeStateOffset_t { + constexpr std::ptrdiff_t m_Value = 0x0; // uint16_t +} + +namespace PulseRuntimeVarIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PulseTestEHandle_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/rendersystemdx11.dll.hpp b/HPCS2/HPCS2/offset/rendersystemdx11.dll.hpp new file mode 100644 index 0000000..a211d27 --- /dev/null +++ b/HPCS2/HPCS2/offset/rendersystemdx11.dll.hpp @@ -0,0 +1,29 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace RenderInputLayoutField_t { + constexpr std::ptrdiff_t m_pSemanticName = 0x0; // uint8_t[32] + constexpr std::ptrdiff_t m_nSemanticIndex = 0x20; // int32_t + constexpr std::ptrdiff_t m_Format = 0x24; // uint32_t + constexpr std::ptrdiff_t m_nOffset = 0x28; // int32_t + constexpr std::ptrdiff_t m_nSlot = 0x2C; // int32_t + constexpr std::ptrdiff_t m_nSlotType = 0x30; // RenderSlotType_t + constexpr std::ptrdiff_t m_nInstanceStepRate = 0x34; // int32_t +} + +namespace VsInputSignatureElement_t { + constexpr std::ptrdiff_t m_pName = 0x0; // char[64] + constexpr std::ptrdiff_t m_pSemantic = 0x40; // char[64] + constexpr std::ptrdiff_t m_pD3DSemanticName = 0x80; // char[64] + constexpr std::ptrdiff_t m_nD3DSemanticIndex = 0xC0; // int32_t +} + +namespace VsInputSignature_t { + constexpr std::ptrdiff_t m_elems = 0x0; // CUtlVector +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/resourcesystem.dll.hpp b/HPCS2/HPCS2/offset/resourcesystem.dll.hpp new file mode 100644 index 0000000..bd2c3a2 --- /dev/null +++ b/HPCS2/HPCS2/offset/resourcesystem.dll.hpp @@ -0,0 +1,213 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace AABB_t { + constexpr std::ptrdiff_t m_vMinBounds = 0x0; // Vector + constexpr std::ptrdiff_t m_vMaxBounds = 0xC; // Vector +} + +namespace CFuseProgram { + constexpr std::ptrdiff_t m_programBuffer = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_variablesRead = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_variablesWritten = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_nMaxTempVarsUsed = 0x48; // int32_t +} + +namespace CFuseSymbolTable { + constexpr std::ptrdiff_t m_constants = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_variables = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_functions = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_constantMap = 0x48; // CUtlHashtable + constexpr std::ptrdiff_t m_variableMap = 0x68; // CUtlHashtable + constexpr std::ptrdiff_t m_functionMap = 0x88; // CUtlHashtable +} + +namespace ConstantInfo_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nameToken = 0x8; // CUtlStringToken + constexpr std::ptrdiff_t m_flValue = 0xC; // float +} + +namespace FourQuaternions { + constexpr std::ptrdiff_t x = 0x0; // fltx4 + constexpr std::ptrdiff_t y = 0x10; // fltx4 + constexpr std::ptrdiff_t z = 0x20; // fltx4 + constexpr std::ptrdiff_t w = 0x30; // fltx4 +} + +namespace FunctionInfo_t { + constexpr std::ptrdiff_t m_name = 0x8; // CUtlString + constexpr std::ptrdiff_t m_nameToken = 0x10; // CUtlStringToken + constexpr std::ptrdiff_t m_nParamCount = 0x14; // int32_t + constexpr std::ptrdiff_t m_nIndex = 0x18; // FuseFunctionIndex_t + constexpr std::ptrdiff_t m_bIsPure = 0x1A; // bool +} + +namespace FuseFunctionIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // uint16_t +} + +namespace FuseVariableIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // uint16_t +} + +namespace InfoForResourceTypeCAnimData { +} + +namespace InfoForResourceTypeCAnimationGroup { +} + +namespace InfoForResourceTypeCCSGOEconItem { +} + +namespace InfoForResourceTypeCChoreoSceneFileData { +} + +namespace InfoForResourceTypeCCompositeMaterialKit { +} + +namespace InfoForResourceTypeCDACGameDefsData { +} + +namespace InfoForResourceTypeCDOTANovelsList { +} + +namespace InfoForResourceTypeCDOTAPatchNotesList { +} + +namespace InfoForResourceTypeCDotaItemDefinitionResource { +} + +namespace InfoForResourceTypeCEntityLump { +} + +namespace InfoForResourceTypeCJavaScriptResource { +} + +namespace InfoForResourceTypeCModel { +} + +namespace InfoForResourceTypeCMorphSetData { +} + +namespace InfoForResourceTypeCNmClip { +} + +namespace InfoForResourceTypeCNmSkeleton { +} + +namespace InfoForResourceTypeCPanoramaDynamicImages { +} + +namespace InfoForResourceTypeCPanoramaLayout { +} + +namespace InfoForResourceTypeCPanoramaStyle { +} + +namespace InfoForResourceTypeCPhysAggregateData { +} + +namespace InfoForResourceTypeCPostProcessingResource { +} + +namespace InfoForResourceTypeCRenderMesh { +} + +namespace InfoForResourceTypeCResponseRulesList { +} + +namespace InfoForResourceTypeCSequenceGroupData { +} + +namespace InfoForResourceTypeCSmartProp { +} + +namespace InfoForResourceTypeCTextureBase { +} + +namespace InfoForResourceTypeCTypeScriptResource { +} + +namespace InfoForResourceTypeCVDataResource { +} + +namespace InfoForResourceTypeCVMixListResource { +} + +namespace InfoForResourceTypeCVPhysXSurfacePropertiesList { +} + +namespace InfoForResourceTypeCVSoundEventScriptList { +} + +namespace InfoForResourceTypeCVSoundStackScriptList { +} + +namespace InfoForResourceTypeCVoxelVisibility { +} + +namespace InfoForResourceTypeCWorldNode { +} + +namespace InfoForResourceTypeIAnimGraphModelBinding { +} + +namespace InfoForResourceTypeIMaterial2 { +} + +namespace InfoForResourceTypeIParticleSnapshot { +} + +namespace InfoForResourceTypeIParticleSystemDefinition { +} + +namespace InfoForResourceTypeIPulseGraphDef { +} + +namespace InfoForResourceTypeIVectorGraphic { +} + +namespace InfoForResourceTypeManifestTestResource_t { +} + +namespace InfoForResourceTypeProceduralTestResource_t { +} + +namespace InfoForResourceTypeTestResource_t { +} + +namespace InfoForResourceTypeVSound_t { +} + +namespace InfoForResourceTypeWorld_t { +} + +namespace ManifestTestResource_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_child = 0x8; // CStrongHandle +} + +namespace PackedAABB_t { + constexpr std::ptrdiff_t m_nPackedMin = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nPackedMax = 0x4; // uint32_t +} + +namespace TestResource_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString +} + +namespace VariableInfo_t { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nameToken = 0x8; // CUtlStringToken + constexpr std::ptrdiff_t m_nIndex = 0xC; // FuseVariableIndex_t + constexpr std::ptrdiff_t m_nNumComponents = 0xE; // uint8_t + constexpr std::ptrdiff_t m_eVarType = 0xF; // FuseVariableType_t + constexpr std::ptrdiff_t m_eAccess = 0x10; // FuseVariableAccess_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/scenesystem.dll.hpp b/HPCS2/HPCS2/offset/scenesystem.dll.hpp new file mode 100644 index 0000000..40c2600 --- /dev/null +++ b/HPCS2/HPCS2/offset/scenesystem.dll.hpp @@ -0,0 +1,61 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace CSSDSEndFrameViewInfo { + constexpr std::ptrdiff_t m_nViewId = 0x0; // uint64_t + constexpr std::ptrdiff_t m_ViewName = 0x8; // CUtlString +} + +namespace CSSDSMsg_EndFrame { + constexpr std::ptrdiff_t m_Views = 0x0; // CUtlVector +} + +namespace CSSDSMsg_LayerBase { + constexpr std::ptrdiff_t m_viewId = 0x0; // SceneViewId_t + constexpr std::ptrdiff_t m_ViewName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_nLayerIndex = 0x18; // int32_t + constexpr std::ptrdiff_t m_nLayerId = 0x20; // uint64_t + constexpr std::ptrdiff_t m_LayerName = 0x28; // CUtlString + constexpr std::ptrdiff_t m_displayText = 0x30; // CUtlString +} + +namespace CSSDSMsg_PostLayer { // CSSDSMsg_LayerBase +} + +namespace CSSDSMsg_PreLayer { // CSSDSMsg_LayerBase +} + +namespace CSSDSMsg_ViewRender { + constexpr std::ptrdiff_t m_viewId = 0x0; // SceneViewId_t + constexpr std::ptrdiff_t m_ViewName = 0x10; // CUtlString +} + +namespace CSSDSMsg_ViewTarget { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_TextureId = 0x8; // uint64_t + constexpr std::ptrdiff_t m_nWidth = 0x10; // int32_t + constexpr std::ptrdiff_t m_nHeight = 0x14; // int32_t + constexpr std::ptrdiff_t m_nRequestedWidth = 0x18; // int32_t + constexpr std::ptrdiff_t m_nRequestedHeight = 0x1C; // int32_t + constexpr std::ptrdiff_t m_nNumMipLevels = 0x20; // int32_t + constexpr std::ptrdiff_t m_nDepth = 0x24; // int32_t + constexpr std::ptrdiff_t m_nMultisampleNumSamples = 0x28; // int32_t + constexpr std::ptrdiff_t m_nFormat = 0x2C; // int32_t +} + +namespace CSSDSMsg_ViewTargetList { + constexpr std::ptrdiff_t m_viewId = 0x0; // SceneViewId_t + constexpr std::ptrdiff_t m_ViewName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_Targets = 0x18; // CUtlVector +} + +namespace SceneViewId_t { + constexpr std::ptrdiff_t m_nViewId = 0x0; // uint64_t + constexpr std::ptrdiff_t m_nFrameCount = 0x8; // uint64_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/schemasystem.dll.hpp b/HPCS2/HPCS2/offset/schemasystem.dll.hpp new file mode 100644 index 0000000..5cf2755 --- /dev/null +++ b/HPCS2/HPCS2/offset/schemasystem.dll.hpp @@ -0,0 +1,57 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace CExampleSchemaVData_Monomorphic { + constexpr std::ptrdiff_t m_nExample1 = 0x0; // int32_t + constexpr std::ptrdiff_t m_nExample2 = 0x4; // int32_t +} + +namespace CExampleSchemaVData_PolymorphicBase { + constexpr std::ptrdiff_t m_nBase = 0x8; // int32_t +} + +namespace CExampleSchemaVData_PolymorphicDerivedA { // CExampleSchemaVData_PolymorphicBase + constexpr std::ptrdiff_t m_nDerivedA = 0x10; // int32_t +} + +namespace CExampleSchemaVData_PolymorphicDerivedB { // CExampleSchemaVData_PolymorphicBase + constexpr std::ptrdiff_t m_nDerivedB = 0x10; // int32_t +} + +namespace CSchemaSystemInternalRegistration { + constexpr std::ptrdiff_t m_Vector2D = 0x0; // Vector2D + constexpr std::ptrdiff_t m_Vector = 0x8; // Vector + constexpr std::ptrdiff_t m_VectorAligned = 0x20; // VectorAligned + constexpr std::ptrdiff_t m_Quaternion = 0x30; // Quaternion + constexpr std::ptrdiff_t m_QAngle = 0x40; // QAngle + constexpr std::ptrdiff_t m_RotationVector = 0x4C; // RotationVector + constexpr std::ptrdiff_t m_RadianEuler = 0x58; // RadianEuler + constexpr std::ptrdiff_t m_DegreeEuler = 0x64; // DegreeEuler + constexpr std::ptrdiff_t m_QuaternionStorage = 0x70; // QuaternionStorage + constexpr std::ptrdiff_t m_matrix3x4_t = 0x80; // matrix3x4_t + constexpr std::ptrdiff_t m_matrix3x4a_t = 0xB0; // matrix3x4a_t + constexpr std::ptrdiff_t m_Color = 0xE0; // Color + constexpr std::ptrdiff_t m_Vector4D = 0xE4; // Vector4D + constexpr std::ptrdiff_t m_CTransform = 0x100; // CTransform + constexpr std::ptrdiff_t m_pKeyValues = 0x120; // KeyValues* + constexpr std::ptrdiff_t m_CUtlBinaryBlock = 0x128; // CUtlBinaryBlock + constexpr std::ptrdiff_t m_CUtlString = 0x140; // CUtlString + constexpr std::ptrdiff_t m_CUtlSymbol = 0x148; // CUtlSymbol + constexpr std::ptrdiff_t m_stringToken = 0x14C; // CUtlStringToken + constexpr std::ptrdiff_t m_stringTokenWithStorage = 0x150; // CUtlStringTokenWithStorage + constexpr std::ptrdiff_t m_ResourceTypes = 0x168; // CResourceArray> + constexpr std::ptrdiff_t m_KV3 = 0x170; // KeyValues3 +} + +namespace InfoForResourceTypeCResourceManifestInternal { +} + +namespace ResourceId_t { + constexpr std::ptrdiff_t m_Value = 0x0; // uint64_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/server.dll.hpp b/HPCS2/HPCS2/offset/server.dll.hpp new file mode 100644 index 0000000..71bef97 --- /dev/null +++ b/HPCS2/HPCS2/offset/server.dll.hpp @@ -0,0 +1,7168 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:21 +0000 + */ + +#pragma once + +#include + +namespace ActiveModelConfig_t { + constexpr std::ptrdiff_t m_Handle = 0x28; // ModelConfigHandle_t + constexpr std::ptrdiff_t m_Name = 0x30; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_AssociatedEntities = 0x38; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_AssociatedEntityNames = 0x50; // CNetworkUtlVectorBase +} + +namespace AmmoIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int8_t +} + +namespace AmmoTypeInfo_t { + constexpr std::ptrdiff_t m_nMaxCarry = 0x10; // int32_t + constexpr std::ptrdiff_t m_nSplashSize = 0x1C; // CRangeInt + constexpr std::ptrdiff_t m_nFlags = 0x24; // AmmoFlags_t + constexpr std::ptrdiff_t m_flMass = 0x28; // float + constexpr std::ptrdiff_t m_flSpeed = 0x2C; // CRangeFloat +} + +namespace AnimationUpdateListHandle_t { + constexpr std::ptrdiff_t m_Value = 0x0; // uint32_t +} + +namespace CAISound { // CPointEntity + constexpr std::ptrdiff_t m_iSoundType = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_iSoundContext = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_iVolume = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_iSoundIndex = 0x4BC; // int32_t + constexpr std::ptrdiff_t m_flDuration = 0x4C0; // float + constexpr std::ptrdiff_t m_iszProxyEntityName = 0x4C8; // CUtlSymbolLarge +} + +namespace CAI_ChangeHintGroup { // CBaseEntity + constexpr std::ptrdiff_t m_iSearchType = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_strSearchName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_strNewHintGroup = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flRadius = 0x4C8; // float +} + +namespace CAI_ChangeTarget { // CBaseEntity + constexpr std::ptrdiff_t m_iszNewTarget = 0x4B0; // CUtlSymbolLarge +} + +namespace CAI_Expresser { + constexpr std::ptrdiff_t m_flStopTalkTime = 0x38; // GameTime_t + constexpr std::ptrdiff_t m_flStopTalkTimeWithoutDelay = 0x3C; // GameTime_t + constexpr std::ptrdiff_t m_flBlockedTalkTime = 0x40; // GameTime_t + constexpr std::ptrdiff_t m_voicePitch = 0x44; // int32_t + constexpr std::ptrdiff_t m_flLastTimeAcceptedSpeak = 0x48; // GameTime_t + constexpr std::ptrdiff_t m_bAllowSpeakingInterrupts = 0x4C; // bool + constexpr std::ptrdiff_t m_bConsiderSceneInvolvementAsSpeech = 0x4D; // bool + constexpr std::ptrdiff_t m_nLastSpokenPriority = 0x50; // int32_t + constexpr std::ptrdiff_t m_pOuter = 0x58; // CBaseFlex* +} + +namespace CAI_ExpresserWithFollowup { // CAI_Expresser + constexpr std::ptrdiff_t m_pPostponedFollowup = 0x60; // ResponseFollowup* +} + +namespace CAK47 { // CCSWeaponBaseGun +} + +namespace CAmbientGeneric { // CPointEntity + constexpr std::ptrdiff_t m_radius = 0x4B0; // float + constexpr std::ptrdiff_t m_flMaxRadius = 0x4B4; // float + constexpr std::ptrdiff_t m_iSoundLevel = 0x4B8; // soundlevel_t + constexpr std::ptrdiff_t m_dpv = 0x4BC; // dynpitchvol_t + constexpr std::ptrdiff_t m_fActive = 0x520; // bool + constexpr std::ptrdiff_t m_fLooping = 0x521; // bool + constexpr std::ptrdiff_t m_iszSound = 0x528; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sSourceEntName = 0x530; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hSoundSource = 0x538; // CHandle + constexpr std::ptrdiff_t m_nSoundSourceEntIndex = 0x53C; // CEntityIndex +} + +namespace CAnimEventListener { // CAnimEventListenerBase +} + +namespace CAnimEventListenerBase { +} + +namespace CAnimEventQueueListener { // CAnimEventListenerBase +} + +namespace CAnimGraphControllerBase { +} + +namespace CAnimGraphNetworkedVariables { + constexpr std::ptrdiff_t m_PredNetBoolVariables = 0x8; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetByteVariables = 0x20; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetUInt16Variables = 0x38; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetIntVariables = 0x50; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetUInt32Variables = 0x68; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetUInt64Variables = 0x80; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetFloatVariables = 0x98; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetVectorVariables = 0xB0; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PredNetQuaternionVariables = 0xC8; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetBoolVariables = 0xE0; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetByteVariables = 0xF8; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetUInt16Variables = 0x110; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetIntVariables = 0x128; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetUInt32Variables = 0x140; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetUInt64Variables = 0x158; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetFloatVariables = 0x170; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetVectorVariables = 0x188; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_OwnerOnlyPredNetQuaternionVariables = 0x1A0; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_nBoolVariablesCount = 0x1B8; // int32_t + constexpr std::ptrdiff_t m_nOwnerOnlyBoolVariablesCount = 0x1BC; // int32_t + constexpr std::ptrdiff_t m_nRandomSeedOffset = 0x1C0; // int32_t + constexpr std::ptrdiff_t m_flLastTeleportTime = 0x1C4; // float +} + +namespace CAnimGraphTagRef { + constexpr std::ptrdiff_t m_nTagIndex = 0x0; // int32_t + constexpr std::ptrdiff_t m_tagName = 0x10; // CGlobalSymbol +} + +namespace CAttributeContainer { // CAttributeManager + constexpr std::ptrdiff_t m_Item = 0x50; // CEconItemView +} + +namespace CAttributeList { + constexpr std::ptrdiff_t m_Attributes = 0x8; // CUtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_pManager = 0x58; // CAttributeManager* +} + +namespace CAttributeManager { + constexpr std::ptrdiff_t m_Providers = 0x8; // CUtlVector> + constexpr std::ptrdiff_t m_iReapplyProvisionParity = 0x20; // int32_t + constexpr std::ptrdiff_t m_hOuter = 0x24; // CHandle + constexpr std::ptrdiff_t m_bPreventLoopback = 0x28; // bool + constexpr std::ptrdiff_t m_ProviderType = 0x2C; // attributeprovidertypes_t + constexpr std::ptrdiff_t m_CachedResults = 0x30; // CUtlVector +} + +namespace CAttributeManager_cached_attribute_float_t { + constexpr std::ptrdiff_t flIn = 0x0; // float + constexpr std::ptrdiff_t iAttribHook = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t flOut = 0x10; // float +} + +namespace CBarnLight { // CBaseModelEntity + constexpr std::ptrdiff_t m_bEnabled = 0x700; // bool + constexpr std::ptrdiff_t m_nColorMode = 0x704; // int32_t + constexpr std::ptrdiff_t m_Color = 0x708; // Color + constexpr std::ptrdiff_t m_flColorTemperature = 0x70C; // float + constexpr std::ptrdiff_t m_flBrightness = 0x710; // float + constexpr std::ptrdiff_t m_flBrightnessScale = 0x714; // float + constexpr std::ptrdiff_t m_nDirectLight = 0x718; // int32_t + constexpr std::ptrdiff_t m_nBakedShadowIndex = 0x71C; // int32_t + constexpr std::ptrdiff_t m_nLuminaireShape = 0x720; // int32_t + constexpr std::ptrdiff_t m_flLuminaireSize = 0x724; // float + constexpr std::ptrdiff_t m_flLuminaireAnisotropy = 0x728; // float + constexpr std::ptrdiff_t m_LightStyleString = 0x730; // CUtlString + constexpr std::ptrdiff_t m_flLightStyleStartTime = 0x738; // GameTime_t + constexpr std::ptrdiff_t m_QueuedLightStyleStrings = 0x740; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_LightStyleEvents = 0x758; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_LightStyleTargets = 0x770; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_StyleEvent = 0x788; // CEntityIOOutput[4] + constexpr std::ptrdiff_t m_hLightCookie = 0x848; // CStrongHandle + constexpr std::ptrdiff_t m_flShape = 0x850; // float + constexpr std::ptrdiff_t m_flSoftX = 0x854; // float + constexpr std::ptrdiff_t m_flSoftY = 0x858; // float + constexpr std::ptrdiff_t m_flSkirt = 0x85C; // float + constexpr std::ptrdiff_t m_flSkirtNear = 0x860; // float + constexpr std::ptrdiff_t m_vSizeParams = 0x864; // Vector + constexpr std::ptrdiff_t m_flRange = 0x870; // float + constexpr std::ptrdiff_t m_vShear = 0x874; // Vector + constexpr std::ptrdiff_t m_nBakeSpecularToCubemaps = 0x880; // int32_t + constexpr std::ptrdiff_t m_vBakeSpecularToCubemapsSize = 0x884; // Vector + constexpr std::ptrdiff_t m_nCastShadows = 0x890; // int32_t + constexpr std::ptrdiff_t m_nShadowMapSize = 0x894; // int32_t + constexpr std::ptrdiff_t m_nShadowPriority = 0x898; // int32_t + constexpr std::ptrdiff_t m_bContactShadow = 0x89C; // bool + constexpr std::ptrdiff_t m_nBounceLight = 0x8A0; // int32_t + constexpr std::ptrdiff_t m_flBounceScale = 0x8A4; // float + constexpr std::ptrdiff_t m_flMinRoughness = 0x8A8; // float + constexpr std::ptrdiff_t m_vAlternateColor = 0x8AC; // Vector + constexpr std::ptrdiff_t m_fAlternateColorBrightness = 0x8B8; // float + constexpr std::ptrdiff_t m_nFog = 0x8BC; // int32_t + constexpr std::ptrdiff_t m_flFogStrength = 0x8C0; // float + constexpr std::ptrdiff_t m_nFogShadows = 0x8C4; // int32_t + constexpr std::ptrdiff_t m_flFogScale = 0x8C8; // float + constexpr std::ptrdiff_t m_flFadeSizeStart = 0x8CC; // float + constexpr std::ptrdiff_t m_flFadeSizeEnd = 0x8D0; // float + constexpr std::ptrdiff_t m_flShadowFadeSizeStart = 0x8D4; // float + constexpr std::ptrdiff_t m_flShadowFadeSizeEnd = 0x8D8; // float + constexpr std::ptrdiff_t m_bPrecomputedFieldsValid = 0x8DC; // bool + constexpr std::ptrdiff_t m_vPrecomputedBoundsMins = 0x8E0; // Vector + constexpr std::ptrdiff_t m_vPrecomputedBoundsMaxs = 0x8EC; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBOrigin = 0x8F8; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBAngles = 0x904; // QAngle + constexpr std::ptrdiff_t m_vPrecomputedOBBExtent = 0x910; // Vector + constexpr std::ptrdiff_t m_bPvsModifyEntity = 0x91C; // bool +} + +namespace CBaseAnimGraph { // CBaseModelEntity + constexpr std::ptrdiff_t m_bInitiallyPopulateInterpHistory = 0x700; // bool + constexpr std::ptrdiff_t m_bShouldAnimateDuringGameplayPause = 0x701; // bool + constexpr std::ptrdiff_t m_pChoreoServices = 0x708; // IChoreoServices* + constexpr std::ptrdiff_t m_bAnimGraphUpdateEnabled = 0x710; // bool + constexpr std::ptrdiff_t m_flMaxSlopeDistance = 0x714; // float + constexpr std::ptrdiff_t m_vLastSlopeCheckPos = 0x718; // Vector + constexpr std::ptrdiff_t m_bAnimGraphDirty = 0x724; // bool + constexpr std::ptrdiff_t m_vecForce = 0x728; // Vector + constexpr std::ptrdiff_t m_nForceBone = 0x734; // int32_t + constexpr std::ptrdiff_t m_pRagdollPose = 0x748; // PhysicsRagdollPose_t* + constexpr std::ptrdiff_t m_bClientRagdoll = 0x750; // bool +} + +namespace CBaseAnimGraphController { // CSkeletonAnimationController + constexpr std::ptrdiff_t m_baseLayer = 0x18; // CNetworkedSequenceOperation + constexpr std::ptrdiff_t m_animGraphNetworkedVars = 0x40; // CAnimGraphNetworkedVariables + constexpr std::ptrdiff_t m_bSequenceFinished = 0x218; // bool + constexpr std::ptrdiff_t m_flLastEventCycle = 0x21C; // float + constexpr std::ptrdiff_t m_flLastEventAnimTime = 0x220; // float + constexpr std::ptrdiff_t m_flPlaybackRate = 0x224; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_flPrevAnimTime = 0x22C; // float + constexpr std::ptrdiff_t m_bClientSideAnimation = 0x230; // bool + constexpr std::ptrdiff_t m_bNetworkedAnimationInputsChanged = 0x231; // bool + constexpr std::ptrdiff_t m_nNewSequenceParity = 0x234; // int32_t + constexpr std::ptrdiff_t m_nResetEventsParity = 0x238; // int32_t + constexpr std::ptrdiff_t m_nAnimLoopMode = 0x23C; // AnimLoopMode_t + constexpr std::ptrdiff_t m_hAnimationUpdate = 0x2DC; // AnimationUpdateListHandle_t +} + +namespace CBaseButton { // CBaseToggle + constexpr std::ptrdiff_t m_angMoveEntitySpace = 0x780; // QAngle + constexpr std::ptrdiff_t m_fStayPushed = 0x78C; // bool + constexpr std::ptrdiff_t m_fRotating = 0x78D; // bool + constexpr std::ptrdiff_t m_ls = 0x790; // locksound_t + constexpr std::ptrdiff_t m_sUseSound = 0x7B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sLockedSound = 0x7B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sUnlockedSound = 0x7C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bLocked = 0x7C8; // bool + constexpr std::ptrdiff_t m_bDisabled = 0x7C9; // bool + constexpr std::ptrdiff_t m_flUseLockedTime = 0x7CC; // GameTime_t + constexpr std::ptrdiff_t m_bSolidBsp = 0x7D0; // bool + constexpr std::ptrdiff_t m_OnDamaged = 0x7D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPressed = 0x800; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUseLocked = 0x828; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnIn = 0x850; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnOut = 0x878; // CEntityIOOutput + constexpr std::ptrdiff_t m_nState = 0x8A0; // int32_t + constexpr std::ptrdiff_t m_hConstraint = 0x8A4; // CEntityHandle + constexpr std::ptrdiff_t m_hConstraintParent = 0x8A8; // CEntityHandle + constexpr std::ptrdiff_t m_bForceNpcExclude = 0x8AC; // bool + constexpr std::ptrdiff_t m_sGlowEntity = 0x8B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_glowEntity = 0x8B8; // CHandle + constexpr std::ptrdiff_t m_usable = 0x8BC; // bool + constexpr std::ptrdiff_t m_szDisplayText = 0x8C0; // CUtlSymbolLarge +} + +namespace CBaseCSGrenade { // CCSWeaponBase + constexpr std::ptrdiff_t m_bRedraw = 0xE18; // bool + constexpr std::ptrdiff_t m_bIsHeldByPlayer = 0xE19; // bool + constexpr std::ptrdiff_t m_bPinPulled = 0xE1A; // bool + constexpr std::ptrdiff_t m_bJumpThrow = 0xE1B; // bool + constexpr std::ptrdiff_t m_eThrowStatus = 0xE1C; // EGrenadeThrowState + constexpr std::ptrdiff_t m_fThrowTime = 0xE20; // GameTime_t + constexpr std::ptrdiff_t m_flThrowStrength = 0xE24; // float + constexpr std::ptrdiff_t m_flThrowStrengthApproach = 0xE28; // float + constexpr std::ptrdiff_t m_fDropTime = 0xE2C; // GameTime_t +} + +namespace CBaseCSGrenadeProjectile { // CBaseGrenade + constexpr std::ptrdiff_t m_vInitialVelocity = 0x9C8; // Vector + constexpr std::ptrdiff_t m_nBounces = 0x9D4; // int32_t + constexpr std::ptrdiff_t m_nExplodeEffectIndex = 0x9D8; // CStrongHandle + constexpr std::ptrdiff_t m_nExplodeEffectTickBegin = 0x9E0; // int32_t + constexpr std::ptrdiff_t m_vecExplodeEffectOrigin = 0x9E4; // Vector + constexpr std::ptrdiff_t m_flSpawnTime = 0x9F0; // GameTime_t + constexpr std::ptrdiff_t m_unOGSExtraFlags = 0x9F4; // uint8_t + constexpr std::ptrdiff_t m_bDetonationRecorded = 0x9F5; // bool + constexpr std::ptrdiff_t m_flDetonateTime = 0x9F8; // GameTime_t + constexpr std::ptrdiff_t m_nItemIndex = 0x9FC; // uint16_t + constexpr std::ptrdiff_t m_vecOriginalSpawnLocation = 0xA00; // Vector + constexpr std::ptrdiff_t m_flLastBounceSoundTime = 0xA0C; // GameTime_t + constexpr std::ptrdiff_t m_vecGrenadeSpin = 0xA10; // RotationVector + constexpr std::ptrdiff_t m_vecLastHitSurfaceNormal = 0xA1C; // Vector + constexpr std::ptrdiff_t m_nTicksAtZeroVelocity = 0xA28; // int32_t +} + +namespace CBaseClientUIEntity { // CBaseModelEntity + constexpr std::ptrdiff_t m_bEnabled = 0x700; // bool + constexpr std::ptrdiff_t m_DialogXMLName = 0x708; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_PanelClassName = 0x710; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_PanelID = 0x718; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_CustomOutput0 = 0x720; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput1 = 0x748; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput2 = 0x770; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput3 = 0x798; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput4 = 0x7C0; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput5 = 0x7E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput6 = 0x810; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput7 = 0x838; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput8 = 0x860; // CEntityIOOutput + constexpr std::ptrdiff_t m_CustomOutput9 = 0x888; // CEntityIOOutput +} + +namespace CBaseCombatCharacter { // CBaseFlex + constexpr std::ptrdiff_t m_bForceServerRagdoll = 0x920; // bool + constexpr std::ptrdiff_t m_hMyWearables = 0x928; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_flFieldOfView = 0x940; // float + constexpr std::ptrdiff_t m_impactEnergyScale = 0x944; // float + constexpr std::ptrdiff_t m_LastHitGroup = 0x948; // HitGroup_t + constexpr std::ptrdiff_t m_bApplyStressDamage = 0x94C; // bool + constexpr std::ptrdiff_t m_bloodColor = 0x950; // int32_t + constexpr std::ptrdiff_t m_navMeshID = 0x9B0; // int32_t + constexpr std::ptrdiff_t m_iDamageCount = 0x9B4; // int32_t + constexpr std::ptrdiff_t m_pVecRelationships = 0x9B8; // CUtlVector* + constexpr std::ptrdiff_t m_strRelationships = 0x9C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_eHull = 0x9C8; // Hull_t + constexpr std::ptrdiff_t m_nNavHullIdx = 0x9CC; // uint32_t +} + +namespace CBaseDMStart { // CPointEntity + constexpr std::ptrdiff_t m_Master = 0x4B0; // CUtlSymbolLarge +} + +namespace CBaseDoor { // CBaseToggle + constexpr std::ptrdiff_t m_angMoveEntitySpace = 0x790; // QAngle + constexpr std::ptrdiff_t m_vecMoveDirParentSpace = 0x79C; // Vector + constexpr std::ptrdiff_t m_ls = 0x7A8; // locksound_t + constexpr std::ptrdiff_t m_bForceClosed = 0x7C8; // bool + constexpr std::ptrdiff_t m_bDoorGroup = 0x7C9; // bool + constexpr std::ptrdiff_t m_bLocked = 0x7CA; // bool + constexpr std::ptrdiff_t m_bIgnoreDebris = 0x7CB; // bool + constexpr std::ptrdiff_t m_eSpawnPosition = 0x7CC; // FuncDoorSpawnPos_t + constexpr std::ptrdiff_t m_flBlockDamage = 0x7D0; // float + constexpr std::ptrdiff_t m_NoiseMoving = 0x7D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_NoiseArrived = 0x7E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_NoiseMovingClosed = 0x7E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_NoiseArrivedClosed = 0x7F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_ChainTarget = 0x7F8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_OnBlockedClosing = 0x800; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnBlockedOpening = 0x828; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUnblockedClosing = 0x850; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUnblockedOpening = 0x878; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFullyClosed = 0x8A0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFullyOpen = 0x8C8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnClose = 0x8F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnOpen = 0x918; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnLockedUse = 0x940; // CEntityIOOutput + constexpr std::ptrdiff_t m_bLoopMoveSound = 0x968; // bool + constexpr std::ptrdiff_t m_bCreateNavObstacle = 0x980; // bool + constexpr std::ptrdiff_t m_isChaining = 0x981; // bool + constexpr std::ptrdiff_t m_bIsUsable = 0x982; // bool +} + +namespace CBaseEntity { // CEntityInstance + constexpr std::ptrdiff_t m_CBodyComponent = 0x30; // CBodyComponent* + constexpr std::ptrdiff_t m_NetworkTransmitComponent = 0x38; // CNetworkTransmitComponent + constexpr std::ptrdiff_t m_aThinkFunctions = 0x228; // CUtlVector + constexpr std::ptrdiff_t m_iCurrentThinkContext = 0x240; // int32_t + constexpr std::ptrdiff_t m_nLastThinkTick = 0x244; // GameTick_t + constexpr std::ptrdiff_t m_isSteadyState = 0x250; // CBitVec<64> + constexpr std::ptrdiff_t m_lastNetworkChange = 0x258; // float + constexpr std::ptrdiff_t m_ResponseContexts = 0x268; // CUtlVector + constexpr std::ptrdiff_t m_iszResponseContext = 0x280; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iHealth = 0x2A8; // int32_t + constexpr std::ptrdiff_t m_iMaxHealth = 0x2AC; // int32_t + constexpr std::ptrdiff_t m_lifeState = 0x2B0; // uint8_t + constexpr std::ptrdiff_t m_flDamageAccumulator = 0x2B4; // float + constexpr std::ptrdiff_t m_bTakesDamage = 0x2B8; // bool + constexpr std::ptrdiff_t m_nTakeDamageFlags = 0x2BC; // TakeDamageFlags_t + constexpr std::ptrdiff_t m_MoveCollide = 0x2C1; // MoveCollide_t + constexpr std::ptrdiff_t m_MoveType = 0x2C2; // MoveType_t + constexpr std::ptrdiff_t m_nWaterTouch = 0x2C3; // uint8_t + constexpr std::ptrdiff_t m_nSlimeTouch = 0x2C4; // uint8_t + constexpr std::ptrdiff_t m_bRestoreInHierarchy = 0x2C5; // bool + constexpr std::ptrdiff_t m_target = 0x2C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flMoveDoneTime = 0x2D0; // float + constexpr std::ptrdiff_t m_hDamageFilter = 0x2D4; // CHandle + constexpr std::ptrdiff_t m_iszDamageFilterName = 0x2D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nSubclassID = 0x2E0; // CUtlStringToken + constexpr std::ptrdiff_t m_flAnimTime = 0x2F0; // float + constexpr std::ptrdiff_t m_flSimulationTime = 0x2F4; // float + constexpr std::ptrdiff_t m_flCreateTime = 0x2F8; // GameTime_t + constexpr std::ptrdiff_t m_bClientSideRagdoll = 0x2FC; // bool + constexpr std::ptrdiff_t m_ubInterpolationFrame = 0x2FD; // uint8_t + constexpr std::ptrdiff_t m_vPrevVPhysicsUpdatePos = 0x300; // Vector + constexpr std::ptrdiff_t m_iTeamNum = 0x30C; // uint8_t + constexpr std::ptrdiff_t m_iGlobalname = 0x310; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iSentToClients = 0x318; // int32_t + constexpr std::ptrdiff_t m_flSpeed = 0x31C; // float + constexpr std::ptrdiff_t m_sUniqueHammerID = 0x320; // CUtlString + constexpr std::ptrdiff_t m_spawnflags = 0x328; // uint32_t + constexpr std::ptrdiff_t m_nNextThinkTick = 0x32C; // GameTick_t + constexpr std::ptrdiff_t m_nSimulationTick = 0x330; // int32_t + constexpr std::ptrdiff_t m_OnKilled = 0x338; // CEntityIOOutput + constexpr std::ptrdiff_t m_fFlags = 0x360; // uint32_t + constexpr std::ptrdiff_t m_vecAbsVelocity = 0x364; // Vector + constexpr std::ptrdiff_t m_vecVelocity = 0x370; // CNetworkVelocityVector + constexpr std::ptrdiff_t m_vecBaseVelocity = 0x3A0; // Vector + constexpr std::ptrdiff_t m_nPushEnumCount = 0x3AC; // int32_t + constexpr std::ptrdiff_t m_pCollision = 0x3B0; // CCollisionProperty* + constexpr std::ptrdiff_t m_hEffectEntity = 0x3B8; // CHandle + constexpr std::ptrdiff_t m_hOwnerEntity = 0x3BC; // CHandle + constexpr std::ptrdiff_t m_fEffects = 0x3C0; // uint32_t + constexpr std::ptrdiff_t m_hGroundEntity = 0x3C4; // CHandle + constexpr std::ptrdiff_t m_flFriction = 0x3C8; // float + constexpr std::ptrdiff_t m_flElasticity = 0x3CC; // float + constexpr std::ptrdiff_t m_flGravityScale = 0x3D0; // float + constexpr std::ptrdiff_t m_flTimeScale = 0x3D4; // float + constexpr std::ptrdiff_t m_flWaterLevel = 0x3D8; // float + constexpr std::ptrdiff_t m_bSimulatedEveryTick = 0x3DC; // bool + constexpr std::ptrdiff_t m_bAnimatedEveryTick = 0x3DD; // bool + constexpr std::ptrdiff_t m_bDisableLowViolence = 0x3DE; // bool + constexpr std::ptrdiff_t m_nWaterType = 0x3DF; // uint8_t + constexpr std::ptrdiff_t m_iEFlags = 0x3E0; // int32_t + constexpr std::ptrdiff_t m_OnUser1 = 0x3E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUser2 = 0x410; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUser3 = 0x438; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUser4 = 0x460; // CEntityIOOutput + constexpr std::ptrdiff_t m_iInitialTeamNum = 0x488; // int32_t + constexpr std::ptrdiff_t m_flNavIgnoreUntilTime = 0x48C; // GameTime_t + constexpr std::ptrdiff_t m_vecAngVelocity = 0x490; // QAngle + constexpr std::ptrdiff_t m_bNetworkQuantizeOriginAndAngles = 0x49C; // bool + constexpr std::ptrdiff_t m_bLagCompensate = 0x49D; // bool + constexpr std::ptrdiff_t m_flOverriddenFriction = 0x4A0; // float + constexpr std::ptrdiff_t m_pBlocker = 0x4A4; // CHandle + constexpr std::ptrdiff_t m_flLocalTime = 0x4A8; // float + constexpr std::ptrdiff_t m_flVPhysicsUpdateLocalTime = 0x4AC; // float +} + +namespace CBaseFilter { // CLogicalEntity + constexpr std::ptrdiff_t m_bNegated = 0x4B0; // bool + constexpr std::ptrdiff_t m_OnPass = 0x4B8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFail = 0x4E0; // CEntityIOOutput +} + +namespace CBaseFire { // CBaseEntity + constexpr std::ptrdiff_t m_flScale = 0x4B0; // float + constexpr std::ptrdiff_t m_flStartScale = 0x4B4; // float + constexpr std::ptrdiff_t m_flScaleTime = 0x4B8; // float + constexpr std::ptrdiff_t m_nFlags = 0x4BC; // uint32_t +} + +namespace CBaseFlex { // CBaseAnimGraph + constexpr std::ptrdiff_t m_flexWeight = 0x890; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_vLookTargetPosition = 0x8A8; // Vector + constexpr std::ptrdiff_t m_blinktoggle = 0x8B4; // bool + constexpr std::ptrdiff_t m_flAllowResponsesEndTime = 0x908; // GameTime_t + constexpr std::ptrdiff_t m_flLastFlexAnimationTime = 0x90C; // GameTime_t + constexpr std::ptrdiff_t m_nNextSceneEventId = 0x910; // uint32_t + constexpr std::ptrdiff_t m_bUpdateLayerPriorities = 0x914; // bool +} + +namespace CBaseFlexAlias_funCBaseFlex { // CBaseFlex +} + +namespace CBaseGrenade { // CBaseFlex + constexpr std::ptrdiff_t m_OnPlayerPickup = 0x928; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnExplode = 0x950; // CEntityIOOutput + constexpr std::ptrdiff_t m_bHasWarnedAI = 0x978; // bool + constexpr std::ptrdiff_t m_bIsSmokeGrenade = 0x979; // bool + constexpr std::ptrdiff_t m_bIsLive = 0x97A; // bool + constexpr std::ptrdiff_t m_DmgRadius = 0x97C; // float + constexpr std::ptrdiff_t m_flDetonateTime = 0x980; // GameTime_t + constexpr std::ptrdiff_t m_flWarnAITime = 0x984; // float + constexpr std::ptrdiff_t m_flDamage = 0x988; // float + constexpr std::ptrdiff_t m_iszBounceSound = 0x990; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_ExplosionSound = 0x998; // CUtlString + constexpr std::ptrdiff_t m_hThrower = 0x9A4; // CHandle + constexpr std::ptrdiff_t m_flNextAttack = 0x9BC; // GameTime_t + constexpr std::ptrdiff_t m_hOriginalThrower = 0x9C0; // CHandle +} + +namespace CBaseIssue { + constexpr std::ptrdiff_t m_szTypeString = 0x20; // char[64] + constexpr std::ptrdiff_t m_szDetailsString = 0x60; // char[260] + constexpr std::ptrdiff_t m_iNumYesVotes = 0x164; // int32_t + constexpr std::ptrdiff_t m_iNumNoVotes = 0x168; // int32_t + constexpr std::ptrdiff_t m_iNumPotentialVotes = 0x16C; // int32_t + constexpr std::ptrdiff_t m_pVoteController = 0x170; // CVoteController* +} + +namespace CBaseModelEntity { // CBaseEntity + constexpr std::ptrdiff_t m_CRenderComponent = 0x4B0; // CRenderComponent* + constexpr std::ptrdiff_t m_CHitboxComponent = 0x4B8; // CHitboxComponent + constexpr std::ptrdiff_t m_flDissolveStartTime = 0x4E0; // GameTime_t + constexpr std::ptrdiff_t m_OnIgnite = 0x4E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_nRenderMode = 0x510; // RenderMode_t + constexpr std::ptrdiff_t m_nRenderFX = 0x511; // RenderFx_t + constexpr std::ptrdiff_t m_bAllowFadeInView = 0x512; // bool + constexpr std::ptrdiff_t m_clrRender = 0x513; // Color + constexpr std::ptrdiff_t m_vecRenderAttributes = 0x518; // CUtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_bRenderToCubemaps = 0x568; // bool + constexpr std::ptrdiff_t m_Collision = 0x570; // CCollisionProperty + constexpr std::ptrdiff_t m_Glow = 0x620; // CGlowProperty + constexpr std::ptrdiff_t m_flGlowBackfaceMult = 0x678; // float + constexpr std::ptrdiff_t m_fadeMinDist = 0x67C; // float + constexpr std::ptrdiff_t m_fadeMaxDist = 0x680; // float + constexpr std::ptrdiff_t m_flFadeScale = 0x684; // float + constexpr std::ptrdiff_t m_flShadowStrength = 0x688; // float + constexpr std::ptrdiff_t m_nObjectCulling = 0x68C; // uint8_t + constexpr std::ptrdiff_t m_nAddDecal = 0x690; // int32_t + constexpr std::ptrdiff_t m_vDecalPosition = 0x694; // Vector + constexpr std::ptrdiff_t m_vDecalForwardAxis = 0x6A0; // Vector + constexpr std::ptrdiff_t m_flDecalHealBloodRate = 0x6AC; // float + constexpr std::ptrdiff_t m_flDecalHealHeightRate = 0x6B0; // float + constexpr std::ptrdiff_t m_ConfigEntitiesToPropagateMaterialDecalsTo = 0x6B8; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_vecViewOffset = 0x6D0; // CNetworkViewOffsetVector +} + +namespace CBaseMoveBehavior { // CPathKeyFrame + constexpr std::ptrdiff_t m_iPositionInterpolator = 0x510; // int32_t + constexpr std::ptrdiff_t m_iRotationInterpolator = 0x514; // int32_t + constexpr std::ptrdiff_t m_flAnimStartTime = 0x518; // float + constexpr std::ptrdiff_t m_flAnimEndTime = 0x51C; // float + constexpr std::ptrdiff_t m_flAverageSpeedAcrossFrame = 0x520; // float + constexpr std::ptrdiff_t m_pCurrentKeyFrame = 0x528; // CPathKeyFrame* + constexpr std::ptrdiff_t m_pTargetKeyFrame = 0x530; // CPathKeyFrame* + constexpr std::ptrdiff_t m_pPreKeyFrame = 0x538; // CPathKeyFrame* + constexpr std::ptrdiff_t m_pPostKeyFrame = 0x540; // CPathKeyFrame* + constexpr std::ptrdiff_t m_flTimeIntoFrame = 0x548; // float + constexpr std::ptrdiff_t m_iDirection = 0x54C; // int32_t +} + +namespace CBasePlatTrain { // CBaseToggle + constexpr std::ptrdiff_t m_NoiseMoving = 0x780; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_NoiseArrived = 0x788; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_volume = 0x798; // float + constexpr std::ptrdiff_t m_flTWidth = 0x79C; // float + constexpr std::ptrdiff_t m_flTLength = 0x7A0; // float +} + +namespace CBasePlayerController { // CBaseEntity + constexpr std::ptrdiff_t m_nInButtonsWhichAreToggles = 0x4B8; // uint64_t + constexpr std::ptrdiff_t m_nTickBase = 0x4C0; // uint32_t + constexpr std::ptrdiff_t m_hPawn = 0x4F0; // CHandle + constexpr std::ptrdiff_t m_nSplitScreenSlot = 0x4F4; // CSplitScreenSlot + constexpr std::ptrdiff_t m_hSplitOwner = 0x4F8; // CHandle + constexpr std::ptrdiff_t m_hSplitScreenPlayers = 0x500; // CUtlVector> + constexpr std::ptrdiff_t m_bIsHLTV = 0x518; // bool + constexpr std::ptrdiff_t m_iConnected = 0x51C; // PlayerConnectedState + constexpr std::ptrdiff_t m_iszPlayerName = 0x520; // char[128] + constexpr std::ptrdiff_t m_szNetworkIDString = 0x5A0; // CUtlString + constexpr std::ptrdiff_t m_fLerpTime = 0x5A8; // float + constexpr std::ptrdiff_t m_bLagCompensation = 0x5AC; // bool + constexpr std::ptrdiff_t m_bPredict = 0x5AD; // bool + constexpr std::ptrdiff_t m_bAutoKickDisabled = 0x5AE; // bool + constexpr std::ptrdiff_t m_bIsLowViolence = 0x5AF; // bool + constexpr std::ptrdiff_t m_bGamePaused = 0x5B0; // bool + constexpr std::ptrdiff_t m_nUsecTimestampLastUserCmdReceived = 0x640; // int64_t + constexpr std::ptrdiff_t m_iIgnoreGlobalChat = 0x658; // ChatIgnoreType_t + constexpr std::ptrdiff_t m_flLastPlayerTalkTime = 0x65C; // float + constexpr std::ptrdiff_t m_flLastEntitySteadyState = 0x660; // float + constexpr std::ptrdiff_t m_nAvailableEntitySteadyState = 0x664; // int32_t + constexpr std::ptrdiff_t m_bHasAnySteadyStateEnts = 0x668; // bool + constexpr std::ptrdiff_t m_steamID = 0x678; // uint64_t + constexpr std::ptrdiff_t m_iDesiredFOV = 0x680; // uint32_t +} + +namespace CBasePlayerPawn { // CBaseCombatCharacter + constexpr std::ptrdiff_t m_pWeaponServices = 0x9D0; // CPlayer_WeaponServices* + constexpr std::ptrdiff_t m_pItemServices = 0x9D8; // CPlayer_ItemServices* + constexpr std::ptrdiff_t m_pAutoaimServices = 0x9E0; // CPlayer_AutoaimServices* + constexpr std::ptrdiff_t m_pObserverServices = 0x9E8; // CPlayer_ObserverServices* + constexpr std::ptrdiff_t m_pWaterServices = 0x9F0; // CPlayer_WaterServices* + constexpr std::ptrdiff_t m_pUseServices = 0x9F8; // CPlayer_UseServices* + constexpr std::ptrdiff_t m_pFlashlightServices = 0xA00; // CPlayer_FlashlightServices* + constexpr std::ptrdiff_t m_pCameraServices = 0xA08; // CPlayer_CameraServices* + constexpr std::ptrdiff_t m_pMovementServices = 0xA10; // CPlayer_MovementServices* + constexpr std::ptrdiff_t m_ServerViewAngleChanges = 0xA20; // CUtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_nHighestGeneratedServerViewAngleChangeIndex = 0xA70; // uint32_t + constexpr std::ptrdiff_t v_angle = 0xA74; // QAngle + constexpr std::ptrdiff_t v_anglePrevious = 0xA80; // QAngle + constexpr std::ptrdiff_t m_iHideHUD = 0xA8C; // uint32_t + constexpr std::ptrdiff_t m_skybox3d = 0xA90; // sky3dparams_t + constexpr std::ptrdiff_t m_fTimeLastHurt = 0xB20; // GameTime_t + constexpr std::ptrdiff_t m_flDeathTime = 0xB24; // GameTime_t + constexpr std::ptrdiff_t m_fNextSuicideTime = 0xB28; // GameTime_t + constexpr std::ptrdiff_t m_fInitHUD = 0xB2C; // bool + constexpr std::ptrdiff_t m_pExpresser = 0xB30; // CAI_Expresser* + constexpr std::ptrdiff_t m_hController = 0xB38; // CHandle + constexpr std::ptrdiff_t m_fHltvReplayDelay = 0xB40; // float + constexpr std::ptrdiff_t m_fHltvReplayEnd = 0xB44; // float + constexpr std::ptrdiff_t m_iHltvReplayEntity = 0xB48; // CEntityIndex +} + +namespace CBasePlayerVData { // CEntitySubclassVDataBase + constexpr std::ptrdiff_t m_sModelName = 0x28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_flHeadDamageMultiplier = 0x108; // CSkillFloat + constexpr std::ptrdiff_t m_flChestDamageMultiplier = 0x118; // CSkillFloat + constexpr std::ptrdiff_t m_flStomachDamageMultiplier = 0x128; // CSkillFloat + constexpr std::ptrdiff_t m_flArmDamageMultiplier = 0x138; // CSkillFloat + constexpr std::ptrdiff_t m_flLegDamageMultiplier = 0x148; // CSkillFloat + constexpr std::ptrdiff_t m_flHoldBreathTime = 0x158; // float + constexpr std::ptrdiff_t m_flDrowningDamageInterval = 0x15C; // float + constexpr std::ptrdiff_t m_nDrowningDamageInitial = 0x160; // int32_t + constexpr std::ptrdiff_t m_nDrowningDamageMax = 0x164; // int32_t + constexpr std::ptrdiff_t m_nWaterSpeed = 0x168; // int32_t + constexpr std::ptrdiff_t m_flUseRange = 0x16C; // float + constexpr std::ptrdiff_t m_flUseAngleTolerance = 0x170; // float + constexpr std::ptrdiff_t m_flCrouchTime = 0x174; // float +} + +namespace CBasePlayerWeapon { // CEconEntity + constexpr std::ptrdiff_t m_nNextPrimaryAttackTick = 0xC18; // GameTick_t + constexpr std::ptrdiff_t m_flNextPrimaryAttackTickRatio = 0xC1C; // float + constexpr std::ptrdiff_t m_nNextSecondaryAttackTick = 0xC20; // GameTick_t + constexpr std::ptrdiff_t m_flNextSecondaryAttackTickRatio = 0xC24; // float + constexpr std::ptrdiff_t m_iClip1 = 0xC28; // int32_t + constexpr std::ptrdiff_t m_iClip2 = 0xC2C; // int32_t + constexpr std::ptrdiff_t m_pReserveAmmo = 0xC30; // int32_t[2] + constexpr std::ptrdiff_t m_OnPlayerUse = 0xC38; // CEntityIOOutput +} + +namespace CBasePlayerWeaponVData { // CEntitySubclassVDataBase + constexpr std::ptrdiff_t m_szWorldModel = 0x28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_bBuiltRightHanded = 0x108; // bool + constexpr std::ptrdiff_t m_bAllowFlipping = 0x109; // bool + constexpr std::ptrdiff_t m_bIsFullAuto = 0x10A; // bool + constexpr std::ptrdiff_t m_nNumBullets = 0x10C; // int32_t + constexpr std::ptrdiff_t m_sMuzzleAttachment = 0x110; // CUtlString + constexpr std::ptrdiff_t m_szMuzzleFlashParticle = 0x118; // CResourceNameTyped> + constexpr std::ptrdiff_t m_iFlags = 0x1F8; // ItemFlagTypes_t + constexpr std::ptrdiff_t m_nPrimaryAmmoType = 0x1F9; // AmmoIndex_t + constexpr std::ptrdiff_t m_nSecondaryAmmoType = 0x1FA; // AmmoIndex_t + constexpr std::ptrdiff_t m_iMaxClip1 = 0x1FC; // int32_t + constexpr std::ptrdiff_t m_iMaxClip2 = 0x200; // int32_t + constexpr std::ptrdiff_t m_iDefaultClip1 = 0x204; // int32_t + constexpr std::ptrdiff_t m_iDefaultClip2 = 0x208; // int32_t + constexpr std::ptrdiff_t m_iWeight = 0x20C; // int32_t + constexpr std::ptrdiff_t m_bAutoSwitchTo = 0x210; // bool + constexpr std::ptrdiff_t m_bAutoSwitchFrom = 0x211; // bool + constexpr std::ptrdiff_t m_iRumbleEffect = 0x214; // RumbleEffect_t + constexpr std::ptrdiff_t m_aShootSounds = 0x218; // CUtlMap + constexpr std::ptrdiff_t m_iSlot = 0x238; // int32_t + constexpr std::ptrdiff_t m_iPosition = 0x23C; // int32_t +} + +namespace CBaseProp { // CBaseAnimGraph + constexpr std::ptrdiff_t m_bModelOverrodeBlockLOS = 0x890; // bool + constexpr std::ptrdiff_t m_iShapeType = 0x894; // int32_t + constexpr std::ptrdiff_t m_bConformToCollisionBounds = 0x898; // bool + constexpr std::ptrdiff_t m_mPreferredCatchTransform = 0x89C; // matrix3x4_t +} + +namespace CBasePropDoor { // CDynamicProp + constexpr std::ptrdiff_t m_flAutoReturnDelay = 0xB18; // float + constexpr std::ptrdiff_t m_hDoorList = 0xB20; // CUtlVector> + constexpr std::ptrdiff_t m_nHardwareType = 0xB38; // int32_t + constexpr std::ptrdiff_t m_bNeedsHardware = 0xB3C; // bool + constexpr std::ptrdiff_t m_eDoorState = 0xB40; // DoorState_t + constexpr std::ptrdiff_t m_bLocked = 0xB44; // bool + constexpr std::ptrdiff_t m_closedPosition = 0xB48; // Vector + constexpr std::ptrdiff_t m_closedAngles = 0xB54; // QAngle + constexpr std::ptrdiff_t m_hBlocker = 0xB60; // CHandle + constexpr std::ptrdiff_t m_bFirstBlocked = 0xB64; // bool + constexpr std::ptrdiff_t m_ls = 0xB68; // locksound_t + constexpr std::ptrdiff_t m_bForceClosed = 0xB88; // bool + constexpr std::ptrdiff_t m_vecLatchWorldPosition = 0xB8C; // Vector + constexpr std::ptrdiff_t m_hActivator = 0xB98; // CHandle + constexpr std::ptrdiff_t m_SoundMoving = 0xBA8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundOpen = 0xBB0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundClose = 0xBB8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundLock = 0xBC0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundUnlock = 0xBC8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundLatch = 0xBD0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundPound = 0xBD8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundJiggle = 0xBE0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_SoundLockedAnim = 0xBE8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_numCloseAttempts = 0xBF0; // int32_t + constexpr std::ptrdiff_t m_nPhysicsMaterial = 0xBF4; // CUtlStringToken + constexpr std::ptrdiff_t m_SlaveName = 0xBF8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hMaster = 0xC00; // CHandle + constexpr std::ptrdiff_t m_OnBlockedClosing = 0xC08; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnBlockedOpening = 0xC30; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUnblockedClosing = 0xC58; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUnblockedOpening = 0xC80; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFullyClosed = 0xCA8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFullyOpen = 0xCD0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnClose = 0xCF8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnOpen = 0xD20; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnLockedUse = 0xD48; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAjarOpen = 0xD70; // CEntityIOOutput +} + +namespace CBaseToggle { // CBaseModelEntity + constexpr std::ptrdiff_t m_toggle_state = 0x700; // TOGGLE_STATE + constexpr std::ptrdiff_t m_flMoveDistance = 0x704; // float + constexpr std::ptrdiff_t m_flWait = 0x708; // float + constexpr std::ptrdiff_t m_flLip = 0x70C; // float + constexpr std::ptrdiff_t m_bAlwaysFireBlockedOutputs = 0x710; // bool + constexpr std::ptrdiff_t m_vecPosition1 = 0x714; // Vector + constexpr std::ptrdiff_t m_vecPosition2 = 0x720; // Vector + constexpr std::ptrdiff_t m_vecMoveAng = 0x72C; // QAngle + constexpr std::ptrdiff_t m_vecAngle1 = 0x738; // QAngle + constexpr std::ptrdiff_t m_vecAngle2 = 0x744; // QAngle + constexpr std::ptrdiff_t m_flHeight = 0x750; // float + constexpr std::ptrdiff_t m_hActivator = 0x754; // CHandle + constexpr std::ptrdiff_t m_vecFinalDest = 0x758; // Vector + constexpr std::ptrdiff_t m_vecFinalAngle = 0x764; // QAngle + constexpr std::ptrdiff_t m_movementType = 0x770; // int32_t + constexpr std::ptrdiff_t m_sMaster = 0x778; // CUtlSymbolLarge +} + +namespace CBaseTrigger { // CBaseToggle + constexpr std::ptrdiff_t m_bDisabled = 0x780; // bool + constexpr std::ptrdiff_t m_iFilterName = 0x788; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFilter = 0x790; // CHandle + constexpr std::ptrdiff_t m_OnStartTouch = 0x798; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnStartTouchAll = 0x7C0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnEndTouch = 0x7E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnEndTouchAll = 0x810; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTouching = 0x838; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnNotTouching = 0x860; // CEntityIOOutput + constexpr std::ptrdiff_t m_hTouchingEntities = 0x888; // CUtlVector> + constexpr std::ptrdiff_t m_bClientSidePredicted = 0x8A0; // bool +} + +namespace CBaseViewModel { // CBaseAnimGraph + constexpr std::ptrdiff_t m_vecLastFacing = 0x898; // Vector + constexpr std::ptrdiff_t m_nViewModelIndex = 0x8A4; // uint32_t + constexpr std::ptrdiff_t m_nAnimationParity = 0x8A8; // uint32_t + constexpr std::ptrdiff_t m_flAnimationStartTime = 0x8AC; // float + constexpr std::ptrdiff_t m_hWeapon = 0x8B0; // CHandle + constexpr std::ptrdiff_t m_sVMName = 0x8B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sAnimationPrefix = 0x8C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hOldLayerSequence = 0x8C8; // HSequence + constexpr std::ptrdiff_t m_oldLayer = 0x8CC; // int32_t + constexpr std::ptrdiff_t m_oldLayerStartTime = 0x8D0; // float + constexpr std::ptrdiff_t m_hControlPanel = 0x8D4; // CHandle +} + +namespace CBeam { // CBaseModelEntity + constexpr std::ptrdiff_t m_flFrameRate = 0x700; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0x704; // float + constexpr std::ptrdiff_t m_flFireTime = 0x708; // GameTime_t + constexpr std::ptrdiff_t m_flDamage = 0x70C; // float + constexpr std::ptrdiff_t m_nNumBeamEnts = 0x710; // uint8_t + constexpr std::ptrdiff_t m_hBaseMaterial = 0x718; // CStrongHandle + constexpr std::ptrdiff_t m_nHaloIndex = 0x720; // CStrongHandle + constexpr std::ptrdiff_t m_nBeamType = 0x728; // BeamType_t + constexpr std::ptrdiff_t m_nBeamFlags = 0x72C; // uint32_t + constexpr std::ptrdiff_t m_hAttachEntity = 0x730; // CHandle[10] + constexpr std::ptrdiff_t m_nAttachIndex = 0x758; // AttachmentHandle_t[10] + constexpr std::ptrdiff_t m_fWidth = 0x764; // float + constexpr std::ptrdiff_t m_fEndWidth = 0x768; // float + constexpr std::ptrdiff_t m_fFadeLength = 0x76C; // float + constexpr std::ptrdiff_t m_fHaloScale = 0x770; // float + constexpr std::ptrdiff_t m_fAmplitude = 0x774; // float + constexpr std::ptrdiff_t m_fStartFrame = 0x778; // float + constexpr std::ptrdiff_t m_fSpeed = 0x77C; // float + constexpr std::ptrdiff_t m_flFrame = 0x780; // float + constexpr std::ptrdiff_t m_nClipStyle = 0x784; // BeamClipStyle_t + constexpr std::ptrdiff_t m_bTurnedOff = 0x788; // bool + constexpr std::ptrdiff_t m_vecEndPos = 0x78C; // Vector + constexpr std::ptrdiff_t m_hEndEntity = 0x798; // CHandle + constexpr std::ptrdiff_t m_nDissolveType = 0x79C; // int32_t +} + +namespace CBlood { // CPointEntity + constexpr std::ptrdiff_t m_vecSprayAngles = 0x4B0; // QAngle + constexpr std::ptrdiff_t m_vecSprayDir = 0x4BC; // Vector + constexpr std::ptrdiff_t m_flAmount = 0x4C8; // float + constexpr std::ptrdiff_t m_Color = 0x4CC; // int32_t +} + +namespace CBodyComponent { // CEntityComponent + constexpr std::ptrdiff_t m_pSceneNode = 0x8; // CGameSceneNode* + constexpr std::ptrdiff_t __m_pChainEntity = 0x20; // CNetworkVarChainer +} + +namespace CBodyComponentBaseAnimGraph { // CBodyComponentSkeletonInstance + constexpr std::ptrdiff_t m_animationController = 0x480; // CBaseAnimGraphController + constexpr std::ptrdiff_t __m_pChainEntity = 0x760; // CNetworkVarChainer +} + +namespace CBodyComponentBaseModelEntity { // CBodyComponentSkeletonInstance + constexpr std::ptrdiff_t __m_pChainEntity = 0x480; // CNetworkVarChainer +} + +namespace CBodyComponentPoint { // CBodyComponent + constexpr std::ptrdiff_t m_sceneNode = 0x50; // CGameSceneNode + constexpr std::ptrdiff_t __m_pChainEntity = 0x1A0; // CNetworkVarChainer +} + +namespace CBodyComponentSkeletonInstance { // CBodyComponent + constexpr std::ptrdiff_t m_skeletonInstance = 0x50; // CSkeletonInstance + constexpr std::ptrdiff_t __m_pChainEntity = 0x450; // CNetworkVarChainer +} + +namespace CBombTarget { // CBaseTrigger + constexpr std::ptrdiff_t m_OnBombExplode = 0x8A8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnBombPlanted = 0x8D0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnBombDefused = 0x8F8; // CEntityIOOutput + constexpr std::ptrdiff_t m_bIsBombSiteB = 0x920; // bool + constexpr std::ptrdiff_t m_bIsHeistBombTarget = 0x921; // bool + constexpr std::ptrdiff_t m_bBombPlantedHere = 0x922; // bool + constexpr std::ptrdiff_t m_szMountTarget = 0x928; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hInstructorHint = 0x930; // CHandle + constexpr std::ptrdiff_t m_nBombSiteDesignation = 0x934; // int32_t +} + +namespace CBot { + constexpr std::ptrdiff_t m_pController = 0x10; // CCSPlayerController* + constexpr std::ptrdiff_t m_pPlayer = 0x18; // CCSPlayerPawn* + constexpr std::ptrdiff_t m_bHasSpawned = 0x20; // bool + constexpr std::ptrdiff_t m_id = 0x24; // uint32_t + constexpr std::ptrdiff_t m_isRunning = 0xB0; // bool + constexpr std::ptrdiff_t m_isCrouching = 0xB1; // bool + constexpr std::ptrdiff_t m_forwardSpeed = 0xB4; // float + constexpr std::ptrdiff_t m_leftSpeed = 0xB8; // float + constexpr std::ptrdiff_t m_verticalSpeed = 0xBC; // float + constexpr std::ptrdiff_t m_buttonFlags = 0xC0; // uint64_t + constexpr std::ptrdiff_t m_jumpTimestamp = 0xC8; // float + constexpr std::ptrdiff_t m_viewForward = 0xCC; // Vector + constexpr std::ptrdiff_t m_postureStackIndex = 0xE8; // int32_t +} + +namespace CBreachCharge { // CCSWeaponBase +} + +namespace CBreachChargeProjectile { // CBaseGrenade +} + +namespace CBreakable { // CBaseModelEntity + constexpr std::ptrdiff_t m_Material = 0x710; // Materials + constexpr std::ptrdiff_t m_hBreaker = 0x714; // CHandle + constexpr std::ptrdiff_t m_Explosion = 0x718; // Explosions + constexpr std::ptrdiff_t m_iszSpawnObject = 0x720; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flPressureDelay = 0x728; // float + constexpr std::ptrdiff_t m_iMinHealthDmg = 0x72C; // int32_t + constexpr std::ptrdiff_t m_iszPropData = 0x730; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_impactEnergyScale = 0x738; // float + constexpr std::ptrdiff_t m_nOverrideBlockLOS = 0x73C; // EOverrideBlockLOS_t + constexpr std::ptrdiff_t m_OnBreak = 0x740; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnHealthChanged = 0x768; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_flDmgModBullet = 0x790; // float + constexpr std::ptrdiff_t m_flDmgModClub = 0x794; // float + constexpr std::ptrdiff_t m_flDmgModExplosive = 0x798; // float + constexpr std::ptrdiff_t m_flDmgModFire = 0x79C; // float + constexpr std::ptrdiff_t m_iszPhysicsDamageTableName = 0x7A0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszBasePropData = 0x7A8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iInteractions = 0x7B0; // int32_t + constexpr std::ptrdiff_t m_PerformanceMode = 0x7B4; // PerformanceMode_t + constexpr std::ptrdiff_t m_hPhysicsAttacker = 0x7B8; // CHandle + constexpr std::ptrdiff_t m_flLastPhysicsInfluenceTime = 0x7BC; // GameTime_t +} + +namespace CBreakableProp { // CBaseProp + constexpr std::ptrdiff_t m_OnBreak = 0x8E0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnHealthChanged = 0x908; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnTakeDamage = 0x930; // CEntityIOOutput + constexpr std::ptrdiff_t m_impactEnergyScale = 0x958; // float + constexpr std::ptrdiff_t m_iMinHealthDmg = 0x95C; // int32_t + constexpr std::ptrdiff_t m_preferredCarryAngles = 0x960; // QAngle + constexpr std::ptrdiff_t m_flPressureDelay = 0x96C; // float + constexpr std::ptrdiff_t m_hBreaker = 0x970; // CHandle + constexpr std::ptrdiff_t m_PerformanceMode = 0x974; // PerformanceMode_t + constexpr std::ptrdiff_t m_flDmgModBullet = 0x978; // float + constexpr std::ptrdiff_t m_flDmgModClub = 0x97C; // float + constexpr std::ptrdiff_t m_flDmgModExplosive = 0x980; // float + constexpr std::ptrdiff_t m_flDmgModFire = 0x984; // float + constexpr std::ptrdiff_t m_iszPhysicsDamageTableName = 0x988; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszBasePropData = 0x990; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iInteractions = 0x998; // int32_t + constexpr std::ptrdiff_t m_flPreventDamageBeforeTime = 0x99C; // GameTime_t + constexpr std::ptrdiff_t m_bHasBreakPiecesOrCommands = 0x9A0; // bool + constexpr std::ptrdiff_t m_explodeDamage = 0x9A4; // float + constexpr std::ptrdiff_t m_explodeRadius = 0x9A8; // float + constexpr std::ptrdiff_t m_explosionDelay = 0x9B0; // float + constexpr std::ptrdiff_t m_explosionBuildupSound = 0x9B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_explosionCustomEffect = 0x9C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_explosionCustomSound = 0x9C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_explosionModifier = 0x9D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hPhysicsAttacker = 0x9D8; // CHandle + constexpr std::ptrdiff_t m_flLastPhysicsInfluenceTime = 0x9DC; // GameTime_t + constexpr std::ptrdiff_t m_bOriginalBlockLOS = 0x9E0; // bool + constexpr std::ptrdiff_t m_flDefaultFadeScale = 0x9E4; // float + constexpr std::ptrdiff_t m_hLastAttacker = 0x9E8; // CHandle + constexpr std::ptrdiff_t m_hFlareEnt = 0x9EC; // CHandle + constexpr std::ptrdiff_t m_bUsePuntSound = 0x9F0; // bool + constexpr std::ptrdiff_t m_iszPuntSound = 0x9F8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_noGhostCollision = 0xA00; // bool +} + +namespace CBreakableStageHelper { + constexpr std::ptrdiff_t m_nCurrentStage = 0x8; // int32_t + constexpr std::ptrdiff_t m_nStageCount = 0xC; // int32_t +} + +namespace CBtActionAim { // CBtNode + constexpr std::ptrdiff_t m_szSensorInputKey = 0x68; // CUtlString + constexpr std::ptrdiff_t m_szAimReadyKey = 0x80; // CUtlString + constexpr std::ptrdiff_t m_flZoomCooldownTimestamp = 0x88; // float + constexpr std::ptrdiff_t m_bDoneAiming = 0x8C; // bool + constexpr std::ptrdiff_t m_flLerpStartTime = 0x90; // float + constexpr std::ptrdiff_t m_flNextLookTargetLerpTime = 0x94; // float + constexpr std::ptrdiff_t m_flPenaltyReductionRatio = 0x98; // float + constexpr std::ptrdiff_t m_NextLookTarget = 0x9C; // QAngle + constexpr std::ptrdiff_t m_AimTimer = 0xA8; // CountdownTimer + constexpr std::ptrdiff_t m_SniperHoldTimer = 0xC0; // CountdownTimer + constexpr std::ptrdiff_t m_FocusIntervalTimer = 0xD8; // CountdownTimer + constexpr std::ptrdiff_t m_bAcquired = 0xF0; // bool +} + +namespace CBtActionCombatPositioning { // CBtNode + constexpr std::ptrdiff_t m_szSensorInputKey = 0x68; // CUtlString + constexpr std::ptrdiff_t m_szIsAttackingKey = 0x80; // CUtlString + constexpr std::ptrdiff_t m_ActionTimer = 0x88; // CountdownTimer + constexpr std::ptrdiff_t m_bCrouching = 0xA0; // bool +} + +namespace CBtActionMoveTo { // CBtNode + constexpr std::ptrdiff_t m_szDestinationInputKey = 0x60; // CUtlString + constexpr std::ptrdiff_t m_szHidingSpotInputKey = 0x68; // CUtlString + constexpr std::ptrdiff_t m_szThreatInputKey = 0x70; // CUtlString + constexpr std::ptrdiff_t m_vecDestination = 0x78; // Vector + constexpr std::ptrdiff_t m_bAutoLookAdjust = 0x84; // bool + constexpr std::ptrdiff_t m_bComputePath = 0x85; // bool + constexpr std::ptrdiff_t m_flDamagingAreasPenaltyCost = 0x88; // float + constexpr std::ptrdiff_t m_CheckApproximateCornersTimer = 0x90; // CountdownTimer + constexpr std::ptrdiff_t m_CheckHighPriorityItem = 0xA8; // CountdownTimer + constexpr std::ptrdiff_t m_RepathTimer = 0xC0; // CountdownTimer + constexpr std::ptrdiff_t m_flArrivalEpsilon = 0xD8; // float + constexpr std::ptrdiff_t m_flAdditionalArrivalEpsilon2D = 0xDC; // float + constexpr std::ptrdiff_t m_flHidingSpotCheckDistanceThreshold = 0xE0; // float + constexpr std::ptrdiff_t m_flNearestAreaDistanceThreshold = 0xE4; // float +} + +namespace CBtActionParachutePositioning { // CBtNode + constexpr std::ptrdiff_t m_ActionTimer = 0x58; // CountdownTimer +} + +namespace CBtNode { +} + +namespace CBtNodeComposite { // CBtNode +} + +namespace CBtNodeCondition { // CBtNodeDecorator + constexpr std::ptrdiff_t m_bNegated = 0x58; // bool +} + +namespace CBtNodeConditionInactive { // CBtNodeCondition + constexpr std::ptrdiff_t m_flRoundStartThresholdSeconds = 0x78; // float + constexpr std::ptrdiff_t m_flSensorInactivityThresholdSeconds = 0x7C; // float + constexpr std::ptrdiff_t m_SensorInactivityTimer = 0x80; // CountdownTimer +} + +namespace CBtNodeDecorator { // CBtNode +} + +namespace CBubbling { // CBaseModelEntity + constexpr std::ptrdiff_t m_density = 0x700; // int32_t + constexpr std::ptrdiff_t m_frequency = 0x704; // int32_t + constexpr std::ptrdiff_t m_state = 0x708; // int32_t +} + +namespace CBumpMine { // CCSWeaponBase +} + +namespace CBumpMineProjectile { // CBaseGrenade +} + +namespace CBuoyancyHelper { + constexpr std::ptrdiff_t m_flFluidDensity = 0x18; // float +} + +namespace CBuyZone { // CBaseTrigger + constexpr std::ptrdiff_t m_LegacyTeamNum = 0x8A8; // int32_t +} + +namespace CC4 { // CCSWeaponBase + constexpr std::ptrdiff_t m_vecLastValidPlayerHeldPosition = 0xE18; // Vector + constexpr std::ptrdiff_t m_vecLastValidDroppedPosition = 0xE24; // Vector + constexpr std::ptrdiff_t m_bDoValidDroppedPositionCheck = 0xE30; // bool + constexpr std::ptrdiff_t m_bStartedArming = 0xE31; // bool + constexpr std::ptrdiff_t m_fArmedTime = 0xE34; // GameTime_t + constexpr std::ptrdiff_t m_bBombPlacedAnimation = 0xE38; // bool + constexpr std::ptrdiff_t m_bIsPlantingViaUse = 0xE39; // bool + constexpr std::ptrdiff_t m_entitySpottedState = 0xE40; // EntitySpottedState_t + constexpr std::ptrdiff_t m_nSpotRules = 0xE58; // int32_t + constexpr std::ptrdiff_t m_bPlayedArmingBeeps = 0xE5C; // bool[7] + constexpr std::ptrdiff_t m_bBombPlanted = 0xE63; // bool + constexpr std::ptrdiff_t m_bDroppedFromDeath = 0xE64; // bool +} + +namespace CCSBot { // CBot + constexpr std::ptrdiff_t m_lastCoopSpawnPoint = 0xF0; // CHandle + constexpr std::ptrdiff_t m_eyePosition = 0x100; // Vector + constexpr std::ptrdiff_t m_name = 0x10C; // char[64] + constexpr std::ptrdiff_t m_combatRange = 0x14C; // float + constexpr std::ptrdiff_t m_isRogue = 0x150; // bool + constexpr std::ptrdiff_t m_rogueTimer = 0x158; // CountdownTimer + constexpr std::ptrdiff_t m_diedLastRound = 0x174; // bool + constexpr std::ptrdiff_t m_safeTime = 0x178; // float + constexpr std::ptrdiff_t m_wasSafe = 0x17C; // bool + constexpr std::ptrdiff_t m_blindFire = 0x184; // bool + constexpr std::ptrdiff_t m_surpriseTimer = 0x188; // CountdownTimer + constexpr std::ptrdiff_t m_bAllowActive = 0x1A0; // bool + constexpr std::ptrdiff_t m_isFollowing = 0x1A1; // bool + constexpr std::ptrdiff_t m_leader = 0x1A4; // CHandle + constexpr std::ptrdiff_t m_followTimestamp = 0x1A8; // float + constexpr std::ptrdiff_t m_allowAutoFollowTime = 0x1AC; // float + constexpr std::ptrdiff_t m_hurryTimer = 0x1B0; // CountdownTimer + constexpr std::ptrdiff_t m_alertTimer = 0x1C8; // CountdownTimer + constexpr std::ptrdiff_t m_sneakTimer = 0x1E0; // CountdownTimer + constexpr std::ptrdiff_t m_panicTimer = 0x1F8; // CountdownTimer + constexpr std::ptrdiff_t m_stateTimestamp = 0x4C8; // float + constexpr std::ptrdiff_t m_isAttacking = 0x4CC; // bool + constexpr std::ptrdiff_t m_isOpeningDoor = 0x4CD; // bool + constexpr std::ptrdiff_t m_taskEntity = 0x4D4; // CHandle + constexpr std::ptrdiff_t m_goalPosition = 0x4E4; // Vector + constexpr std::ptrdiff_t m_goalEntity = 0x4F0; // CHandle + constexpr std::ptrdiff_t m_avoid = 0x4F4; // CHandle + constexpr std::ptrdiff_t m_avoidTimestamp = 0x4F8; // float + constexpr std::ptrdiff_t m_isStopping = 0x4FC; // bool + constexpr std::ptrdiff_t m_hasVisitedEnemySpawn = 0x4FD; // bool + constexpr std::ptrdiff_t m_stillTimer = 0x500; // IntervalTimer + constexpr std::ptrdiff_t m_bEyeAnglesUnderPathFinderControl = 0x510; // bool + constexpr std::ptrdiff_t m_pathIndex = 0x6608; // int32_t + constexpr std::ptrdiff_t m_areaEnteredTimestamp = 0x660C; // GameTime_t + constexpr std::ptrdiff_t m_repathTimer = 0x6610; // CountdownTimer + constexpr std::ptrdiff_t m_avoidFriendTimer = 0x6628; // CountdownTimer + constexpr std::ptrdiff_t m_isFriendInTheWay = 0x6640; // bool + constexpr std::ptrdiff_t m_politeTimer = 0x6648; // CountdownTimer + constexpr std::ptrdiff_t m_isWaitingBehindFriend = 0x6660; // bool + constexpr std::ptrdiff_t m_pathLadderEnd = 0x668C; // float + constexpr std::ptrdiff_t m_mustRunTimer = 0x66D8; // CountdownTimer + constexpr std::ptrdiff_t m_waitTimer = 0x66F0; // CountdownTimer + constexpr std::ptrdiff_t m_updateTravelDistanceTimer = 0x6708; // CountdownTimer + constexpr std::ptrdiff_t m_playerTravelDistance = 0x6720; // float[64] + constexpr std::ptrdiff_t m_travelDistancePhase = 0x6820; // uint8_t + constexpr std::ptrdiff_t m_hostageEscortCount = 0x69B8; // uint8_t + constexpr std::ptrdiff_t m_hostageEscortCountTimestamp = 0x69BC; // float + constexpr std::ptrdiff_t m_desiredTeam = 0x69C0; // int32_t + constexpr std::ptrdiff_t m_hasJoined = 0x69C4; // bool + constexpr std::ptrdiff_t m_isWaitingForHostage = 0x69C5; // bool + constexpr std::ptrdiff_t m_inhibitWaitingForHostageTimer = 0x69C8; // CountdownTimer + constexpr std::ptrdiff_t m_waitForHostageTimer = 0x69E0; // CountdownTimer + constexpr std::ptrdiff_t m_noisePosition = 0x69F8; // Vector + constexpr std::ptrdiff_t m_noiseTravelDistance = 0x6A04; // float + constexpr std::ptrdiff_t m_noiseTimestamp = 0x6A08; // float + constexpr std::ptrdiff_t m_noiseSource = 0x6A10; // CCSPlayerPawn* + constexpr std::ptrdiff_t m_noiseBendTimer = 0x6A28; // CountdownTimer + constexpr std::ptrdiff_t m_bentNoisePosition = 0x6A40; // Vector + constexpr std::ptrdiff_t m_bendNoisePositionValid = 0x6A4C; // bool + constexpr std::ptrdiff_t m_lookAroundStateTimestamp = 0x6A50; // float + constexpr std::ptrdiff_t m_lookAheadAngle = 0x6A54; // float + constexpr std::ptrdiff_t m_forwardAngle = 0x6A58; // float + constexpr std::ptrdiff_t m_inhibitLookAroundTimestamp = 0x6A5C; // float + constexpr std::ptrdiff_t m_lookAtSpot = 0x6A64; // Vector + constexpr std::ptrdiff_t m_lookAtSpotDuration = 0x6A74; // float + constexpr std::ptrdiff_t m_lookAtSpotTimestamp = 0x6A78; // float + constexpr std::ptrdiff_t m_lookAtSpotAngleTolerance = 0x6A7C; // float + constexpr std::ptrdiff_t m_lookAtSpotClearIfClose = 0x6A80; // bool + constexpr std::ptrdiff_t m_lookAtSpotAttack = 0x6A81; // bool + constexpr std::ptrdiff_t m_lookAtDesc = 0x6A88; // char* + constexpr std::ptrdiff_t m_peripheralTimestamp = 0x6A90; // float + constexpr std::ptrdiff_t m_approachPointCount = 0x6C18; // uint8_t + constexpr std::ptrdiff_t m_approachPointViewPosition = 0x6C1C; // Vector + constexpr std::ptrdiff_t m_viewSteadyTimer = 0x6C28; // IntervalTimer + constexpr std::ptrdiff_t m_tossGrenadeTimer = 0x6C40; // CountdownTimer + constexpr std::ptrdiff_t m_isAvoidingGrenade = 0x6C60; // CountdownTimer + constexpr std::ptrdiff_t m_spotCheckTimestamp = 0x6C80; // float + constexpr std::ptrdiff_t m_checkedHidingSpotCount = 0x7088; // int32_t + constexpr std::ptrdiff_t m_lookPitch = 0x708C; // float + constexpr std::ptrdiff_t m_lookPitchVel = 0x7090; // float + constexpr std::ptrdiff_t m_lookYaw = 0x7094; // float + constexpr std::ptrdiff_t m_lookYawVel = 0x7098; // float + constexpr std::ptrdiff_t m_targetSpot = 0x709C; // Vector + constexpr std::ptrdiff_t m_targetSpotVelocity = 0x70A8; // Vector + constexpr std::ptrdiff_t m_targetSpotPredicted = 0x70B4; // Vector + constexpr std::ptrdiff_t m_aimError = 0x70C0; // QAngle + constexpr std::ptrdiff_t m_aimGoal = 0x70CC; // QAngle + constexpr std::ptrdiff_t m_targetSpotTime = 0x70D8; // GameTime_t + constexpr std::ptrdiff_t m_aimFocus = 0x70DC; // float + constexpr std::ptrdiff_t m_aimFocusInterval = 0x70E0; // float + constexpr std::ptrdiff_t m_aimFocusNextUpdate = 0x70E4; // GameTime_t + constexpr std::ptrdiff_t m_ignoreEnemiesTimer = 0x70F0; // CountdownTimer + constexpr std::ptrdiff_t m_enemy = 0x7108; // CHandle + constexpr std::ptrdiff_t m_isEnemyVisible = 0x710C; // bool + constexpr std::ptrdiff_t m_visibleEnemyParts = 0x710D; // uint8_t + constexpr std::ptrdiff_t m_lastEnemyPosition = 0x7110; // Vector + constexpr std::ptrdiff_t m_lastSawEnemyTimestamp = 0x711C; // float + constexpr std::ptrdiff_t m_firstSawEnemyTimestamp = 0x7120; // float + constexpr std::ptrdiff_t m_currentEnemyAcquireTimestamp = 0x7124; // float + constexpr std::ptrdiff_t m_enemyDeathTimestamp = 0x7128; // float + constexpr std::ptrdiff_t m_friendDeathTimestamp = 0x712C; // float + constexpr std::ptrdiff_t m_isLastEnemyDead = 0x7130; // bool + constexpr std::ptrdiff_t m_nearbyEnemyCount = 0x7134; // int32_t + constexpr std::ptrdiff_t m_bomber = 0x7340; // CHandle + constexpr std::ptrdiff_t m_nearbyFriendCount = 0x7344; // int32_t + constexpr std::ptrdiff_t m_closestVisibleFriend = 0x7348; // CHandle + constexpr std::ptrdiff_t m_closestVisibleHumanFriend = 0x734C; // CHandle + constexpr std::ptrdiff_t m_attentionInterval = 0x7350; // IntervalTimer + constexpr std::ptrdiff_t m_attacker = 0x7360; // CHandle + constexpr std::ptrdiff_t m_attackedTimestamp = 0x7364; // float + constexpr std::ptrdiff_t m_burnedByFlamesTimer = 0x7368; // IntervalTimer + constexpr std::ptrdiff_t m_lastVictimID = 0x7378; // int32_t + constexpr std::ptrdiff_t m_isAimingAtEnemy = 0x737C; // bool + constexpr std::ptrdiff_t m_isRapidFiring = 0x737D; // bool + constexpr std::ptrdiff_t m_equipTimer = 0x7380; // IntervalTimer + constexpr std::ptrdiff_t m_zoomTimer = 0x7390; // CountdownTimer + constexpr std::ptrdiff_t m_fireWeaponTimestamp = 0x73A8; // GameTime_t + constexpr std::ptrdiff_t m_lookForWeaponsOnGroundTimer = 0x73B0; // CountdownTimer + constexpr std::ptrdiff_t m_bIsSleeping = 0x73C8; // bool + constexpr std::ptrdiff_t m_isEnemySniperVisible = 0x73C9; // bool + constexpr std::ptrdiff_t m_sawEnemySniperTimer = 0x73D0; // CountdownTimer + constexpr std::ptrdiff_t m_enemyQueueIndex = 0x7488; // uint8_t + constexpr std::ptrdiff_t m_enemyQueueCount = 0x7489; // uint8_t + constexpr std::ptrdiff_t m_enemyQueueAttendIndex = 0x748A; // uint8_t + constexpr std::ptrdiff_t m_isStuck = 0x748B; // bool + constexpr std::ptrdiff_t m_stuckTimestamp = 0x748C; // GameTime_t + constexpr std::ptrdiff_t m_stuckSpot = 0x7490; // Vector + constexpr std::ptrdiff_t m_wiggleTimer = 0x74A0; // CountdownTimer + constexpr std::ptrdiff_t m_stuckJumpTimer = 0x74B8; // CountdownTimer + constexpr std::ptrdiff_t m_nextCleanupCheckTimestamp = 0x74D0; // GameTime_t + constexpr std::ptrdiff_t m_avgVel = 0x74D4; // float[10] + constexpr std::ptrdiff_t m_avgVelIndex = 0x74FC; // int32_t + constexpr std::ptrdiff_t m_avgVelCount = 0x7500; // int32_t + constexpr std::ptrdiff_t m_lastOrigin = 0x7504; // Vector + constexpr std::ptrdiff_t m_lastRadioRecievedTimestamp = 0x7514; // float + constexpr std::ptrdiff_t m_lastRadioSentTimestamp = 0x7518; // float + constexpr std::ptrdiff_t m_radioSubject = 0x751C; // CHandle + constexpr std::ptrdiff_t m_radioPosition = 0x7520; // Vector + constexpr std::ptrdiff_t m_voiceEndTimestamp = 0x752C; // float + constexpr std::ptrdiff_t m_lastValidReactionQueueFrame = 0x7538; // int32_t +} + +namespace CCSGOPlayerAnimGraphState { +} + +namespace CCSGOViewModel { // CPredictedViewModel + constexpr std::ptrdiff_t m_bShouldIgnoreOffsetAndAccuracy = 0x8D8; // bool + constexpr std::ptrdiff_t m_nWeaponParity = 0x8DC; // uint32_t + constexpr std::ptrdiff_t m_nOldWeaponParity = 0x8E0; // uint32_t +} + +namespace CCSGO_TeamIntroCharacterPosition { // CCSGO_TeamPreviewCharacterPosition +} + +namespace CCSGO_TeamIntroCounterTerroristPosition { // CCSGO_TeamIntroCharacterPosition +} + +namespace CCSGO_TeamIntroTerroristPosition { // CCSGO_TeamIntroCharacterPosition +} + +namespace CCSGO_TeamPreviewCharacterPosition { // CBaseEntity + constexpr std::ptrdiff_t m_nVariant = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_nRandom = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_nOrdinal = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_sWeaponName = 0x4C0; // CUtlString + constexpr std::ptrdiff_t m_xuid = 0x4C8; // uint64_t + constexpr std::ptrdiff_t m_agentItem = 0x4D0; // CEconItemView + constexpr std::ptrdiff_t m_glovesItem = 0x748; // CEconItemView + constexpr std::ptrdiff_t m_weaponItem = 0x9C0; // CEconItemView +} + +namespace CCSGO_TeamSelectCharacterPosition { // CCSGO_TeamPreviewCharacterPosition +} + +namespace CCSGO_TeamSelectCounterTerroristPosition { // CCSGO_TeamSelectCharacterPosition +} + +namespace CCSGO_TeamSelectTerroristPosition { // CCSGO_TeamSelectCharacterPosition +} + +namespace CCSGO_WingmanIntroCharacterPosition { // CCSGO_TeamIntroCharacterPosition +} + +namespace CCSGO_WingmanIntroCounterTerroristPosition { // CCSGO_WingmanIntroCharacterPosition +} + +namespace CCSGO_WingmanIntroTerroristPosition { // CCSGO_WingmanIntroCharacterPosition +} + +namespace CCSGameModeRules { + constexpr std::ptrdiff_t __m_pChainEntity = 0x8; // CNetworkVarChainer +} + +namespace CCSGameModeRules_Deathmatch { // CCSGameModeRules + constexpr std::ptrdiff_t m_bFirstThink = 0x30; // bool + constexpr std::ptrdiff_t m_bFirstThinkAfterConnected = 0x31; // bool + constexpr std::ptrdiff_t m_flDMBonusStartTime = 0x34; // GameTime_t + constexpr std::ptrdiff_t m_flDMBonusTimeLength = 0x38; // float + constexpr std::ptrdiff_t m_nDMBonusWeaponLoadoutSlot = 0x3C; // int16_t +} + +namespace CCSGameModeRules_Noop { // CCSGameModeRules +} + +namespace CCSGameModeRules_Scripted { // CCSGameModeRules +} + +namespace CCSGameModeScript { // CBasePulseGraphInstance +} + +namespace CCSGameRules { // CTeamplayRules + constexpr std::ptrdiff_t __m_pChainEntity = 0x98; // CNetworkVarChainer + constexpr std::ptrdiff_t m_coopMissionManager = 0xC0; // CHandle + constexpr std::ptrdiff_t m_bFreezePeriod = 0xC4; // bool + constexpr std::ptrdiff_t m_bWarmupPeriod = 0xC5; // bool + constexpr std::ptrdiff_t m_fWarmupPeriodEnd = 0xC8; // GameTime_t + constexpr std::ptrdiff_t m_fWarmupPeriodStart = 0xCC; // GameTime_t + constexpr std::ptrdiff_t m_nTotalPausedTicks = 0xD0; // int32_t + constexpr std::ptrdiff_t m_nPauseStartTick = 0xD4; // int32_t + constexpr std::ptrdiff_t m_bServerPaused = 0xD8; // bool + constexpr std::ptrdiff_t m_bGamePaused = 0xD9; // bool + constexpr std::ptrdiff_t m_bTerroristTimeOutActive = 0xDA; // bool + constexpr std::ptrdiff_t m_bCTTimeOutActive = 0xDB; // bool + constexpr std::ptrdiff_t m_flTerroristTimeOutRemaining = 0xDC; // float + constexpr std::ptrdiff_t m_flCTTimeOutRemaining = 0xE0; // float + constexpr std::ptrdiff_t m_nTerroristTimeOuts = 0xE4; // int32_t + constexpr std::ptrdiff_t m_nCTTimeOuts = 0xE8; // int32_t + constexpr std::ptrdiff_t m_bTechnicalTimeOut = 0xEC; // bool + constexpr std::ptrdiff_t m_bMatchWaitingForResume = 0xED; // bool + constexpr std::ptrdiff_t m_iRoundTime = 0xF0; // int32_t + constexpr std::ptrdiff_t m_fMatchStartTime = 0xF4; // float + constexpr std::ptrdiff_t m_fRoundStartTime = 0xF8; // GameTime_t + constexpr std::ptrdiff_t m_flRestartRoundTime = 0xFC; // GameTime_t + constexpr std::ptrdiff_t m_bGameRestart = 0x100; // bool + constexpr std::ptrdiff_t m_flGameStartTime = 0x104; // float + constexpr std::ptrdiff_t m_timeUntilNextPhaseStarts = 0x108; // float + constexpr std::ptrdiff_t m_gamePhase = 0x10C; // int32_t + constexpr std::ptrdiff_t m_totalRoundsPlayed = 0x110; // int32_t + constexpr std::ptrdiff_t m_nRoundsPlayedThisPhase = 0x114; // int32_t + constexpr std::ptrdiff_t m_nOvertimePlaying = 0x118; // int32_t + constexpr std::ptrdiff_t m_iHostagesRemaining = 0x11C; // int32_t + constexpr std::ptrdiff_t m_bAnyHostageReached = 0x120; // bool + constexpr std::ptrdiff_t m_bMapHasBombTarget = 0x121; // bool + constexpr std::ptrdiff_t m_bMapHasRescueZone = 0x122; // bool + constexpr std::ptrdiff_t m_bMapHasBuyZone = 0x123; // bool + constexpr std::ptrdiff_t m_bIsQueuedMatchmaking = 0x124; // bool + constexpr std::ptrdiff_t m_nQueuedMatchmakingMode = 0x128; // int32_t + constexpr std::ptrdiff_t m_bIsValveDS = 0x12C; // bool + constexpr std::ptrdiff_t m_bLogoMap = 0x12D; // bool + constexpr std::ptrdiff_t m_bPlayAllStepSoundsOnServer = 0x12E; // bool + constexpr std::ptrdiff_t m_iSpectatorSlotCount = 0x130; // int32_t + constexpr std::ptrdiff_t m_MatchDevice = 0x134; // int32_t + constexpr std::ptrdiff_t m_bHasMatchStarted = 0x138; // bool + constexpr std::ptrdiff_t m_nNextMapInMapgroup = 0x13C; // int32_t + constexpr std::ptrdiff_t m_szTournamentEventName = 0x140; // char[512] + constexpr std::ptrdiff_t m_szTournamentEventStage = 0x340; // char[512] + constexpr std::ptrdiff_t m_szMatchStatTxt = 0x540; // char[512] + constexpr std::ptrdiff_t m_szTournamentPredictionsTxt = 0x740; // char[512] + constexpr std::ptrdiff_t m_nTournamentPredictionsPct = 0x940; // int32_t + constexpr std::ptrdiff_t m_flCMMItemDropRevealStartTime = 0x944; // GameTime_t + constexpr std::ptrdiff_t m_flCMMItemDropRevealEndTime = 0x948; // GameTime_t + constexpr std::ptrdiff_t m_bIsDroppingItems = 0x94C; // bool + constexpr std::ptrdiff_t m_bIsQuestEligible = 0x94D; // bool + constexpr std::ptrdiff_t m_bIsHltvActive = 0x94E; // bool + constexpr std::ptrdiff_t m_nGuardianModeWaveNumber = 0x950; // int32_t + constexpr std::ptrdiff_t m_nGuardianModeSpecialKillsRemaining = 0x954; // int32_t + constexpr std::ptrdiff_t m_nGuardianModeSpecialWeaponNeeded = 0x958; // int32_t + constexpr std::ptrdiff_t m_nGuardianGrenadesToGiveBots = 0x95C; // int32_t + constexpr std::ptrdiff_t m_nNumHeaviesToSpawn = 0x960; // int32_t + constexpr std::ptrdiff_t m_numGlobalGiftsGiven = 0x964; // uint32_t + constexpr std::ptrdiff_t m_numGlobalGifters = 0x968; // uint32_t + constexpr std::ptrdiff_t m_numGlobalGiftsPeriodSeconds = 0x96C; // uint32_t + constexpr std::ptrdiff_t m_arrFeaturedGiftersAccounts = 0x970; // uint32_t[4] + constexpr std::ptrdiff_t m_arrFeaturedGiftersGifts = 0x980; // uint32_t[4] + constexpr std::ptrdiff_t m_arrProhibitedItemIndices = 0x990; // uint16_t[100] + constexpr std::ptrdiff_t m_arrTournamentActiveCasterAccounts = 0xA58; // uint32_t[4] + constexpr std::ptrdiff_t m_numBestOfMaps = 0xA68; // int32_t + constexpr std::ptrdiff_t m_nHalloweenMaskListSeed = 0xA6C; // int32_t + constexpr std::ptrdiff_t m_bBombDropped = 0xA70; // bool + constexpr std::ptrdiff_t m_bBombPlanted = 0xA71; // bool + constexpr std::ptrdiff_t m_iRoundWinStatus = 0xA74; // int32_t + constexpr std::ptrdiff_t m_eRoundWinReason = 0xA78; // int32_t + constexpr std::ptrdiff_t m_bTCantBuy = 0xA7C; // bool + constexpr std::ptrdiff_t m_bCTCantBuy = 0xA7D; // bool + constexpr std::ptrdiff_t m_flGuardianBuyUntilTime = 0xA80; // GameTime_t + constexpr std::ptrdiff_t m_iMatchStats_RoundResults = 0xA84; // int32_t[30] + constexpr std::ptrdiff_t m_iMatchStats_PlayersAlive_CT = 0xAFC; // int32_t[30] + constexpr std::ptrdiff_t m_iMatchStats_PlayersAlive_T = 0xB74; // int32_t[30] + constexpr std::ptrdiff_t m_TeamRespawnWaveTimes = 0xBEC; // float[32] + constexpr std::ptrdiff_t m_flNextRespawnWave = 0xC6C; // GameTime_t[32] + constexpr std::ptrdiff_t m_nServerQuestID = 0xCEC; // int32_t + constexpr std::ptrdiff_t m_vMinimapMins = 0xCF0; // Vector + constexpr std::ptrdiff_t m_vMinimapMaxs = 0xCFC; // Vector + constexpr std::ptrdiff_t m_MinimapVerticalSectionHeights = 0xD08; // float[8] + constexpr std::ptrdiff_t m_bDontIncrementCoopWave = 0xD28; // bool + constexpr std::ptrdiff_t m_bSpawnedTerrorHuntHeavy = 0xD29; // bool + constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteTypes = 0xD2C; // int32_t[10] + constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteOptions = 0xD54; // int32_t[10] + constexpr std::ptrdiff_t m_nEndMatchMapVoteWinner = 0xD7C; // int32_t + constexpr std::ptrdiff_t m_iNumConsecutiveCTLoses = 0xD80; // int32_t + constexpr std::ptrdiff_t m_iNumConsecutiveTerroristLoses = 0xD84; // int32_t + constexpr std::ptrdiff_t m_bHasHostageBeenTouched = 0xDA0; // bool + constexpr std::ptrdiff_t m_flIntermissionStartTime = 0xDA4; // GameTime_t + constexpr std::ptrdiff_t m_flIntermissionEndTime = 0xDA8; // GameTime_t + constexpr std::ptrdiff_t m_bLevelInitialized = 0xDAC; // bool + constexpr std::ptrdiff_t m_iTotalRoundsPlayed = 0xDB0; // int32_t + constexpr std::ptrdiff_t m_iUnBalancedRounds = 0xDB4; // int32_t + constexpr std::ptrdiff_t m_endMatchOnRoundReset = 0xDB8; // bool + constexpr std::ptrdiff_t m_endMatchOnThink = 0xDB9; // bool + constexpr std::ptrdiff_t m_iFreezeTime = 0xDBC; // int32_t + constexpr std::ptrdiff_t m_iNumTerrorist = 0xDC0; // int32_t + constexpr std::ptrdiff_t m_iNumCT = 0xDC4; // int32_t + constexpr std::ptrdiff_t m_iNumSpawnableTerrorist = 0xDC8; // int32_t + constexpr std::ptrdiff_t m_iNumSpawnableCT = 0xDCC; // int32_t + constexpr std::ptrdiff_t m_arrSelectedHostageSpawnIndices = 0xDD0; // CUtlVector + constexpr std::ptrdiff_t m_bFirstConnected = 0xDE8; // bool + constexpr std::ptrdiff_t m_bCompleteReset = 0xDE9; // bool + constexpr std::ptrdiff_t m_bPickNewTeamsOnReset = 0xDEA; // bool + constexpr std::ptrdiff_t m_bScrambleTeamsOnRestart = 0xDEB; // bool + constexpr std::ptrdiff_t m_bSwapTeamsOnRestart = 0xDEC; // bool + constexpr std::ptrdiff_t m_nEndMatchTiedVotes = 0xDF8; // CUtlVector + constexpr std::ptrdiff_t m_bNeedToAskPlayersForContinueVote = 0xE14; // bool + constexpr std::ptrdiff_t m_numQueuedMatchmakingAccounts = 0xE18; // uint32_t + constexpr std::ptrdiff_t m_pQueuedMatchmakingReservationString = 0xE20; // char* + constexpr std::ptrdiff_t m_numTotalTournamentDrops = 0xE28; // uint32_t + constexpr std::ptrdiff_t m_numSpectatorsCountMax = 0xE2C; // uint32_t + constexpr std::ptrdiff_t m_numSpectatorsCountMaxTV = 0xE30; // uint32_t + constexpr std::ptrdiff_t m_numSpectatorsCountMaxLnk = 0xE34; // uint32_t + constexpr std::ptrdiff_t m_bForceTeamChangeSilent = 0xE40; // bool + constexpr std::ptrdiff_t m_bLoadingRoundBackupData = 0xE41; // bool + constexpr std::ptrdiff_t m_nMatchInfoShowType = 0xE78; // int32_t + constexpr std::ptrdiff_t m_flMatchInfoDecidedTime = 0xE7C; // float + constexpr std::ptrdiff_t m_flCoopRespawnAndHealTime = 0xE98; // float + constexpr std::ptrdiff_t m_coopBonusCoinsFound = 0xE9C; // int32_t + constexpr std::ptrdiff_t m_coopBonusPistolsOnly = 0xEA0; // bool + constexpr std::ptrdiff_t m_coopPlayersInDeploymentZone = 0xEA1; // bool + constexpr std::ptrdiff_t m_coopMissionDeadPlayerRespawnEnabled = 0xEA2; // bool + constexpr std::ptrdiff_t mTeamDMLastWinningTeamNumber = 0xEA4; // int32_t + constexpr std::ptrdiff_t mTeamDMLastThinkTime = 0xEA8; // float + constexpr std::ptrdiff_t m_flTeamDMLastAnnouncementTime = 0xEAC; // float + constexpr std::ptrdiff_t m_iAccountTerrorist = 0xEB0; // int32_t + constexpr std::ptrdiff_t m_iAccountCT = 0xEB4; // int32_t + constexpr std::ptrdiff_t m_iSpawnPointCount_Terrorist = 0xEB8; // int32_t + constexpr std::ptrdiff_t m_iSpawnPointCount_CT = 0xEBC; // int32_t + constexpr std::ptrdiff_t m_iMaxNumTerrorists = 0xEC0; // int32_t + constexpr std::ptrdiff_t m_iMaxNumCTs = 0xEC4; // int32_t + constexpr std::ptrdiff_t m_iLoserBonus = 0xEC8; // int32_t + constexpr std::ptrdiff_t m_iLoserBonusMostRecentTeam = 0xECC; // int32_t + constexpr std::ptrdiff_t m_tmNextPeriodicThink = 0xED0; // float + constexpr std::ptrdiff_t m_bVoiceWonMatchBragFired = 0xED4; // bool + constexpr std::ptrdiff_t m_fWarmupNextChatNoticeTime = 0xED8; // float + constexpr std::ptrdiff_t m_iHostagesRescued = 0xEE0; // int32_t + constexpr std::ptrdiff_t m_iHostagesTouched = 0xEE4; // int32_t + constexpr std::ptrdiff_t m_flNextHostageAnnouncement = 0xEE8; // float + constexpr std::ptrdiff_t m_bNoTerroristsKilled = 0xEEC; // bool + constexpr std::ptrdiff_t m_bNoCTsKilled = 0xEED; // bool + constexpr std::ptrdiff_t m_bNoEnemiesKilled = 0xEEE; // bool + constexpr std::ptrdiff_t m_bCanDonateWeapons = 0xEEF; // bool + constexpr std::ptrdiff_t m_firstKillTime = 0xEF4; // float + constexpr std::ptrdiff_t m_firstBloodTime = 0xEFC; // float + constexpr std::ptrdiff_t m_hostageWasInjured = 0xF18; // bool + constexpr std::ptrdiff_t m_hostageWasKilled = 0xF19; // bool + constexpr std::ptrdiff_t m_bVoteCalled = 0xF28; // bool + constexpr std::ptrdiff_t m_bServerVoteOnReset = 0xF29; // bool + constexpr std::ptrdiff_t m_flVoteCheckThrottle = 0xF2C; // float + constexpr std::ptrdiff_t m_bBuyTimeEnded = 0xF30; // bool + constexpr std::ptrdiff_t m_nLastFreezeEndBeep = 0xF34; // int32_t + constexpr std::ptrdiff_t m_bTargetBombed = 0xF38; // bool + constexpr std::ptrdiff_t m_bBombDefused = 0xF39; // bool + constexpr std::ptrdiff_t m_bMapHasBombZone = 0xF3A; // bool + constexpr std::ptrdiff_t m_vecMainCTSpawnPos = 0xF58; // Vector + constexpr std::ptrdiff_t m_CTSpawnPointsMasterList = 0xF68; // CUtlVector + constexpr std::ptrdiff_t m_TerroristSpawnPointsMasterList = 0xF80; // CUtlVector + constexpr std::ptrdiff_t m_iNextCTSpawnPoint = 0xF98; // int32_t + constexpr std::ptrdiff_t m_iNextTerroristSpawnPoint = 0xF9C; // int32_t + constexpr std::ptrdiff_t m_CTSpawnPoints = 0xFA0; // CUtlVector + constexpr std::ptrdiff_t m_TerroristSpawnPoints = 0xFB8; // CUtlVector + constexpr std::ptrdiff_t m_bIsUnreservedGameServer = 0xFD0; // bool + constexpr std::ptrdiff_t m_fAutobalanceDisplayTime = 0xFD4; // float + constexpr std::ptrdiff_t m_bAllowWeaponSwitch = 0x1240; // bool + constexpr std::ptrdiff_t m_bRoundTimeWarningTriggered = 0x1241; // bool + constexpr std::ptrdiff_t m_phaseChangeAnnouncementTime = 0x1244; // GameTime_t + constexpr std::ptrdiff_t m_fNextUpdateTeamClanNamesTime = 0x1248; // float + constexpr std::ptrdiff_t m_flLastThinkTime = 0x124C; // GameTime_t + constexpr std::ptrdiff_t m_fAccumulatedRoundOffDamage = 0x1250; // float + constexpr std::ptrdiff_t m_nShorthandedBonusLastEvalRound = 0x1254; // int32_t + constexpr std::ptrdiff_t m_bMatchAbortedDueToPlayerBan = 0x14D0; // bool + constexpr std::ptrdiff_t m_bHasTriggeredRoundStartMusic = 0x14D1; // bool + constexpr std::ptrdiff_t m_bHasTriggeredCoopSpawnReset = 0x14D2; // bool + constexpr std::ptrdiff_t m_bSwitchingTeamsAtRoundReset = 0x14D3; // bool + constexpr std::ptrdiff_t m_pGameModeRules = 0x14F0; // CCSGameModeRules* + constexpr std::ptrdiff_t m_BtGlobalBlackboard = 0x14F8; // KeyValues3 + constexpr std::ptrdiff_t m_hPlayerResource = 0x1560; // CHandle + constexpr std::ptrdiff_t m_RetakeRules = 0x1568; // CRetakeGameRules + constexpr std::ptrdiff_t m_GuardianBotSkillLevelMax = 0x174C; // int32_t + constexpr std::ptrdiff_t m_GuardianBotSkillLevelMin = 0x1750; // int32_t + constexpr std::ptrdiff_t m_arrTeamUniqueKillWeaponsMatch = 0x1758; // CUtlVector[4] + constexpr std::ptrdiff_t m_bTeamLastKillUsedUniqueWeaponMatch = 0x17B8; // bool[4] + constexpr std::ptrdiff_t m_nMatchEndCount = 0x17E0; // uint8_t + constexpr std::ptrdiff_t m_nTTeamIntroVariant = 0x17E4; // int32_t + constexpr std::ptrdiff_t m_nCTTeamIntroVariant = 0x17E8; // int32_t + constexpr std::ptrdiff_t m_bTeamIntroPeriod = 0x17EC; // bool + constexpr std::ptrdiff_t m_fTeamIntroPeriodEnd = 0x17F0; // GameTime_t + constexpr std::ptrdiff_t m_bPlayedTeamIntroVO = 0x17F4; // bool + constexpr std::ptrdiff_t m_flLastPerfSampleTime = 0x5800; // double + constexpr std::ptrdiff_t m_bSkipNextServerPerfSample = 0x5808; // bool +} + +namespace CCSGameRulesProxy { // CGameRulesProxy + constexpr std::ptrdiff_t m_pGameRules = 0x4B0; // CCSGameRules* +} + +namespace CCSMinimapBoundary { // CBaseEntity +} + +namespace CCSObserverPawn { // CCSPlayerPawnBase +} + +namespace CCSObserver_CameraServices { // CCSPlayerBase_CameraServices +} + +namespace CCSObserver_MovementServices { // CPlayer_MovementServices +} + +namespace CCSObserver_ObserverServices { // CPlayer_ObserverServices +} + +namespace CCSObserver_UseServices { // CPlayer_UseServices +} + +namespace CCSObserver_ViewModelServices { // CPlayer_ViewModelServices +} + +namespace CCSPlace { // CServerOnlyModelEntity + constexpr std::ptrdiff_t m_name = 0x708; // CUtlSymbolLarge +} + +namespace CCSPlayerBase_CameraServices { // CPlayer_CameraServices + constexpr std::ptrdiff_t m_iFOV = 0x170; // uint32_t + constexpr std::ptrdiff_t m_iFOVStart = 0x174; // uint32_t + constexpr std::ptrdiff_t m_flFOVTime = 0x178; // GameTime_t + constexpr std::ptrdiff_t m_flFOVRate = 0x17C; // float + constexpr std::ptrdiff_t m_hZoomOwner = 0x180; // CHandle + constexpr std::ptrdiff_t m_hTriggerFogList = 0x188; // CUtlVector> + constexpr std::ptrdiff_t m_hLastFogTrigger = 0x1A0; // CHandle +} + +namespace CCSPlayerController { // CBasePlayerController + constexpr std::ptrdiff_t m_pInGameMoneyServices = 0x6B0; // CCSPlayerController_InGameMoneyServices* + constexpr std::ptrdiff_t m_pInventoryServices = 0x6B8; // CCSPlayerController_InventoryServices* + constexpr std::ptrdiff_t m_pActionTrackingServices = 0x6C0; // CCSPlayerController_ActionTrackingServices* + constexpr std::ptrdiff_t m_pDamageServices = 0x6C8; // CCSPlayerController_DamageServices* + constexpr std::ptrdiff_t m_iPing = 0x6D0; // uint32_t + constexpr std::ptrdiff_t m_bHasCommunicationAbuseMute = 0x6D4; // bool + constexpr std::ptrdiff_t m_szCrosshairCodes = 0x6D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iPendingTeamNum = 0x6E0; // uint8_t + constexpr std::ptrdiff_t m_flForceTeamTime = 0x6E4; // GameTime_t + constexpr std::ptrdiff_t m_iCompTeammateColor = 0x6E8; // int32_t + constexpr std::ptrdiff_t m_bEverPlayedOnTeam = 0x6EC; // bool + constexpr std::ptrdiff_t m_bAttemptedToGetColor = 0x6ED; // bool + constexpr std::ptrdiff_t m_iTeammatePreferredColor = 0x6F0; // int32_t + constexpr std::ptrdiff_t m_bTeamChanged = 0x6F4; // bool + constexpr std::ptrdiff_t m_bInSwitchTeam = 0x6F5; // bool + constexpr std::ptrdiff_t m_bHasSeenJoinGame = 0x6F6; // bool + constexpr std::ptrdiff_t m_bJustBecameSpectator = 0x6F7; // bool + constexpr std::ptrdiff_t m_bSwitchTeamsOnNextRoundReset = 0x6F8; // bool + constexpr std::ptrdiff_t m_bRemoveAllItemsOnNextRoundReset = 0x6F9; // bool + constexpr std::ptrdiff_t m_szClan = 0x700; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_szClanName = 0x708; // char[32] + constexpr std::ptrdiff_t m_iCoachingTeam = 0x728; // int32_t + constexpr std::ptrdiff_t m_nPlayerDominated = 0x730; // uint64_t + constexpr std::ptrdiff_t m_nPlayerDominatingMe = 0x738; // uint64_t + constexpr std::ptrdiff_t m_iCompetitiveRanking = 0x740; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveWins = 0x744; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveRankType = 0x748; // int8_t + constexpr std::ptrdiff_t m_iCompetitiveRankingPredicted_Win = 0x74C; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveRankingPredicted_Loss = 0x750; // int32_t + constexpr std::ptrdiff_t m_iCompetitiveRankingPredicted_Tie = 0x754; // int32_t + constexpr std::ptrdiff_t m_nEndMatchNextMapVote = 0x758; // int32_t + constexpr std::ptrdiff_t m_unActiveQuestId = 0x75C; // uint16_t + constexpr std::ptrdiff_t m_nQuestProgressReason = 0x760; // QuestProgress::Reason + constexpr std::ptrdiff_t m_unPlayerTvControlFlags = 0x764; // uint32_t + constexpr std::ptrdiff_t m_iDraftIndex = 0x790; // int32_t + constexpr std::ptrdiff_t m_msQueuedModeDisconnectionTimestamp = 0x794; // uint32_t + constexpr std::ptrdiff_t m_uiAbandonRecordedReason = 0x798; // uint32_t + constexpr std::ptrdiff_t m_bEverFullyConnected = 0x79C; // bool + constexpr std::ptrdiff_t m_bAbandonAllowsSurrender = 0x79D; // bool + constexpr std::ptrdiff_t m_bAbandonOffersInstantSurrender = 0x79E; // bool + constexpr std::ptrdiff_t m_bDisconnection1MinWarningPrinted = 0x79F; // bool + constexpr std::ptrdiff_t m_bScoreReported = 0x7A0; // bool + constexpr std::ptrdiff_t m_nDisconnectionTick = 0x7A4; // int32_t + constexpr std::ptrdiff_t m_bControllingBot = 0x7B0; // bool + constexpr std::ptrdiff_t m_bHasControlledBotThisRound = 0x7B1; // bool + constexpr std::ptrdiff_t m_bHasBeenControlledByPlayerThisRound = 0x7B2; // bool + constexpr std::ptrdiff_t m_nBotsControlledThisRound = 0x7B4; // int32_t + constexpr std::ptrdiff_t m_bCanControlObservedBot = 0x7B8; // bool + constexpr std::ptrdiff_t m_hPlayerPawn = 0x7BC; // CHandle + constexpr std::ptrdiff_t m_hObserverPawn = 0x7C0; // CHandle + constexpr std::ptrdiff_t m_DesiredObserverMode = 0x7C4; // int32_t + constexpr std::ptrdiff_t m_hDesiredObserverTarget = 0x7C8; // CEntityHandle + constexpr std::ptrdiff_t m_bPawnIsAlive = 0x7CC; // bool + constexpr std::ptrdiff_t m_iPawnHealth = 0x7D0; // uint32_t + constexpr std::ptrdiff_t m_iPawnArmor = 0x7D4; // int32_t + constexpr std::ptrdiff_t m_bPawnHasDefuser = 0x7D8; // bool + constexpr std::ptrdiff_t m_bPawnHasHelmet = 0x7D9; // bool + constexpr std::ptrdiff_t m_nPawnCharacterDefIndex = 0x7DA; // uint16_t + constexpr std::ptrdiff_t m_iPawnLifetimeStart = 0x7DC; // int32_t + constexpr std::ptrdiff_t m_iPawnLifetimeEnd = 0x7E0; // int32_t + constexpr std::ptrdiff_t m_iPawnBotDifficulty = 0x7E4; // int32_t + constexpr std::ptrdiff_t m_hOriginalControllerOfCurrentPawn = 0x7E8; // CHandle + constexpr std::ptrdiff_t m_iScore = 0x7EC; // int32_t + constexpr std::ptrdiff_t m_iRoundScore = 0x7F0; // int32_t + constexpr std::ptrdiff_t m_iRoundsWon = 0x7F4; // int32_t + constexpr std::ptrdiff_t m_vecKills = 0x7F8; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_iMVPs = 0x810; // int32_t + constexpr std::ptrdiff_t m_nUpdateCounter = 0x814; // int32_t + constexpr std::ptrdiff_t m_flSmoothedPing = 0x818; // float + constexpr std::ptrdiff_t m_lastHeldVoteTimer = 0xF8C0; // IntervalTimer + constexpr std::ptrdiff_t m_bShowHints = 0xF8D8; // bool + constexpr std::ptrdiff_t m_iNextTimeCheck = 0xF8DC; // int32_t + constexpr std::ptrdiff_t m_bJustDidTeamKill = 0xF8E0; // bool + constexpr std::ptrdiff_t m_bPunishForTeamKill = 0xF8E1; // bool + constexpr std::ptrdiff_t m_bGaveTeamDamageWarning = 0xF8E2; // bool + constexpr std::ptrdiff_t m_bGaveTeamDamageWarningThisRound = 0xF8E3; // bool + constexpr std::ptrdiff_t m_LastTeamDamageWarningTime = 0xF8E4; // GameTime_t +} + +namespace CCSPlayerController_ActionTrackingServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_perRoundStats = 0x40; // CUtlVectorEmbeddedNetworkVar + constexpr std::ptrdiff_t m_matchStats = 0x90; // CSMatchStats_t + constexpr std::ptrdiff_t m_iNumRoundKills = 0x148; // int32_t + constexpr std::ptrdiff_t m_iNumRoundKillsHeadshots = 0x14C; // int32_t + constexpr std::ptrdiff_t m_unTotalRoundDamageDealt = 0x150; // uint32_t +} + +namespace CCSPlayerController_DamageServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_nSendUpdate = 0x40; // int32_t + constexpr std::ptrdiff_t m_DamageList = 0x48; // CUtlVectorEmbeddedNetworkVar +} + +namespace CCSPlayerController_InGameMoneyServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_bReceivesMoneyNextRound = 0x40; // bool + constexpr std::ptrdiff_t m_iAccountMoneyEarnedForNextRound = 0x44; // int32_t + constexpr std::ptrdiff_t m_iAccount = 0x48; // int32_t + constexpr std::ptrdiff_t m_iStartAccount = 0x4C; // int32_t + constexpr std::ptrdiff_t m_iTotalCashSpent = 0x50; // int32_t + constexpr std::ptrdiff_t m_iCashSpentThisRound = 0x54; // int32_t +} + +namespace CCSPlayerController_InventoryServices { // CPlayerControllerComponent + constexpr std::ptrdiff_t m_unMusicID = 0x40; // uint16_t + constexpr std::ptrdiff_t m_rank = 0x44; // MedalRank_t[6] + constexpr std::ptrdiff_t m_nPersonaDataPublicLevel = 0x5C; // int32_t + constexpr std::ptrdiff_t m_nPersonaDataPublicCommendsLeader = 0x60; // int32_t + constexpr std::ptrdiff_t m_nPersonaDataPublicCommendsTeacher = 0x64; // int32_t + constexpr std::ptrdiff_t m_nPersonaDataPublicCommendsFriendly = 0x68; // int32_t + constexpr std::ptrdiff_t m_unEquippedPlayerSprayIDs = 0xF48; // uint32_t[1] + constexpr std::ptrdiff_t m_vecServerAuthoritativeWeaponSlots = 0xF50; // CUtlVectorEmbeddedNetworkVar +} + +namespace CCSPlayerPawn { // CCSPlayerPawnBase + constexpr std::ptrdiff_t m_pBulletServices = 0x1550; // CCSPlayer_BulletServices* + constexpr std::ptrdiff_t m_pHostageServices = 0x1558; // CCSPlayer_HostageServices* + constexpr std::ptrdiff_t m_pBuyServices = 0x1560; // CCSPlayer_BuyServices* + constexpr std::ptrdiff_t m_pActionTrackingServices = 0x1568; // CCSPlayer_ActionTrackingServices* + constexpr std::ptrdiff_t m_pRadioServices = 0x1570; // CCSPlayer_RadioServices* + constexpr std::ptrdiff_t m_pDamageReactServices = 0x1578; // CCSPlayer_DamageReactServices* + constexpr std::ptrdiff_t m_nCharacterDefIndex = 0x1580; // uint16_t + constexpr std::ptrdiff_t m_hPreviousModel = 0x1588; // CStrongHandle + constexpr std::ptrdiff_t m_bHasFemaleVoice = 0x1590; // bool + constexpr std::ptrdiff_t m_strVOPrefix = 0x1598; // CUtlString + constexpr std::ptrdiff_t m_szLastPlaceName = 0x15A0; // char[18] + constexpr std::ptrdiff_t m_bInBuyZone = 0x1660; // bool + constexpr std::ptrdiff_t m_bWasInBuyZone = 0x1661; // bool + constexpr std::ptrdiff_t m_bInHostageRescueZone = 0x1662; // bool + constexpr std::ptrdiff_t m_bInBombZone = 0x1663; // bool + constexpr std::ptrdiff_t m_bWasInHostageRescueZone = 0x1664; // bool + constexpr std::ptrdiff_t m_iRetakesOffering = 0x1668; // int32_t + constexpr std::ptrdiff_t m_iRetakesOfferingCard = 0x166C; // int32_t + constexpr std::ptrdiff_t m_bRetakesHasDefuseKit = 0x1670; // bool + constexpr std::ptrdiff_t m_bRetakesMVPLastRound = 0x1671; // bool + constexpr std::ptrdiff_t m_iRetakesMVPBoostItem = 0x1674; // int32_t + constexpr std::ptrdiff_t m_RetakesMVPBoostExtraUtility = 0x1678; // loadout_slot_t + constexpr std::ptrdiff_t m_flHealthShotBoostExpirationTime = 0x167C; // GameTime_t + constexpr std::ptrdiff_t m_flLandseconds = 0x1680; // float + constexpr std::ptrdiff_t m_aimPunchAngle = 0x1684; // QAngle + constexpr std::ptrdiff_t m_aimPunchAngleVel = 0x1690; // QAngle + constexpr std::ptrdiff_t m_aimPunchTickBase = 0x169C; // int32_t + constexpr std::ptrdiff_t m_aimPunchTickFraction = 0x16A0; // float + constexpr std::ptrdiff_t m_aimPunchCache = 0x16A8; // CUtlVector + constexpr std::ptrdiff_t m_bIsBuyMenuOpen = 0x16C0; // bool + constexpr std::ptrdiff_t m_xLastHeadBoneTransform = 0x1C30; // CTransform + constexpr std::ptrdiff_t m_bLastHeadBoneTransformIsValid = 0x1C50; // bool + constexpr std::ptrdiff_t m_lastLandTime = 0x1C54; // GameTime_t + constexpr std::ptrdiff_t m_bOnGroundLastTick = 0x1C58; // bool + constexpr std::ptrdiff_t m_iPlayerLocked = 0x1C5C; // int32_t + constexpr std::ptrdiff_t m_flTimeOfLastInjury = 0x1C64; // GameTime_t + constexpr std::ptrdiff_t m_flNextSprayDecalTime = 0x1C68; // GameTime_t + constexpr std::ptrdiff_t m_bNextSprayDecalTimeExpedited = 0x1C6C; // bool + constexpr std::ptrdiff_t m_nRagdollDamageBone = 0x1C70; // int32_t + constexpr std::ptrdiff_t m_vRagdollDamageForce = 0x1C74; // Vector + constexpr std::ptrdiff_t m_vRagdollDamagePosition = 0x1C80; // Vector + constexpr std::ptrdiff_t m_szRagdollDamageWeaponName = 0x1C8C; // char[64] + constexpr std::ptrdiff_t m_bRagdollDamageHeadshot = 0x1CCC; // bool + constexpr std::ptrdiff_t m_vRagdollServerOrigin = 0x1CD0; // Vector + constexpr std::ptrdiff_t m_EconGloves = 0x1CE0; // CEconItemView + constexpr std::ptrdiff_t m_qDeathEyeAngles = 0x1F58; // QAngle + constexpr std::ptrdiff_t m_bSkipOneHeadConstraintUpdate = 0x1F64; // bool +} + +namespace CCSPlayerPawnBase { // CBasePlayerPawn + constexpr std::ptrdiff_t m_CTouchExpansionComponent = 0xB68; // CTouchExpansionComponent + constexpr std::ptrdiff_t m_pPingServices = 0xBB8; // CCSPlayer_PingServices* + constexpr std::ptrdiff_t m_pViewModelServices = 0xBC0; // CPlayer_ViewModelServices* + constexpr std::ptrdiff_t m_iDisplayHistoryBits = 0xBC8; // uint32_t + constexpr std::ptrdiff_t m_flLastAttackedTeammate = 0xBCC; // float + constexpr std::ptrdiff_t m_hOriginalController = 0xBD0; // CHandle + constexpr std::ptrdiff_t m_blindUntilTime = 0xBD4; // GameTime_t + constexpr std::ptrdiff_t m_blindStartTime = 0xBD8; // GameTime_t + constexpr std::ptrdiff_t m_allowAutoFollowTime = 0xBDC; // GameTime_t + constexpr std::ptrdiff_t m_entitySpottedState = 0xBE0; // EntitySpottedState_t + constexpr std::ptrdiff_t m_nSpotRules = 0xBF8; // int32_t + constexpr std::ptrdiff_t m_iPlayerState = 0xBFC; // CSPlayerState + constexpr std::ptrdiff_t m_chickenIdleSoundTimer = 0xC08; // CountdownTimer + constexpr std::ptrdiff_t m_chickenJumpSoundTimer = 0xC20; // CountdownTimer + constexpr std::ptrdiff_t m_vecLastBookmarkedPosition = 0xCD8; // Vector + constexpr std::ptrdiff_t m_flLastDistanceTraveledNotice = 0xCE4; // float + constexpr std::ptrdiff_t m_flAccumulatedDistanceTraveled = 0xCE8; // float + constexpr std::ptrdiff_t m_flLastFriendlyFireDamageReductionRatio = 0xCEC; // float + constexpr std::ptrdiff_t m_bRespawning = 0xCF0; // bool + constexpr std::ptrdiff_t m_nLastPickupPriority = 0xCF4; // int32_t + constexpr std::ptrdiff_t m_flLastPickupPriorityTime = 0xCF8; // float + constexpr std::ptrdiff_t m_bIsScoped = 0xCFC; // bool + constexpr std::ptrdiff_t m_bIsWalking = 0xCFD; // bool + constexpr std::ptrdiff_t m_bResumeZoom = 0xCFE; // bool + constexpr std::ptrdiff_t m_bIsDefusing = 0xCFF; // bool + constexpr std::ptrdiff_t m_bIsGrabbingHostage = 0xD00; // bool + constexpr std::ptrdiff_t m_iBlockingUseActionInProgress = 0xD04; // CSPlayerBlockingUseAction_t + constexpr std::ptrdiff_t m_fImmuneToGunGameDamageTime = 0xD08; // GameTime_t + constexpr std::ptrdiff_t m_bGunGameImmunity = 0xD0C; // bool + constexpr std::ptrdiff_t m_fMolotovDamageTime = 0xD10; // float + constexpr std::ptrdiff_t m_bHasMovedSinceSpawn = 0xD14; // bool + constexpr std::ptrdiff_t m_bCanMoveDuringFreezePeriod = 0xD15; // bool + constexpr std::ptrdiff_t m_flGuardianTooFarDistFrac = 0xD18; // float + constexpr std::ptrdiff_t m_flNextGuardianTooFarHurtTime = 0xD1C; // float + constexpr std::ptrdiff_t m_flDetectedByEnemySensorTime = 0xD20; // GameTime_t + constexpr std::ptrdiff_t m_flDealtDamageToEnemyMostRecentTimestamp = 0xD24; // float + constexpr std::ptrdiff_t m_flLastEquippedHelmetTime = 0xD28; // GameTime_t + constexpr std::ptrdiff_t m_flLastEquippedArmorTime = 0xD2C; // GameTime_t + constexpr std::ptrdiff_t m_nHeavyAssaultSuitCooldownRemaining = 0xD30; // int32_t + constexpr std::ptrdiff_t m_bResetArmorNextSpawn = 0xD34; // bool + constexpr std::ptrdiff_t m_flLastBumpMineBumpTime = 0xD38; // GameTime_t + constexpr std::ptrdiff_t m_flEmitSoundTime = 0xD3C; // GameTime_t + constexpr std::ptrdiff_t m_iNumSpawns = 0xD40; // int32_t + constexpr std::ptrdiff_t m_iShouldHaveCash = 0xD44; // int32_t + constexpr std::ptrdiff_t m_bInvalidSteamLogonDelayed = 0xD48; // bool + constexpr std::ptrdiff_t m_flLastAction = 0xD4C; // GameTime_t + constexpr std::ptrdiff_t m_flNameChangeHistory = 0xD50; // float[5] + constexpr std::ptrdiff_t m_fLastGivenDefuserTime = 0xD64; // float + constexpr std::ptrdiff_t m_fLastGivenBombTime = 0xD68; // float + constexpr std::ptrdiff_t m_bHasNightVision = 0xD6C; // bool + constexpr std::ptrdiff_t m_bNightVisionOn = 0xD6D; // bool + constexpr std::ptrdiff_t m_fNextRadarUpdateTime = 0xD70; // float + constexpr std::ptrdiff_t m_flLastMoneyUpdateTime = 0xD74; // float + constexpr std::ptrdiff_t m_MenuStringBuffer = 0xD78; // char[1024] + constexpr std::ptrdiff_t m_fIntroCamTime = 0x1178; // float + constexpr std::ptrdiff_t m_nMyCollisionGroup = 0x117C; // int32_t + constexpr std::ptrdiff_t m_bInNoDefuseArea = 0x1180; // bool + constexpr std::ptrdiff_t m_bKilledByTaser = 0x1181; // bool + constexpr std::ptrdiff_t m_iMoveState = 0x1184; // int32_t + constexpr std::ptrdiff_t m_grenadeParameterStashTime = 0x1188; // GameTime_t + constexpr std::ptrdiff_t m_bGrenadeParametersStashed = 0x118C; // bool + constexpr std::ptrdiff_t m_angStashedShootAngles = 0x1190; // QAngle + constexpr std::ptrdiff_t m_vecStashedGrenadeThrowPosition = 0x119C; // Vector + constexpr std::ptrdiff_t m_vecStashedVelocity = 0x11A8; // Vector + constexpr std::ptrdiff_t m_angShootAngleHistory = 0x11B4; // QAngle[2] + constexpr std::ptrdiff_t m_vecThrowPositionHistory = 0x11CC; // Vector[2] + constexpr std::ptrdiff_t m_vecVelocityHistory = 0x11E4; // Vector[2] + constexpr std::ptrdiff_t m_bDiedAirborne = 0x11FC; // bool + constexpr std::ptrdiff_t m_iBombSiteIndex = 0x1200; // CEntityIndex + constexpr std::ptrdiff_t m_nWhichBombZone = 0x1204; // int32_t + constexpr std::ptrdiff_t m_bInBombZoneTrigger = 0x1208; // bool + constexpr std::ptrdiff_t m_bWasInBombZoneTrigger = 0x1209; // bool + constexpr std::ptrdiff_t m_iDirection = 0x120C; // int32_t + constexpr std::ptrdiff_t m_iShotsFired = 0x1210; // int32_t + constexpr std::ptrdiff_t m_ArmorValue = 0x1214; // int32_t + constexpr std::ptrdiff_t m_flFlinchStack = 0x1218; // float + constexpr std::ptrdiff_t m_flVelocityModifier = 0x121C; // float + constexpr std::ptrdiff_t m_flHitHeading = 0x1220; // float + constexpr std::ptrdiff_t m_nHitBodyPart = 0x1224; // int32_t + constexpr std::ptrdiff_t m_iHostagesKilled = 0x1228; // int32_t + constexpr std::ptrdiff_t m_vecTotalBulletForce = 0x122C; // Vector + constexpr std::ptrdiff_t m_flFlashDuration = 0x1238; // float + constexpr std::ptrdiff_t m_flFlashMaxAlpha = 0x123C; // float + constexpr std::ptrdiff_t m_flProgressBarStartTime = 0x1240; // float + constexpr std::ptrdiff_t m_iProgressBarDuration = 0x1244; // int32_t + constexpr std::ptrdiff_t m_bWaitForNoAttack = 0x1248; // bool + constexpr std::ptrdiff_t m_flLowerBodyYawTarget = 0x124C; // float + constexpr std::ptrdiff_t m_bStrafing = 0x1250; // bool + constexpr std::ptrdiff_t m_lastStandingPos = 0x1254; // Vector + constexpr std::ptrdiff_t m_ignoreLadderJumpTime = 0x1260; // float + constexpr std::ptrdiff_t m_ladderSurpressionTimer = 0x1268; // CountdownTimer + constexpr std::ptrdiff_t m_lastLadderNormal = 0x1280; // Vector + constexpr std::ptrdiff_t m_lastLadderPos = 0x128C; // Vector + constexpr std::ptrdiff_t m_thirdPersonHeading = 0x1298; // QAngle + constexpr std::ptrdiff_t m_flSlopeDropOffset = 0x12A4; // float + constexpr std::ptrdiff_t m_flSlopeDropHeight = 0x12A8; // float + constexpr std::ptrdiff_t m_vHeadConstraintOffset = 0x12AC; // Vector + constexpr std::ptrdiff_t m_iLastWeaponFireUsercmd = 0x12C0; // int32_t + constexpr std::ptrdiff_t m_angEyeAngles = 0x12C4; // QAngle + constexpr std::ptrdiff_t m_bVCollisionInitted = 0x12D0; // bool + constexpr std::ptrdiff_t m_storedSpawnPosition = 0x12D4; // Vector + constexpr std::ptrdiff_t m_storedSpawnAngle = 0x12E0; // QAngle + constexpr std::ptrdiff_t m_bIsSpawning = 0x12EC; // bool + constexpr std::ptrdiff_t m_bHideTargetID = 0x12ED; // bool + constexpr std::ptrdiff_t m_nNumDangerZoneDamageHits = 0x12F0; // int32_t + constexpr std::ptrdiff_t m_bHud_MiniScoreHidden = 0x12F4; // bool + constexpr std::ptrdiff_t m_bHud_RadarHidden = 0x12F5; // bool + constexpr std::ptrdiff_t m_nLastKillerIndex = 0x12F8; // CEntityIndex + constexpr std::ptrdiff_t m_nLastConcurrentKilled = 0x12FC; // int32_t + constexpr std::ptrdiff_t m_nDeathCamMusic = 0x1300; // int32_t + constexpr std::ptrdiff_t m_iAddonBits = 0x1304; // int32_t + constexpr std::ptrdiff_t m_iPrimaryAddon = 0x1308; // int32_t + constexpr std::ptrdiff_t m_iSecondaryAddon = 0x130C; // int32_t + constexpr std::ptrdiff_t m_currentDeafnessFilter = 0x1310; // CUtlStringToken + constexpr std::ptrdiff_t m_NumEnemiesKilledThisSpawn = 0x1314; // int32_t + constexpr std::ptrdiff_t m_NumEnemiesKilledThisRound = 0x1318; // int32_t + constexpr std::ptrdiff_t m_NumEnemiesAtRoundStart = 0x131C; // int32_t + constexpr std::ptrdiff_t m_wasNotKilledNaturally = 0x1320; // bool + constexpr std::ptrdiff_t m_vecPlayerPatchEconIndices = 0x1324; // uint32_t[5] + constexpr std::ptrdiff_t m_iDeathFlags = 0x1338; // int32_t + constexpr std::ptrdiff_t m_hPet = 0x133C; // CHandle + constexpr std::ptrdiff_t m_unCurrentEquipmentValue = 0x1508; // uint16_t + constexpr std::ptrdiff_t m_unRoundStartEquipmentValue = 0x150A; // uint16_t + constexpr std::ptrdiff_t m_unFreezetimeEndEquipmentValue = 0x150C; // uint16_t + constexpr std::ptrdiff_t m_nSurvivalTeamNumber = 0x1510; // int32_t + constexpr std::ptrdiff_t m_bHasDeathInfo = 0x1514; // bool + constexpr std::ptrdiff_t m_flDeathInfoTime = 0x1518; // float + constexpr std::ptrdiff_t m_vecDeathInfoOrigin = 0x151C; // Vector + constexpr std::ptrdiff_t m_bKilledByHeadshot = 0x1528; // bool + constexpr std::ptrdiff_t m_LastHitBox = 0x152C; // int32_t + constexpr std::ptrdiff_t m_LastHealth = 0x1530; // int32_t + constexpr std::ptrdiff_t m_flLastCollisionCeiling = 0x1534; // float + constexpr std::ptrdiff_t m_flLastCollisionCeilingChangeTime = 0x1538; // float + constexpr std::ptrdiff_t m_pBot = 0x1540; // CCSBot* + constexpr std::ptrdiff_t m_bBotAllowActive = 0x1548; // bool + constexpr std::ptrdiff_t m_bCommittingSuicideOnTeamChange = 0x1549; // bool +} + +namespace CCSPlayerResource { // CBaseEntity + constexpr std::ptrdiff_t m_bHostageAlive = 0x4B0; // bool[12] + constexpr std::ptrdiff_t m_isHostageFollowingSomeone = 0x4BC; // bool[12] + constexpr std::ptrdiff_t m_iHostageEntityIDs = 0x4C8; // CEntityIndex[12] + constexpr std::ptrdiff_t m_bombsiteCenterA = 0x4F8; // Vector + constexpr std::ptrdiff_t m_bombsiteCenterB = 0x504; // Vector + constexpr std::ptrdiff_t m_hostageRescueX = 0x510; // int32_t[4] + constexpr std::ptrdiff_t m_hostageRescueY = 0x520; // int32_t[4] + constexpr std::ptrdiff_t m_hostageRescueZ = 0x530; // int32_t[4] + constexpr std::ptrdiff_t m_bEndMatchNextMapAllVoted = 0x540; // bool + constexpr std::ptrdiff_t m_foundGoalPositions = 0x541; // bool +} + +namespace CCSPlayer_ActionTrackingServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_hLastWeaponBeforeC4AutoSwitch = 0x208; // CHandle + constexpr std::ptrdiff_t m_bIsRescuing = 0x23C; // bool + constexpr std::ptrdiff_t m_weaponPurchasesThisMatch = 0x240; // WeaponPurchaseTracker_t + constexpr std::ptrdiff_t m_weaponPurchasesThisRound = 0x298; // WeaponPurchaseTracker_t +} + +namespace CCSPlayer_BulletServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_totalHitsOnServer = 0x40; // int32_t +} + +namespace CCSPlayer_BuyServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_vecSellbackPurchaseEntries = 0xC8; // CUtlVectorEmbeddedNetworkVar +} + +namespace CCSPlayer_CameraServices { // CCSPlayerBase_CameraServices +} + +namespace CCSPlayer_DamageReactServices { // CPlayerPawnComponent +} + +namespace CCSPlayer_HostageServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_hCarriedHostage = 0x40; // CHandle + constexpr std::ptrdiff_t m_hCarriedHostageProp = 0x44; // CHandle +} + +namespace CCSPlayer_ItemServices { // CPlayer_ItemServices + constexpr std::ptrdiff_t m_bHasDefuser = 0x40; // bool + constexpr std::ptrdiff_t m_bHasHelmet = 0x41; // bool + constexpr std::ptrdiff_t m_bHasHeavyArmor = 0x42; // bool +} + +namespace CCSPlayer_MovementServices { // CPlayer_MovementServices_Humanoid + constexpr std::ptrdiff_t m_flMaxFallVelocity = 0x220; // float + constexpr std::ptrdiff_t m_vecLadderNormal = 0x224; // Vector + constexpr std::ptrdiff_t m_nLadderSurfacePropIndex = 0x230; // int32_t + constexpr std::ptrdiff_t m_flDuckAmount = 0x234; // float + constexpr std::ptrdiff_t m_flDuckSpeed = 0x238; // float + constexpr std::ptrdiff_t m_bDuckOverride = 0x23C; // bool + constexpr std::ptrdiff_t m_bDesiresDuck = 0x23D; // bool + constexpr std::ptrdiff_t m_flDuckOffset = 0x240; // float + constexpr std::ptrdiff_t m_nDuckTimeMsecs = 0x244; // uint32_t + constexpr std::ptrdiff_t m_nDuckJumpTimeMsecs = 0x248; // uint32_t + constexpr std::ptrdiff_t m_nJumpTimeMsecs = 0x24C; // uint32_t + constexpr std::ptrdiff_t m_flLastDuckTime = 0x250; // float + constexpr std::ptrdiff_t m_vecLastPositionAtFullCrouchSpeed = 0x260; // Vector2D + constexpr std::ptrdiff_t m_duckUntilOnGround = 0x268; // bool + constexpr std::ptrdiff_t m_bHasWalkMovedSinceLastJump = 0x269; // bool + constexpr std::ptrdiff_t m_bInStuckTest = 0x26A; // bool + constexpr std::ptrdiff_t m_flStuckCheckTime = 0x278; // float[64][2] + constexpr std::ptrdiff_t m_nTraceCount = 0x478; // int32_t + constexpr std::ptrdiff_t m_StuckLast = 0x47C; // int32_t + constexpr std::ptrdiff_t m_bSpeedCropped = 0x480; // bool + constexpr std::ptrdiff_t m_nOldWaterLevel = 0x484; // int32_t + constexpr std::ptrdiff_t m_flWaterEntryTime = 0x488; // float + constexpr std::ptrdiff_t m_vecForward = 0x48C; // Vector + constexpr std::ptrdiff_t m_vecLeft = 0x498; // Vector + constexpr std::ptrdiff_t m_vecUp = 0x4A4; // Vector + constexpr std::ptrdiff_t m_vecPreviouslyPredictedOrigin = 0x4B0; // Vector + constexpr std::ptrdiff_t m_bMadeFootstepNoise = 0x4BC; // bool + constexpr std::ptrdiff_t m_iFootsteps = 0x4C0; // int32_t + constexpr std::ptrdiff_t m_bOldJumpPressed = 0x4C4; // bool + constexpr std::ptrdiff_t m_flJumpPressedTime = 0x4C8; // float + constexpr std::ptrdiff_t m_flJumpUntil = 0x4CC; // float + constexpr std::ptrdiff_t m_flJumpVel = 0x4D0; // float + constexpr std::ptrdiff_t m_fStashGrenadeParameterWhen = 0x4D4; // GameTime_t + constexpr std::ptrdiff_t m_nButtonDownMaskPrev = 0x4D8; // uint64_t + constexpr std::ptrdiff_t m_flOffsetTickCompleteTime = 0x4E0; // float + constexpr std::ptrdiff_t m_flOffsetTickStashedSpeed = 0x4E4; // float + constexpr std::ptrdiff_t m_flStamina = 0x4E8; // float +} + +namespace CCSPlayer_PingServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_flPlayerPingTokens = 0x40; // GameTime_t[5] + constexpr std::ptrdiff_t m_hPlayerPing = 0x54; // CHandle +} + +namespace CCSPlayer_RadioServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_flGotHostageTalkTimer = 0x40; // GameTime_t + constexpr std::ptrdiff_t m_flDefusingTalkTimer = 0x44; // GameTime_t + constexpr std::ptrdiff_t m_flC4PlantTalkTimer = 0x48; // GameTime_t + constexpr std::ptrdiff_t m_flRadioTokenSlots = 0x4C; // GameTime_t[3] + constexpr std::ptrdiff_t m_bIgnoreRadio = 0x58; // bool +} + +namespace CCSPlayer_UseServices { // CPlayer_UseServices + constexpr std::ptrdiff_t m_hLastKnownUseEntity = 0x40; // CHandle + constexpr std::ptrdiff_t m_flLastUseTimeStamp = 0x44; // GameTime_t + constexpr std::ptrdiff_t m_flTimeStartedHoldingUse = 0x48; // GameTime_t + constexpr std::ptrdiff_t m_flTimeLastUsedWindow = 0x4C; // GameTime_t +} + +namespace CCSPlayer_ViewModelServices { // CPlayer_ViewModelServices + constexpr std::ptrdiff_t m_hViewModel = 0x40; // CHandle[3] +} + +namespace CCSPlayer_WaterServices { // CPlayer_WaterServices + constexpr std::ptrdiff_t m_NextDrownDamageTime = 0x40; // float + constexpr std::ptrdiff_t m_nDrownDmgRate = 0x44; // int32_t + constexpr std::ptrdiff_t m_AirFinishedTime = 0x48; // GameTime_t + constexpr std::ptrdiff_t m_flWaterJumpTime = 0x4C; // float + constexpr std::ptrdiff_t m_vecWaterJumpVel = 0x50; // Vector + constexpr std::ptrdiff_t m_flSwimSoundTime = 0x5C; // float +} + +namespace CCSPlayer_WeaponServices { // CPlayer_WeaponServices + constexpr std::ptrdiff_t m_flNextAttack = 0xB0; // GameTime_t + constexpr std::ptrdiff_t m_bIsLookingAtWeapon = 0xB4; // bool + constexpr std::ptrdiff_t m_bIsHoldingLookAtWeapon = 0xB5; // bool + constexpr std::ptrdiff_t m_hSavedWeapon = 0xB8; // CHandle + constexpr std::ptrdiff_t m_nTimeToMelee = 0xBC; // int32_t + constexpr std::ptrdiff_t m_nTimeToSecondary = 0xC0; // int32_t + constexpr std::ptrdiff_t m_nTimeToPrimary = 0xC4; // int32_t + constexpr std::ptrdiff_t m_nTimeToSniperRifle = 0xC8; // int32_t + constexpr std::ptrdiff_t m_bIsBeingGivenItem = 0xCC; // bool + constexpr std::ptrdiff_t m_bIsPickingUpItemWithUse = 0xCD; // bool + constexpr std::ptrdiff_t m_bPickedUpWeapon = 0xCE; // bool +} + +namespace CCSPulseServerFuncs_Globals { +} + +namespace CCSSprite { // CSprite +} + +namespace CCSTeam { // CTeam + constexpr std::ptrdiff_t m_nLastRecievedShorthandedRoundBonus = 0x568; // int32_t + constexpr std::ptrdiff_t m_nShorthandedRoundBonusStartRound = 0x56C; // int32_t + constexpr std::ptrdiff_t m_bSurrendered = 0x570; // bool + constexpr std::ptrdiff_t m_szTeamMatchStat = 0x571; // char[512] + constexpr std::ptrdiff_t m_numMapVictories = 0x774; // int32_t + constexpr std::ptrdiff_t m_scoreFirstHalf = 0x778; // int32_t + constexpr std::ptrdiff_t m_scoreSecondHalf = 0x77C; // int32_t + constexpr std::ptrdiff_t m_scoreOvertime = 0x780; // int32_t + constexpr std::ptrdiff_t m_szClanTeamname = 0x784; // char[129] + constexpr std::ptrdiff_t m_iClanID = 0x808; // uint32_t + constexpr std::ptrdiff_t m_szTeamFlagImage = 0x80C; // char[8] + constexpr std::ptrdiff_t m_szTeamLogoImage = 0x814; // char[8] + constexpr std::ptrdiff_t m_flNextResourceTime = 0x81C; // float + constexpr std::ptrdiff_t m_iLastUpdateSentAt = 0x820; // int32_t +} + +namespace CCSWeaponBase { // CBasePlayerWeapon + constexpr std::ptrdiff_t m_bRemoveable = 0xC88; // bool + constexpr std::ptrdiff_t m_flFireSequenceStartTime = 0xC8C; // float + constexpr std::ptrdiff_t m_nFireSequenceStartTimeChange = 0xC90; // int32_t + constexpr std::ptrdiff_t m_nFireSequenceStartTimeAck = 0xC94; // int32_t + constexpr std::ptrdiff_t m_bPlayerFireEventIsPrimary = 0xC98; // bool + constexpr std::ptrdiff_t m_seqIdle = 0xC9C; // HSequence + constexpr std::ptrdiff_t m_seqFirePrimary = 0xCA0; // HSequence + constexpr std::ptrdiff_t m_seqFireSecondary = 0xCA4; // HSequence + constexpr std::ptrdiff_t m_thirdPersonFireSequences = 0xCA8; // CUtlVector + constexpr std::ptrdiff_t m_hCurrentThirdPersonSequence = 0xCC0; // HSequence + constexpr std::ptrdiff_t m_nSilencerBoneIndex = 0xCC4; // int32_t + constexpr std::ptrdiff_t m_thirdPersonSequences = 0xCC8; // HSequence[6] + constexpr std::ptrdiff_t m_bPlayerAmmoStockOnPickup = 0xCE8; // bool + constexpr std::ptrdiff_t m_bRequireUseToTouch = 0xCE9; // bool + constexpr std::ptrdiff_t m_iState = 0xCEC; // CSWeaponState_t + constexpr std::ptrdiff_t m_flLastTimeInAir = 0xCF0; // GameTime_t + constexpr std::ptrdiff_t m_flLastDeployTime = 0xCF4; // GameTime_t + constexpr std::ptrdiff_t m_nViewModelIndex = 0xCF8; // uint32_t + constexpr std::ptrdiff_t m_bReloadsWithClips = 0xCFC; // bool + constexpr std::ptrdiff_t m_flTimeWeaponIdle = 0xD18; // GameTime_t + constexpr std::ptrdiff_t m_bFireOnEmpty = 0xD1C; // bool + constexpr std::ptrdiff_t m_OnPlayerPickup = 0xD20; // CEntityIOOutput + constexpr std::ptrdiff_t m_weaponMode = 0xD48; // CSWeaponMode + constexpr std::ptrdiff_t m_flTurningInaccuracyDelta = 0xD4C; // float + constexpr std::ptrdiff_t m_vecTurningInaccuracyEyeDirLast = 0xD50; // Vector + constexpr std::ptrdiff_t m_flTurningInaccuracy = 0xD5C; // float + constexpr std::ptrdiff_t m_fAccuracyPenalty = 0xD60; // float + constexpr std::ptrdiff_t m_flLastAccuracyUpdateTime = 0xD64; // GameTime_t + constexpr std::ptrdiff_t m_fAccuracySmoothedForZoom = 0xD68; // float + constexpr std::ptrdiff_t m_fScopeZoomEndTime = 0xD6C; // GameTime_t + constexpr std::ptrdiff_t m_iRecoilIndex = 0xD70; // int32_t + constexpr std::ptrdiff_t m_flRecoilIndex = 0xD74; // float + constexpr std::ptrdiff_t m_bBurstMode = 0xD78; // bool + constexpr std::ptrdiff_t m_flPostponeFireReadyTime = 0xD7C; // GameTime_t + constexpr std::ptrdiff_t m_bInReload = 0xD80; // bool + constexpr std::ptrdiff_t m_bReloadVisuallyComplete = 0xD81; // bool + constexpr std::ptrdiff_t m_flDroppedAtTime = 0xD84; // GameTime_t + constexpr std::ptrdiff_t m_bIsHauledBack = 0xD88; // bool + constexpr std::ptrdiff_t m_bSilencerOn = 0xD89; // bool + constexpr std::ptrdiff_t m_flTimeSilencerSwitchComplete = 0xD8C; // GameTime_t + constexpr std::ptrdiff_t m_iOriginalTeamNumber = 0xD90; // int32_t + constexpr std::ptrdiff_t m_flNextAttackRenderTimeOffset = 0xD94; // float + constexpr std::ptrdiff_t m_bCanBePickedUp = 0xDA8; // bool + constexpr std::ptrdiff_t m_bUseCanOverrideNextOwnerTouchTime = 0xDA9; // bool + constexpr std::ptrdiff_t m_nextOwnerTouchTime = 0xDAC; // GameTime_t + constexpr std::ptrdiff_t m_nextPrevOwnerTouchTime = 0xDB0; // GameTime_t + constexpr std::ptrdiff_t m_hPrevOwner = 0xDB4; // CHandle + constexpr std::ptrdiff_t m_nDropTick = 0xDB8; // GameTick_t + constexpr std::ptrdiff_t m_donated = 0xDDC; // bool + constexpr std::ptrdiff_t m_fLastShotTime = 0xDE0; // GameTime_t + constexpr std::ptrdiff_t m_bWasOwnedByCT = 0xDE4; // bool + constexpr std::ptrdiff_t m_bWasOwnedByTerrorist = 0xDE5; // bool + constexpr std::ptrdiff_t m_bFiredOutOfAmmoEvent = 0xDE6; // bool + constexpr std::ptrdiff_t m_numRemoveUnownedWeaponThink = 0xDE8; // int32_t + constexpr std::ptrdiff_t m_IronSightController = 0xDF0; // CIronSightController + constexpr std::ptrdiff_t m_iIronSightMode = 0xE08; // int32_t + constexpr std::ptrdiff_t m_flLastLOSTraceFailureTime = 0xE0C; // GameTime_t + constexpr std::ptrdiff_t m_iNumEmptyAttacks = 0xE10; // int32_t +} + +namespace CCSWeaponBaseGun { // CCSWeaponBase + constexpr std::ptrdiff_t m_zoomLevel = 0xE18; // int32_t + constexpr std::ptrdiff_t m_iBurstShotsRemaining = 0xE1C; // int32_t + constexpr std::ptrdiff_t m_silencedModelIndex = 0xE28; // int32_t + constexpr std::ptrdiff_t m_inPrecache = 0xE2C; // bool + constexpr std::ptrdiff_t m_bNeedsBoltAction = 0xE2D; // bool + constexpr std::ptrdiff_t m_bSkillReloadAvailable = 0xE2E; // bool + constexpr std::ptrdiff_t m_bSkillReloadLiftedReloadKey = 0xE2F; // bool + constexpr std::ptrdiff_t m_bSkillBoltInterruptAvailable = 0xE30; // bool + constexpr std::ptrdiff_t m_bSkillBoltLiftedFireKey = 0xE31; // bool +} + +namespace CCSWeaponBaseVData { // CBasePlayerWeaponVData + constexpr std::ptrdiff_t m_WeaponType = 0x240; // CSWeaponType + constexpr std::ptrdiff_t m_WeaponCategory = 0x244; // CSWeaponCategory + constexpr std::ptrdiff_t m_szViewModel = 0x248; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szPlayerModel = 0x328; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szWorldDroppedModel = 0x408; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szAimsightLensMaskModel = 0x4E8; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMagazineModel = 0x5C8; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szHeatEffect = 0x6A8; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szEjectBrassEffect = 0x788; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMuzzleFlashParticleAlt = 0x868; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMuzzleFlashThirdPersonParticle = 0x948; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szMuzzleFlashThirdPersonParticleAlt = 0xA28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_szTracerParticle = 0xB08; // CResourceNameTyped> + constexpr std::ptrdiff_t m_GearSlot = 0xBE8; // gear_slot_t + constexpr std::ptrdiff_t m_GearSlotPosition = 0xBEC; // int32_t + constexpr std::ptrdiff_t m_DefaultLoadoutSlot = 0xBF0; // loadout_slot_t + constexpr std::ptrdiff_t m_sWrongTeamMsg = 0xBF8; // CUtlString + constexpr std::ptrdiff_t m_nPrice = 0xC00; // int32_t + constexpr std::ptrdiff_t m_nKillAward = 0xC04; // int32_t + constexpr std::ptrdiff_t m_nPrimaryReserveAmmoMax = 0xC08; // int32_t + constexpr std::ptrdiff_t m_nSecondaryReserveAmmoMax = 0xC0C; // int32_t + constexpr std::ptrdiff_t m_bMeleeWeapon = 0xC10; // bool + constexpr std::ptrdiff_t m_bHasBurstMode = 0xC11; // bool + constexpr std::ptrdiff_t m_bIsRevolver = 0xC12; // bool + constexpr std::ptrdiff_t m_bCannotShootUnderwater = 0xC13; // bool + constexpr std::ptrdiff_t m_szName = 0xC18; // CUtlString + constexpr std::ptrdiff_t m_szAnimExtension = 0xC20; // CUtlString + constexpr std::ptrdiff_t m_eSilencerType = 0xC28; // CSWeaponSilencerType + constexpr std::ptrdiff_t m_nCrosshairMinDistance = 0xC2C; // int32_t + constexpr std::ptrdiff_t m_nCrosshairDeltaDistance = 0xC30; // int32_t + constexpr std::ptrdiff_t m_flCycleTime = 0xC34; // CFiringModeFloat + constexpr std::ptrdiff_t m_flMaxSpeed = 0xC3C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flSpread = 0xC44; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyCrouch = 0xC4C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyStand = 0xC54; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyJump = 0xC5C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyLand = 0xC64; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyLadder = 0xC6C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyFire = 0xC74; // CFiringModeFloat + constexpr std::ptrdiff_t m_flInaccuracyMove = 0xC7C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilAngle = 0xC84; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilAngleVariance = 0xC8C; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilMagnitude = 0xC94; // CFiringModeFloat + constexpr std::ptrdiff_t m_flRecoilMagnitudeVariance = 0xC9C; // CFiringModeFloat + constexpr std::ptrdiff_t m_nTracerFrequency = 0xCA4; // CFiringModeInt + constexpr std::ptrdiff_t m_flInaccuracyJumpInitial = 0xCAC; // float + constexpr std::ptrdiff_t m_flInaccuracyJumpApex = 0xCB0; // float + constexpr std::ptrdiff_t m_flInaccuracyReload = 0xCB4; // float + constexpr std::ptrdiff_t m_nRecoilSeed = 0xCB8; // int32_t + constexpr std::ptrdiff_t m_nSpreadSeed = 0xCBC; // int32_t + constexpr std::ptrdiff_t m_flTimeToIdleAfterFire = 0xCC0; // float + constexpr std::ptrdiff_t m_flIdleInterval = 0xCC4; // float + constexpr std::ptrdiff_t m_flAttackMovespeedFactor = 0xCC8; // float + constexpr std::ptrdiff_t m_flHeatPerShot = 0xCCC; // float + constexpr std::ptrdiff_t m_flInaccuracyPitchShift = 0xCD0; // float + constexpr std::ptrdiff_t m_flInaccuracyAltSoundThreshold = 0xCD4; // float + constexpr std::ptrdiff_t m_flBotAudibleRange = 0xCD8; // float + constexpr std::ptrdiff_t m_szUseRadioSubtitle = 0xCE0; // CUtlString + constexpr std::ptrdiff_t m_bUnzoomsAfterShot = 0xCE8; // bool + constexpr std::ptrdiff_t m_bHideViewModelWhenZoomed = 0xCE9; // bool + constexpr std::ptrdiff_t m_nZoomLevels = 0xCEC; // int32_t + constexpr std::ptrdiff_t m_nZoomFOV1 = 0xCF0; // int32_t + constexpr std::ptrdiff_t m_nZoomFOV2 = 0xCF4; // int32_t + constexpr std::ptrdiff_t m_flZoomTime0 = 0xCF8; // float + constexpr std::ptrdiff_t m_flZoomTime1 = 0xCFC; // float + constexpr std::ptrdiff_t m_flZoomTime2 = 0xD00; // float + constexpr std::ptrdiff_t m_flIronSightPullUpSpeed = 0xD04; // float + constexpr std::ptrdiff_t m_flIronSightPutDownSpeed = 0xD08; // float + constexpr std::ptrdiff_t m_flIronSightFOV = 0xD0C; // float + constexpr std::ptrdiff_t m_flIronSightPivotForward = 0xD10; // float + constexpr std::ptrdiff_t m_flIronSightLooseness = 0xD14; // float + constexpr std::ptrdiff_t m_angPivotAngle = 0xD18; // QAngle + constexpr std::ptrdiff_t m_vecIronSightEyePos = 0xD24; // Vector + constexpr std::ptrdiff_t m_nDamage = 0xD30; // int32_t + constexpr std::ptrdiff_t m_flHeadshotMultiplier = 0xD34; // float + constexpr std::ptrdiff_t m_flArmorRatio = 0xD38; // float + constexpr std::ptrdiff_t m_flPenetration = 0xD3C; // float + constexpr std::ptrdiff_t m_flRange = 0xD40; // float + constexpr std::ptrdiff_t m_flRangeModifier = 0xD44; // float + constexpr std::ptrdiff_t m_flFlinchVelocityModifierLarge = 0xD48; // float + constexpr std::ptrdiff_t m_flFlinchVelocityModifierSmall = 0xD4C; // float + constexpr std::ptrdiff_t m_flRecoveryTimeCrouch = 0xD50; // float + constexpr std::ptrdiff_t m_flRecoveryTimeStand = 0xD54; // float + constexpr std::ptrdiff_t m_flRecoveryTimeCrouchFinal = 0xD58; // float + constexpr std::ptrdiff_t m_flRecoveryTimeStandFinal = 0xD5C; // float + constexpr std::ptrdiff_t m_nRecoveryTransitionStartBullet = 0xD60; // int32_t + constexpr std::ptrdiff_t m_nRecoveryTransitionEndBullet = 0xD64; // int32_t + constexpr std::ptrdiff_t m_flThrowVelocity = 0xD68; // float + constexpr std::ptrdiff_t m_vSmokeColor = 0xD6C; // Vector + constexpr std::ptrdiff_t m_szAnimClass = 0xD78; // CUtlString +} + +namespace CChangeLevel { // CBaseTrigger + constexpr std::ptrdiff_t m_sMapName = 0x8A8; // CUtlString + constexpr std::ptrdiff_t m_sLandmarkName = 0x8B0; // CUtlString + constexpr std::ptrdiff_t m_OnChangeLevel = 0x8B8; // CEntityIOOutput + constexpr std::ptrdiff_t m_bTouched = 0x8E0; // bool + constexpr std::ptrdiff_t m_bNoTouch = 0x8E1; // bool + constexpr std::ptrdiff_t m_bNewChapter = 0x8E2; // bool + constexpr std::ptrdiff_t m_bOnChangeLevelFired = 0x8E3; // bool +} + +namespace CChicken { // CDynamicProp + constexpr std::ptrdiff_t m_AttributeManager = 0xB28; // CAttributeContainer + constexpr std::ptrdiff_t m_OriginalOwnerXuidLow = 0xDF0; // uint32_t + constexpr std::ptrdiff_t m_OriginalOwnerXuidHigh = 0xDF4; // uint32_t + constexpr std::ptrdiff_t m_updateTimer = 0xDF8; // CountdownTimer + constexpr std::ptrdiff_t m_stuckAnchor = 0xE10; // Vector + constexpr std::ptrdiff_t m_stuckTimer = 0xE20; // CountdownTimer + constexpr std::ptrdiff_t m_collisionStuckTimer = 0xE38; // CountdownTimer + constexpr std::ptrdiff_t m_isOnGround = 0xE50; // bool + constexpr std::ptrdiff_t m_vFallVelocity = 0xE54; // Vector + constexpr std::ptrdiff_t m_activity = 0xE60; // ChickenActivity + constexpr std::ptrdiff_t m_activityTimer = 0xE68; // CountdownTimer + constexpr std::ptrdiff_t m_turnRate = 0xE80; // float + constexpr std::ptrdiff_t m_fleeFrom = 0xE84; // CHandle + constexpr std::ptrdiff_t m_moveRateThrottleTimer = 0xE88; // CountdownTimer + constexpr std::ptrdiff_t m_startleTimer = 0xEA0; // CountdownTimer + constexpr std::ptrdiff_t m_vocalizeTimer = 0xEB8; // CountdownTimer + constexpr std::ptrdiff_t m_flWhenZombified = 0xED0; // GameTime_t + constexpr std::ptrdiff_t m_jumpedThisFrame = 0xED4; // bool + constexpr std::ptrdiff_t m_leader = 0xED8; // CHandle + constexpr std::ptrdiff_t m_reuseTimer = 0xEE0; // CountdownTimer + constexpr std::ptrdiff_t m_hasBeenUsed = 0xEF8; // bool + constexpr std::ptrdiff_t m_jumpTimer = 0xF00; // CountdownTimer + constexpr std::ptrdiff_t m_flLastJumpTime = 0xF18; // float + constexpr std::ptrdiff_t m_bInJump = 0xF1C; // bool + constexpr std::ptrdiff_t m_isWaitingForLeader = 0xF1D; // bool + constexpr std::ptrdiff_t m_repathTimer = 0x2F28; // CountdownTimer + constexpr std::ptrdiff_t m_inhibitDoorTimer = 0x2F40; // CountdownTimer + constexpr std::ptrdiff_t m_inhibitObstacleAvoidanceTimer = 0x2FD0; // CountdownTimer + constexpr std::ptrdiff_t m_vecPathGoal = 0x2FF0; // Vector + constexpr std::ptrdiff_t m_flActiveFollowStartTime = 0x2FFC; // GameTime_t + constexpr std::ptrdiff_t m_followMinuteTimer = 0x3000; // CountdownTimer + constexpr std::ptrdiff_t m_vecLastEggPoopPosition = 0x3018; // Vector + constexpr std::ptrdiff_t m_vecEggsPooped = 0x3028; // CUtlVector> + constexpr std::ptrdiff_t m_BlockDirectionTimer = 0x3048; // CountdownTimer +} + +namespace CCollisionProperty { + constexpr std::ptrdiff_t m_collisionAttribute = 0x10; // VPhysicsCollisionAttribute_t + constexpr std::ptrdiff_t m_vecMins = 0x40; // Vector + constexpr std::ptrdiff_t m_vecMaxs = 0x4C; // Vector + constexpr std::ptrdiff_t m_usSolidFlags = 0x5A; // uint8_t + constexpr std::ptrdiff_t m_nSolidType = 0x5B; // SolidType_t + constexpr std::ptrdiff_t m_triggerBloat = 0x5C; // uint8_t + constexpr std::ptrdiff_t m_nSurroundType = 0x5D; // SurroundingBoundsType_t + constexpr std::ptrdiff_t m_CollisionGroup = 0x5E; // uint8_t + constexpr std::ptrdiff_t m_nEnablePhysics = 0x5F; // uint8_t + constexpr std::ptrdiff_t m_flBoundingRadius = 0x60; // float + constexpr std::ptrdiff_t m_vecSpecifiedSurroundingMins = 0x64; // Vector + constexpr std::ptrdiff_t m_vecSpecifiedSurroundingMaxs = 0x70; // Vector + constexpr std::ptrdiff_t m_vecSurroundingMaxs = 0x7C; // Vector + constexpr std::ptrdiff_t m_vecSurroundingMins = 0x88; // Vector + constexpr std::ptrdiff_t m_vCapsuleCenter1 = 0x94; // Vector + constexpr std::ptrdiff_t m_vCapsuleCenter2 = 0xA0; // Vector + constexpr std::ptrdiff_t m_flCapsuleRadius = 0xAC; // float +} + +namespace CColorCorrection { // CBaseEntity + constexpr std::ptrdiff_t m_flFadeInDuration = 0x4B0; // float + constexpr std::ptrdiff_t m_flFadeOutDuration = 0x4B4; // float + constexpr std::ptrdiff_t m_flStartFadeInWeight = 0x4B8; // float + constexpr std::ptrdiff_t m_flStartFadeOutWeight = 0x4BC; // float + constexpr std::ptrdiff_t m_flTimeStartFadeIn = 0x4C0; // GameTime_t + constexpr std::ptrdiff_t m_flTimeStartFadeOut = 0x4C4; // GameTime_t + constexpr std::ptrdiff_t m_flMaxWeight = 0x4C8; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x4CC; // bool + constexpr std::ptrdiff_t m_bEnabled = 0x4CD; // bool + constexpr std::ptrdiff_t m_bMaster = 0x4CE; // bool + constexpr std::ptrdiff_t m_bClientSide = 0x4CF; // bool + constexpr std::ptrdiff_t m_bExclusive = 0x4D0; // bool + constexpr std::ptrdiff_t m_MinFalloff = 0x4D4; // float + constexpr std::ptrdiff_t m_MaxFalloff = 0x4D8; // float + constexpr std::ptrdiff_t m_flCurWeight = 0x4DC; // float + constexpr std::ptrdiff_t m_netlookupFilename = 0x4E0; // char[512] + constexpr std::ptrdiff_t m_lookupFilename = 0x6E0; // CUtlSymbolLarge +} + +namespace CColorCorrectionVolume { // CBaseTrigger + constexpr std::ptrdiff_t m_bEnabled = 0x8A8; // bool + constexpr std::ptrdiff_t m_MaxWeight = 0x8AC; // float + constexpr std::ptrdiff_t m_FadeDuration = 0x8B0; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x8B4; // bool + constexpr std::ptrdiff_t m_Weight = 0x8B8; // float + constexpr std::ptrdiff_t m_lookupFilename = 0x8BC; // char[512] + constexpr std::ptrdiff_t m_LastEnterWeight = 0xABC; // float + constexpr std::ptrdiff_t m_LastEnterTime = 0xAC0; // GameTime_t + constexpr std::ptrdiff_t m_LastExitWeight = 0xAC4; // float + constexpr std::ptrdiff_t m_LastExitTime = 0xAC8; // GameTime_t +} + +namespace CCommentaryAuto { // CBaseEntity + constexpr std::ptrdiff_t m_OnCommentaryNewGame = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnCommentaryMidGame = 0x4D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnCommentaryMultiplayerSpawn = 0x500; // CEntityIOOutput +} + +namespace CCommentarySystem { + constexpr std::ptrdiff_t m_bCommentaryConvarsChanging = 0x11; // bool + constexpr std::ptrdiff_t m_bCommentaryEnabledMidGame = 0x12; // bool + constexpr std::ptrdiff_t m_flNextTeleportTime = 0x14; // GameTime_t + constexpr std::ptrdiff_t m_iTeleportStage = 0x18; // int32_t + constexpr std::ptrdiff_t m_bCheatState = 0x1C; // bool + constexpr std::ptrdiff_t m_bIsFirstSpawnGroupToLoad = 0x1D; // bool + constexpr std::ptrdiff_t m_hCurrentNode = 0x38; // CHandle + constexpr std::ptrdiff_t m_hActiveCommentaryNode = 0x3C; // CHandle + constexpr std::ptrdiff_t m_hLastCommentaryNode = 0x40; // CHandle + constexpr std::ptrdiff_t m_vecNodes = 0x48; // CUtlVector> +} + +namespace CCommentaryViewPosition { // CSprite +} + +namespace CConstantForceController { + constexpr std::ptrdiff_t m_linear = 0xC; // Vector + constexpr std::ptrdiff_t m_angular = 0x18; // RotationVector + constexpr std::ptrdiff_t m_linearSave = 0x24; // Vector + constexpr std::ptrdiff_t m_angularSave = 0x30; // RotationVector +} + +namespace CConstraintAnchor { // CBaseAnimGraph + constexpr std::ptrdiff_t m_massScale = 0x890; // float +} + +namespace CCoopBonusCoin { // CDynamicProp +} + +namespace CCopyRecipientFilter { + constexpr std::ptrdiff_t m_Flags = 0x8; // int32_t + constexpr std::ptrdiff_t m_Recipients = 0x10; // CUtlVector +} + +namespace CCredits { // CPointEntity + constexpr std::ptrdiff_t m_OnCreditsDone = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_bRolledOutroCredits = 0x4D8; // bool + constexpr std::ptrdiff_t m_flLogoLength = 0x4DC; // float +} + +namespace CDEagle { // CCSWeaponBaseGun +} + +namespace CDamageRecord { + constexpr std::ptrdiff_t m_PlayerDamager = 0x28; // CHandle + constexpr std::ptrdiff_t m_PlayerRecipient = 0x2C; // CHandle + constexpr std::ptrdiff_t m_hPlayerControllerDamager = 0x30; // CHandle + constexpr std::ptrdiff_t m_hPlayerControllerRecipient = 0x34; // CHandle + constexpr std::ptrdiff_t m_szPlayerDamagerName = 0x38; // CUtlString + constexpr std::ptrdiff_t m_szPlayerRecipientName = 0x40; // CUtlString + constexpr std::ptrdiff_t m_DamagerXuid = 0x48; // uint64_t + constexpr std::ptrdiff_t m_RecipientXuid = 0x50; // uint64_t + constexpr std::ptrdiff_t m_iDamage = 0x58; // int32_t + constexpr std::ptrdiff_t m_iActualHealthRemoved = 0x5C; // int32_t + constexpr std::ptrdiff_t m_iNumHits = 0x60; // int32_t + constexpr std::ptrdiff_t m_iLastBulletUpdate = 0x64; // int32_t + constexpr std::ptrdiff_t m_bIsOtherEnemy = 0x68; // bool + constexpr std::ptrdiff_t m_killType = 0x69; // EKillTypes_t +} + +namespace CDebugHistory { // CBaseEntity + constexpr std::ptrdiff_t m_nNpcEvents = 0x44F0; // int32_t +} + +namespace CDecoyGrenade { // CBaseCSGrenade +} + +namespace CDecoyProjectile { // CBaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_nDecoyShotTick = 0xA38; // int32_t + constexpr std::ptrdiff_t m_shotsRemaining = 0xA3C; // int32_t + constexpr std::ptrdiff_t m_fExpireTime = 0xA40; // GameTime_t + constexpr std::ptrdiff_t m_decoyWeaponDefIndex = 0xA50; // uint16_t +} + +namespace CDynamicLight { // CBaseModelEntity + constexpr std::ptrdiff_t m_ActualFlags = 0x700; // uint8_t + constexpr std::ptrdiff_t m_Flags = 0x701; // uint8_t + constexpr std::ptrdiff_t m_LightStyle = 0x702; // uint8_t + constexpr std::ptrdiff_t m_On = 0x703; // bool + constexpr std::ptrdiff_t m_Radius = 0x704; // float + constexpr std::ptrdiff_t m_Exponent = 0x708; // int32_t + constexpr std::ptrdiff_t m_InnerAngle = 0x70C; // float + constexpr std::ptrdiff_t m_OuterAngle = 0x710; // float + constexpr std::ptrdiff_t m_SpotRadius = 0x714; // float +} + +namespace CDynamicProp { // CBreakableProp + constexpr std::ptrdiff_t m_bCreateNavObstacle = 0xA10; // bool + constexpr std::ptrdiff_t m_bUseHitboxesForRenderBox = 0xA11; // bool + constexpr std::ptrdiff_t m_bUseAnimGraph = 0xA12; // bool + constexpr std::ptrdiff_t m_pOutputAnimBegun = 0xA18; // CEntityIOOutput + constexpr std::ptrdiff_t m_pOutputAnimOver = 0xA40; // CEntityIOOutput + constexpr std::ptrdiff_t m_pOutputAnimLoopCycleOver = 0xA68; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAnimReachedStart = 0xA90; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAnimReachedEnd = 0xAB8; // CEntityIOOutput + constexpr std::ptrdiff_t m_iszDefaultAnim = 0xAE0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nDefaultAnimLoopMode = 0xAE8; // AnimLoopMode_t + constexpr std::ptrdiff_t m_bAnimateOnServer = 0xAEC; // bool + constexpr std::ptrdiff_t m_bRandomizeCycle = 0xAED; // bool + constexpr std::ptrdiff_t m_bStartDisabled = 0xAEE; // bool + constexpr std::ptrdiff_t m_bScriptedMovement = 0xAEF; // bool + constexpr std::ptrdiff_t m_bFiredStartEndOutput = 0xAF0; // bool + constexpr std::ptrdiff_t m_bForceNpcExclude = 0xAF1; // bool + constexpr std::ptrdiff_t m_bCreateNonSolid = 0xAF2; // bool + constexpr std::ptrdiff_t m_bIsOverrideProp = 0xAF3; // bool + constexpr std::ptrdiff_t m_iInitialGlowState = 0xAF4; // int32_t + constexpr std::ptrdiff_t m_nGlowRange = 0xAF8; // int32_t + constexpr std::ptrdiff_t m_nGlowRangeMin = 0xAFC; // int32_t + constexpr std::ptrdiff_t m_glowColor = 0xB00; // Color + constexpr std::ptrdiff_t m_nGlowTeam = 0xB04; // int32_t +} + +namespace CDynamicPropAlias_cable_dynamic { // CDynamicProp +} + +namespace CDynamicPropAlias_dynamic_prop { // CDynamicProp +} + +namespace CDynamicPropAlias_prop_dynamic_override { // CDynamicProp +} + +namespace CEconEntity { // CBaseFlex + constexpr std::ptrdiff_t m_AttributeManager = 0x930; // CAttributeContainer + constexpr std::ptrdiff_t m_OriginalOwnerXuidLow = 0xBF8; // uint32_t + constexpr std::ptrdiff_t m_OriginalOwnerXuidHigh = 0xBFC; // uint32_t + constexpr std::ptrdiff_t m_nFallbackPaintKit = 0xC00; // int32_t + constexpr std::ptrdiff_t m_nFallbackSeed = 0xC04; // int32_t + constexpr std::ptrdiff_t m_flFallbackWear = 0xC08; // float + constexpr std::ptrdiff_t m_nFallbackStatTrak = 0xC0C; // int32_t + constexpr std::ptrdiff_t m_hOldProvidee = 0xC10; // CHandle + constexpr std::ptrdiff_t m_iOldOwnerClass = 0xC14; // int32_t +} + +namespace CEconItemAttribute { + constexpr std::ptrdiff_t m_iAttributeDefinitionIndex = 0x30; // uint16_t + constexpr std::ptrdiff_t m_flValue = 0x34; // float + constexpr std::ptrdiff_t m_flInitialValue = 0x38; // float + constexpr std::ptrdiff_t m_nRefundableCurrency = 0x3C; // int32_t + constexpr std::ptrdiff_t m_bSetBonus = 0x40; // bool +} + +namespace CEconItemView { // IEconItemInterface + constexpr std::ptrdiff_t m_iItemDefinitionIndex = 0x38; // uint16_t + constexpr std::ptrdiff_t m_iEntityQuality = 0x3C; // int32_t + constexpr std::ptrdiff_t m_iEntityLevel = 0x40; // uint32_t + constexpr std::ptrdiff_t m_iItemID = 0x48; // uint64_t + constexpr std::ptrdiff_t m_iItemIDHigh = 0x50; // uint32_t + constexpr std::ptrdiff_t m_iItemIDLow = 0x54; // uint32_t + constexpr std::ptrdiff_t m_iAccountID = 0x58; // uint32_t + constexpr std::ptrdiff_t m_iInventoryPosition = 0x5C; // uint32_t + constexpr std::ptrdiff_t m_bInitialized = 0x68; // bool + constexpr std::ptrdiff_t m_AttributeList = 0x70; // CAttributeList + constexpr std::ptrdiff_t m_NetworkedDynamicAttributes = 0xD0; // CAttributeList + constexpr std::ptrdiff_t m_szCustomName = 0x130; // char[161] + constexpr std::ptrdiff_t m_szCustomNameOverride = 0x1D1; // char[161] +} + +namespace CEconWearable { // CEconEntity + constexpr std::ptrdiff_t m_nForceSkin = 0xC18; // int32_t + constexpr std::ptrdiff_t m_bAlwaysAllow = 0xC1C; // bool +} + +namespace CEffectData { + constexpr std::ptrdiff_t m_vOrigin = 0x8; // Vector + constexpr std::ptrdiff_t m_vStart = 0x14; // Vector + constexpr std::ptrdiff_t m_vNormal = 0x20; // Vector + constexpr std::ptrdiff_t m_vAngles = 0x2C; // QAngle + constexpr std::ptrdiff_t m_hEntity = 0x38; // CEntityHandle + constexpr std::ptrdiff_t m_hOtherEntity = 0x3C; // CEntityHandle + constexpr std::ptrdiff_t m_flScale = 0x40; // float + constexpr std::ptrdiff_t m_flMagnitude = 0x44; // float + constexpr std::ptrdiff_t m_flRadius = 0x48; // float + constexpr std::ptrdiff_t m_nSurfaceProp = 0x4C; // CUtlStringToken + constexpr std::ptrdiff_t m_nEffectIndex = 0x50; // CWeakHandle + constexpr std::ptrdiff_t m_nDamageType = 0x58; // uint32_t + constexpr std::ptrdiff_t m_nPenetrate = 0x5C; // uint8_t + constexpr std::ptrdiff_t m_nMaterial = 0x5E; // uint16_t + constexpr std::ptrdiff_t m_nHitBox = 0x60; // uint16_t + constexpr std::ptrdiff_t m_nColor = 0x62; // uint8_t + constexpr std::ptrdiff_t m_fFlags = 0x63; // uint8_t + constexpr std::ptrdiff_t m_nAttachmentIndex = 0x64; // AttachmentHandle_t + constexpr std::ptrdiff_t m_nAttachmentName = 0x68; // CUtlStringToken + constexpr std::ptrdiff_t m_iEffectName = 0x6C; // uint16_t + constexpr std::ptrdiff_t m_nExplosionType = 0x6E; // uint8_t +} + +namespace CEnableMotionFixup { // CBaseEntity +} + +namespace CEntityBlocker { // CBaseModelEntity +} + +namespace CEntityComponent { +} + +namespace CEntityDissolve { // CBaseModelEntity + constexpr std::ptrdiff_t m_flFadeInStart = 0x700; // float + constexpr std::ptrdiff_t m_flFadeInLength = 0x704; // float + constexpr std::ptrdiff_t m_flFadeOutModelStart = 0x708; // float + constexpr std::ptrdiff_t m_flFadeOutModelLength = 0x70C; // float + constexpr std::ptrdiff_t m_flFadeOutStart = 0x710; // float + constexpr std::ptrdiff_t m_flFadeOutLength = 0x714; // float + constexpr std::ptrdiff_t m_flStartTime = 0x718; // GameTime_t + constexpr std::ptrdiff_t m_nDissolveType = 0x71C; // EntityDisolveType_t + constexpr std::ptrdiff_t m_vDissolverOrigin = 0x720; // Vector + constexpr std::ptrdiff_t m_nMagnitude = 0x72C; // uint32_t +} + +namespace CEntityFlame { // CBaseEntity + constexpr std::ptrdiff_t m_hEntAttached = 0x4B0; // CHandle + constexpr std::ptrdiff_t m_bCheapEffect = 0x4B4; // bool + constexpr std::ptrdiff_t m_flSize = 0x4B8; // float + constexpr std::ptrdiff_t m_bUseHitboxes = 0x4BC; // bool + constexpr std::ptrdiff_t m_iNumHitboxFires = 0x4C0; // int32_t + constexpr std::ptrdiff_t m_flHitboxFireScale = 0x4C4; // float + constexpr std::ptrdiff_t m_flLifetime = 0x4C8; // GameTime_t + constexpr std::ptrdiff_t m_hAttacker = 0x4CC; // CHandle + constexpr std::ptrdiff_t m_iDangerSound = 0x4D0; // int32_t + constexpr std::ptrdiff_t m_flDirectDamagePerSecond = 0x4D4; // float + constexpr std::ptrdiff_t m_iCustomDamageType = 0x4D8; // int32_t +} + +namespace CEntityIdentity { + constexpr std::ptrdiff_t m_nameStringableIndex = 0x14; // int32_t + constexpr std::ptrdiff_t m_name = 0x18; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_designerName = 0x20; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flags = 0x30; // uint32_t + constexpr std::ptrdiff_t m_worldGroupId = 0x38; // WorldGroupId_t + constexpr std::ptrdiff_t m_fDataObjectTypes = 0x3C; // uint32_t + constexpr std::ptrdiff_t m_PathIndex = 0x40; // ChangeAccessorFieldPathIndex_t + constexpr std::ptrdiff_t m_pPrev = 0x58; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNext = 0x60; // CEntityIdentity* + constexpr std::ptrdiff_t m_pPrevByClass = 0x68; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNextByClass = 0x70; // CEntityIdentity* +} + +namespace CEntityInstance { + constexpr std::ptrdiff_t m_iszPrivateVScripts = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pEntity = 0x10; // CEntityIdentity* + constexpr std::ptrdiff_t m_CScriptComponent = 0x28; // CScriptComponent* +} + +namespace CEntitySubclassVDataBase { +} + +namespace CEnvBeam { // CBeam + constexpr std::ptrdiff_t m_active = 0x7A0; // int32_t + constexpr std::ptrdiff_t m_spriteTexture = 0x7A8; // CStrongHandle + constexpr std::ptrdiff_t m_iszStartEntity = 0x7B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszEndEntity = 0x7B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_life = 0x7C0; // float + constexpr std::ptrdiff_t m_boltWidth = 0x7C4; // float + constexpr std::ptrdiff_t m_noiseAmplitude = 0x7C8; // float + constexpr std::ptrdiff_t m_speed = 0x7CC; // int32_t + constexpr std::ptrdiff_t m_restrike = 0x7D0; // float + constexpr std::ptrdiff_t m_iszSpriteName = 0x7D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_frameStart = 0x7E0; // int32_t + constexpr std::ptrdiff_t m_vEndPointWorld = 0x7E4; // Vector + constexpr std::ptrdiff_t m_vEndPointRelative = 0x7F0; // Vector + constexpr std::ptrdiff_t m_radius = 0x7FC; // float + constexpr std::ptrdiff_t m_TouchType = 0x800; // Touch_t + constexpr std::ptrdiff_t m_iFilterName = 0x808; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFilter = 0x810; // CHandle + constexpr std::ptrdiff_t m_iszDecal = 0x818; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_OnTouchedByEntity = 0x820; // CEntityIOOutput +} + +namespace CEnvBeverage { // CBaseEntity + constexpr std::ptrdiff_t m_CanInDispenser = 0x4B0; // bool + constexpr std::ptrdiff_t m_nBeverageType = 0x4B4; // int32_t +} + +namespace CEnvCombinedLightProbeVolume { // CBaseEntity + constexpr std::ptrdiff_t m_Color = 0x1508; // Color + constexpr std::ptrdiff_t m_flBrightness = 0x150C; // float + constexpr std::ptrdiff_t m_hCubemapTexture = 0x1510; // CStrongHandle + constexpr std::ptrdiff_t m_bCustomCubemapTexture = 0x1518; // bool + constexpr std::ptrdiff_t m_hLightProbeTexture = 0x1520; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightIndicesTexture = 0x1528; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightScalarsTexture = 0x1530; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightShadowsTexture = 0x1538; // CStrongHandle + constexpr std::ptrdiff_t m_vBoxMins = 0x1540; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x154C; // Vector + constexpr std::ptrdiff_t m_bMoveable = 0x1558; // bool + constexpr std::ptrdiff_t m_nHandshake = 0x155C; // int32_t + constexpr std::ptrdiff_t m_nEnvCubeMapArrayIndex = 0x1560; // int32_t + constexpr std::ptrdiff_t m_nPriority = 0x1564; // int32_t + constexpr std::ptrdiff_t m_bStartDisabled = 0x1568; // bool + constexpr std::ptrdiff_t m_flEdgeFadeDist = 0x156C; // float + constexpr std::ptrdiff_t m_vEdgeFadeDists = 0x1570; // Vector + constexpr std::ptrdiff_t m_nLightProbeSizeX = 0x157C; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeY = 0x1580; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeZ = 0x1584; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasX = 0x1588; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasY = 0x158C; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasZ = 0x1590; // int32_t + constexpr std::ptrdiff_t m_bEnabled = 0x15A9; // bool +} + +namespace CEnvCubemap { // CBaseEntity + constexpr std::ptrdiff_t m_hCubemapTexture = 0x530; // CStrongHandle + constexpr std::ptrdiff_t m_bCustomCubemapTexture = 0x538; // bool + constexpr std::ptrdiff_t m_flInfluenceRadius = 0x53C; // float + constexpr std::ptrdiff_t m_vBoxProjectMins = 0x540; // Vector + constexpr std::ptrdiff_t m_vBoxProjectMaxs = 0x54C; // Vector + constexpr std::ptrdiff_t m_bMoveable = 0x558; // bool + constexpr std::ptrdiff_t m_nHandshake = 0x55C; // int32_t + constexpr std::ptrdiff_t m_nEnvCubeMapArrayIndex = 0x560; // int32_t + constexpr std::ptrdiff_t m_nPriority = 0x564; // int32_t + constexpr std::ptrdiff_t m_flEdgeFadeDist = 0x568; // float + constexpr std::ptrdiff_t m_vEdgeFadeDists = 0x56C; // Vector + constexpr std::ptrdiff_t m_flDiffuseScale = 0x578; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x57C; // bool + constexpr std::ptrdiff_t m_bDefaultEnvMap = 0x57D; // bool + constexpr std::ptrdiff_t m_bDefaultSpecEnvMap = 0x57E; // bool + constexpr std::ptrdiff_t m_bIndoorCubeMap = 0x57F; // bool + constexpr std::ptrdiff_t m_bCopyDiffuseFromDefaultCubemap = 0x580; // bool + constexpr std::ptrdiff_t m_bEnabled = 0x590; // bool +} + +namespace CEnvCubemapBox { // CEnvCubemap +} + +namespace CEnvCubemapFog { // CBaseEntity + constexpr std::ptrdiff_t m_flEndDistance = 0x4B0; // float + constexpr std::ptrdiff_t m_flStartDistance = 0x4B4; // float + constexpr std::ptrdiff_t m_flFogFalloffExponent = 0x4B8; // float + constexpr std::ptrdiff_t m_bHeightFogEnabled = 0x4BC; // bool + constexpr std::ptrdiff_t m_flFogHeightWidth = 0x4C0; // float + constexpr std::ptrdiff_t m_flFogHeightEnd = 0x4C4; // float + constexpr std::ptrdiff_t m_flFogHeightStart = 0x4C8; // float + constexpr std::ptrdiff_t m_flFogHeightExponent = 0x4CC; // float + constexpr std::ptrdiff_t m_flLODBias = 0x4D0; // float + constexpr std::ptrdiff_t m_bActive = 0x4D4; // bool + constexpr std::ptrdiff_t m_bStartDisabled = 0x4D5; // bool + constexpr std::ptrdiff_t m_flFogMaxOpacity = 0x4D8; // float + constexpr std::ptrdiff_t m_nCubemapSourceType = 0x4DC; // int32_t + constexpr std::ptrdiff_t m_hSkyMaterial = 0x4E0; // CStrongHandle + constexpr std::ptrdiff_t m_iszSkyEntity = 0x4E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFogCubemapTexture = 0x4F0; // CStrongHandle + constexpr std::ptrdiff_t m_bHasHeightFogEnd = 0x4F8; // bool + constexpr std::ptrdiff_t m_bFirstTime = 0x4F9; // bool +} + +namespace CEnvDecal { // CBaseModelEntity + constexpr std::ptrdiff_t m_hDecalMaterial = 0x700; // CStrongHandle + constexpr std::ptrdiff_t m_flWidth = 0x708; // float + constexpr std::ptrdiff_t m_flHeight = 0x70C; // float + constexpr std::ptrdiff_t m_flDepth = 0x710; // float + constexpr std::ptrdiff_t m_nRenderOrder = 0x714; // uint32_t + constexpr std::ptrdiff_t m_bProjectOnWorld = 0x718; // bool + constexpr std::ptrdiff_t m_bProjectOnCharacters = 0x719; // bool + constexpr std::ptrdiff_t m_bProjectOnWater = 0x71A; // bool + constexpr std::ptrdiff_t m_flDepthSortBias = 0x71C; // float +} + +namespace CEnvDetailController { // CBaseEntity + constexpr std::ptrdiff_t m_flFadeStartDist = 0x4B0; // float + constexpr std::ptrdiff_t m_flFadeEndDist = 0x4B4; // float +} + +namespace CEnvEntityIgniter { // CBaseEntity + constexpr std::ptrdiff_t m_flLifetime = 0x4B0; // float +} + +namespace CEnvEntityMaker { // CPointEntity + constexpr std::ptrdiff_t m_vecEntityMins = 0x4B0; // Vector + constexpr std::ptrdiff_t m_vecEntityMaxs = 0x4BC; // Vector + constexpr std::ptrdiff_t m_hCurrentInstance = 0x4C8; // CHandle + constexpr std::ptrdiff_t m_hCurrentBlocker = 0x4CC; // CHandle + constexpr std::ptrdiff_t m_vecBlockerOrigin = 0x4D0; // Vector + constexpr std::ptrdiff_t m_angPostSpawnDirection = 0x4DC; // QAngle + constexpr std::ptrdiff_t m_flPostSpawnDirectionVariance = 0x4E8; // float + constexpr std::ptrdiff_t m_flPostSpawnSpeed = 0x4EC; // float + constexpr std::ptrdiff_t m_bPostSpawnUseAngles = 0x4F0; // bool + constexpr std::ptrdiff_t m_iszTemplate = 0x4F8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pOutputOnSpawned = 0x500; // CEntityIOOutput + constexpr std::ptrdiff_t m_pOutputOnFailedSpawn = 0x528; // CEntityIOOutput +} + +namespace CEnvExplosion { // CModelPointEntity + constexpr std::ptrdiff_t m_iMagnitude = 0x700; // int32_t + constexpr std::ptrdiff_t m_flPlayerDamage = 0x704; // float + constexpr std::ptrdiff_t m_iRadiusOverride = 0x708; // int32_t + constexpr std::ptrdiff_t m_flInnerRadius = 0x70C; // float + constexpr std::ptrdiff_t m_spriteScale = 0x710; // int32_t + constexpr std::ptrdiff_t m_flDamageForce = 0x714; // float + constexpr std::ptrdiff_t m_hInflictor = 0x718; // CHandle + constexpr std::ptrdiff_t m_iCustomDamageType = 0x71C; // int32_t + constexpr std::ptrdiff_t m_iszExplosionType = 0x728; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszCustomEffectName = 0x730; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszCustomSoundName = 0x738; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iClassIgnore = 0x740; // Class_T + constexpr std::ptrdiff_t m_iClassIgnore2 = 0x744; // Class_T + constexpr std::ptrdiff_t m_iszEntityIgnoreName = 0x748; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hEntityIgnore = 0x750; // CHandle +} + +namespace CEnvFade { // CLogicalEntity + constexpr std::ptrdiff_t m_fadeColor = 0x4B0; // Color + constexpr std::ptrdiff_t m_Duration = 0x4B4; // float + constexpr std::ptrdiff_t m_HoldDuration = 0x4B8; // float + constexpr std::ptrdiff_t m_OnBeginFade = 0x4C0; // CEntityIOOutput +} + +namespace CEnvFireSensor { // CBaseEntity + constexpr std::ptrdiff_t m_bEnabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_bHeatAtLevel = 0x4B1; // bool + constexpr std::ptrdiff_t m_radius = 0x4B4; // float + constexpr std::ptrdiff_t m_targetLevel = 0x4B8; // float + constexpr std::ptrdiff_t m_targetTime = 0x4BC; // float + constexpr std::ptrdiff_t m_levelTime = 0x4C0; // float + constexpr std::ptrdiff_t m_OnHeatLevelStart = 0x4C8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnHeatLevelEnd = 0x4F0; // CEntityIOOutput +} + +namespace CEnvFireSource { // CBaseEntity + constexpr std::ptrdiff_t m_bEnabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_radius = 0x4B4; // float + constexpr std::ptrdiff_t m_damage = 0x4B8; // float +} + +namespace CEnvFunnel { // CBaseEntity +} + +namespace CEnvGlobal { // CLogicalEntity + constexpr std::ptrdiff_t m_outCounter = 0x4B0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_globalstate = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_triggermode = 0x4E0; // int32_t + constexpr std::ptrdiff_t m_initialstate = 0x4E4; // int32_t + constexpr std::ptrdiff_t m_counter = 0x4E8; // int32_t +} + +namespace CEnvHudHint { // CPointEntity + constexpr std::ptrdiff_t m_iszMessage = 0x4B0; // CUtlSymbolLarge +} + +namespace CEnvInstructorHint { // CPointEntity + constexpr std::ptrdiff_t m_iszName = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszReplace_Key = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszHintTargetEntity = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iTimeout = 0x4C8; // int32_t + constexpr std::ptrdiff_t m_iDisplayLimit = 0x4CC; // int32_t + constexpr std::ptrdiff_t m_iszIcon_Onscreen = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszIcon_Offscreen = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszCaption = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszActivatorCaption = 0x4E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Color = 0x4F0; // Color + constexpr std::ptrdiff_t m_fIconOffset = 0x4F4; // float + constexpr std::ptrdiff_t m_fRange = 0x4F8; // float + constexpr std::ptrdiff_t m_iPulseOption = 0x4FC; // uint8_t + constexpr std::ptrdiff_t m_iAlphaOption = 0x4FD; // uint8_t + constexpr std::ptrdiff_t m_iShakeOption = 0x4FE; // uint8_t + constexpr std::ptrdiff_t m_bStatic = 0x4FF; // bool + constexpr std::ptrdiff_t m_bNoOffscreen = 0x500; // bool + constexpr std::ptrdiff_t m_bForceCaption = 0x501; // bool + constexpr std::ptrdiff_t m_iInstanceType = 0x504; // int32_t + constexpr std::ptrdiff_t m_bSuppressRest = 0x508; // bool + constexpr std::ptrdiff_t m_iszBinding = 0x510; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bAllowNoDrawTarget = 0x518; // bool + constexpr std::ptrdiff_t m_bAutoStart = 0x519; // bool + constexpr std::ptrdiff_t m_bLocalPlayerOnly = 0x51A; // bool +} + +namespace CEnvInstructorVRHint { // CPointEntity + constexpr std::ptrdiff_t m_iszName = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszHintTargetEntity = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iTimeout = 0x4C0; // int32_t + constexpr std::ptrdiff_t m_iszCaption = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszStartSound = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iLayoutFileType = 0x4D8; // int32_t + constexpr std::ptrdiff_t m_iszCustomLayoutFile = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iAttachType = 0x4E8; // int32_t + constexpr std::ptrdiff_t m_flHeightOffset = 0x4EC; // float +} + +namespace CEnvLaser { // CBeam + constexpr std::ptrdiff_t m_iszLaserTarget = 0x7A0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pSprite = 0x7A8; // CSprite* + constexpr std::ptrdiff_t m_iszSpriteName = 0x7B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_firePosition = 0x7B8; // Vector + constexpr std::ptrdiff_t m_flStartFrame = 0x7C4; // float +} + +namespace CEnvLightProbeVolume { // CBaseEntity + constexpr std::ptrdiff_t m_hLightProbeTexture = 0x1488; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightIndicesTexture = 0x1490; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightScalarsTexture = 0x1498; // CStrongHandle + constexpr std::ptrdiff_t m_hLightProbeDirectLightShadowsTexture = 0x14A0; // CStrongHandle + constexpr std::ptrdiff_t m_vBoxMins = 0x14A8; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x14B4; // Vector + constexpr std::ptrdiff_t m_bMoveable = 0x14C0; // bool + constexpr std::ptrdiff_t m_nHandshake = 0x14C4; // int32_t + constexpr std::ptrdiff_t m_nPriority = 0x14C8; // int32_t + constexpr std::ptrdiff_t m_bStartDisabled = 0x14CC; // bool + constexpr std::ptrdiff_t m_nLightProbeSizeX = 0x14D0; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeY = 0x14D4; // int32_t + constexpr std::ptrdiff_t m_nLightProbeSizeZ = 0x14D8; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasX = 0x14DC; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasY = 0x14E0; // int32_t + constexpr std::ptrdiff_t m_nLightProbeAtlasZ = 0x14E4; // int32_t + constexpr std::ptrdiff_t m_bEnabled = 0x14F1; // bool +} + +namespace CEnvMicrophone { // CPointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_hMeasureTarget = 0x4B4; // CHandle + constexpr std::ptrdiff_t m_nSoundMask = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_flSensitivity = 0x4BC; // float + constexpr std::ptrdiff_t m_flSmoothFactor = 0x4C0; // float + constexpr std::ptrdiff_t m_flMaxRange = 0x4C4; // float + constexpr std::ptrdiff_t m_iszSpeakerName = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hSpeaker = 0x4D0; // CHandle + constexpr std::ptrdiff_t m_bAvoidFeedback = 0x4D4; // bool + constexpr std::ptrdiff_t m_iSpeakerDSPPreset = 0x4D8; // int32_t + constexpr std::ptrdiff_t m_iszListenFilter = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hListenFilter = 0x4E8; // CHandle + constexpr std::ptrdiff_t m_SoundLevel = 0x4F0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnRoutedSound = 0x518; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnHeardSound = 0x540; // CEntityIOOutput + constexpr std::ptrdiff_t m_szLastSound = 0x568; // char[256] + constexpr std::ptrdiff_t m_iLastRoutedFrame = 0x668; // int32_t +} + +namespace CEnvMuzzleFlash { // CPointEntity + constexpr std::ptrdiff_t m_flScale = 0x4B0; // float + constexpr std::ptrdiff_t m_iszParentAttachment = 0x4B8; // CUtlSymbolLarge +} + +namespace CEnvParticleGlow { // CParticleSystem + constexpr std::ptrdiff_t m_flAlphaScale = 0xC78; // float + constexpr std::ptrdiff_t m_flRadiusScale = 0xC7C; // float + constexpr std::ptrdiff_t m_flSelfIllumScale = 0xC80; // float + constexpr std::ptrdiff_t m_ColorTint = 0xC84; // Color + constexpr std::ptrdiff_t m_hTextureOverride = 0xC88; // CStrongHandle +} + +namespace CEnvProjectedTexture { // CModelPointEntity + constexpr std::ptrdiff_t m_hTargetEntity = 0x700; // CHandle + constexpr std::ptrdiff_t m_bState = 0x704; // bool + constexpr std::ptrdiff_t m_bAlwaysUpdate = 0x705; // bool + constexpr std::ptrdiff_t m_flLightFOV = 0x708; // float + constexpr std::ptrdiff_t m_bEnableShadows = 0x70C; // bool + constexpr std::ptrdiff_t m_bSimpleProjection = 0x70D; // bool + constexpr std::ptrdiff_t m_bLightOnlyTarget = 0x70E; // bool + constexpr std::ptrdiff_t m_bLightWorld = 0x70F; // bool + constexpr std::ptrdiff_t m_bCameraSpace = 0x710; // bool + constexpr std::ptrdiff_t m_flBrightnessScale = 0x714; // float + constexpr std::ptrdiff_t m_LightColor = 0x718; // Color + constexpr std::ptrdiff_t m_flIntensity = 0x71C; // float + constexpr std::ptrdiff_t m_flLinearAttenuation = 0x720; // float + constexpr std::ptrdiff_t m_flQuadraticAttenuation = 0x724; // float + constexpr std::ptrdiff_t m_bVolumetric = 0x728; // bool + constexpr std::ptrdiff_t m_flNoiseStrength = 0x72C; // float + constexpr std::ptrdiff_t m_flFlashlightTime = 0x730; // float + constexpr std::ptrdiff_t m_nNumPlanes = 0x734; // uint32_t + constexpr std::ptrdiff_t m_flPlaneOffset = 0x738; // float + constexpr std::ptrdiff_t m_flVolumetricIntensity = 0x73C; // float + constexpr std::ptrdiff_t m_flColorTransitionTime = 0x740; // float + constexpr std::ptrdiff_t m_flAmbient = 0x744; // float + constexpr std::ptrdiff_t m_SpotlightTextureName = 0x748; // char[512] + constexpr std::ptrdiff_t m_nSpotlightTextureFrame = 0x948; // int32_t + constexpr std::ptrdiff_t m_nShadowQuality = 0x94C; // uint32_t + constexpr std::ptrdiff_t m_flNearZ = 0x950; // float + constexpr std::ptrdiff_t m_flFarZ = 0x954; // float + constexpr std::ptrdiff_t m_flProjectionSize = 0x958; // float + constexpr std::ptrdiff_t m_flRotation = 0x95C; // float + constexpr std::ptrdiff_t m_bFlipHorizontal = 0x960; // bool +} + +namespace CEnvScreenOverlay { // CPointEntity + constexpr std::ptrdiff_t m_iszOverlayNames = 0x4B0; // CUtlSymbolLarge[10] + constexpr std::ptrdiff_t m_flOverlayTimes = 0x500; // float[10] + constexpr std::ptrdiff_t m_flStartTime = 0x528; // GameTime_t + constexpr std::ptrdiff_t m_iDesiredOverlay = 0x52C; // int32_t + constexpr std::ptrdiff_t m_bIsActive = 0x530; // bool +} + +namespace CEnvShake { // CPointEntity + constexpr std::ptrdiff_t m_limitToEntity = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Amplitude = 0x4B8; // float + constexpr std::ptrdiff_t m_Frequency = 0x4BC; // float + constexpr std::ptrdiff_t m_Duration = 0x4C0; // float + constexpr std::ptrdiff_t m_Radius = 0x4C4; // float + constexpr std::ptrdiff_t m_stopTime = 0x4C8; // GameTime_t + constexpr std::ptrdiff_t m_nextShake = 0x4CC; // GameTime_t + constexpr std::ptrdiff_t m_currentAmp = 0x4D0; // float + constexpr std::ptrdiff_t m_maxForce = 0x4D4; // Vector + constexpr std::ptrdiff_t m_shakeCallback = 0x4E8; // CPhysicsShake +} + +namespace CEnvSky { // CBaseModelEntity + constexpr std::ptrdiff_t m_hSkyMaterial = 0x700; // CStrongHandle + constexpr std::ptrdiff_t m_hSkyMaterialLightingOnly = 0x708; // CStrongHandle + constexpr std::ptrdiff_t m_bStartDisabled = 0x710; // bool + constexpr std::ptrdiff_t m_vTintColor = 0x711; // Color + constexpr std::ptrdiff_t m_vTintColorLightingOnly = 0x715; // Color + constexpr std::ptrdiff_t m_flBrightnessScale = 0x71C; // float + constexpr std::ptrdiff_t m_nFogType = 0x720; // int32_t + constexpr std::ptrdiff_t m_flFogMinStart = 0x724; // float + constexpr std::ptrdiff_t m_flFogMinEnd = 0x728; // float + constexpr std::ptrdiff_t m_flFogMaxStart = 0x72C; // float + constexpr std::ptrdiff_t m_flFogMaxEnd = 0x730; // float + constexpr std::ptrdiff_t m_bEnabled = 0x734; // bool +} + +namespace CEnvSoundscape { // CServerOnlyEntity + constexpr std::ptrdiff_t m_OnPlay = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_flRadius = 0x4D8; // float + constexpr std::ptrdiff_t m_soundscapeName = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_soundEventName = 0x4E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bOverrideWithEvent = 0x4F0; // bool + constexpr std::ptrdiff_t m_soundscapeIndex = 0x4F4; // int32_t + constexpr std::ptrdiff_t m_soundscapeEntityListId = 0x4F8; // int32_t + constexpr std::ptrdiff_t m_soundEventHash = 0x4FC; // uint32_t + constexpr std::ptrdiff_t m_positionNames = 0x500; // CUtlSymbolLarge[8] + constexpr std::ptrdiff_t m_hProxySoundscape = 0x540; // CHandle + constexpr std::ptrdiff_t m_bDisabled = 0x544; // bool +} + +namespace CEnvSoundscapeAlias_snd_soundscape { // CEnvSoundscape +} + +namespace CEnvSoundscapeProxy { // CEnvSoundscape + constexpr std::ptrdiff_t m_MainSoundscapeName = 0x548; // CUtlSymbolLarge +} + +namespace CEnvSoundscapeProxyAlias_snd_soundscape_proxy { // CEnvSoundscapeProxy +} + +namespace CEnvSoundscapeTriggerable { // CEnvSoundscape +} + +namespace CEnvSoundscapeTriggerableAlias_snd_soundscape_triggerable { // CEnvSoundscapeTriggerable +} + +namespace CEnvSpark { // CPointEntity + constexpr std::ptrdiff_t m_flDelay = 0x4B0; // float + constexpr std::ptrdiff_t m_nMagnitude = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_nTrailLength = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_nType = 0x4BC; // int32_t + constexpr std::ptrdiff_t m_OnSpark = 0x4C0; // CEntityIOOutput +} + +namespace CEnvSplash { // CPointEntity + constexpr std::ptrdiff_t m_flScale = 0x4B0; // float +} + +namespace CEnvTilt { // CPointEntity + constexpr std::ptrdiff_t m_Duration = 0x4B0; // float + constexpr std::ptrdiff_t m_Radius = 0x4B4; // float + constexpr std::ptrdiff_t m_TiltTime = 0x4B8; // float + constexpr std::ptrdiff_t m_stopTime = 0x4BC; // GameTime_t +} + +namespace CEnvTracer { // CPointEntity + constexpr std::ptrdiff_t m_vecEnd = 0x4B0; // Vector + constexpr std::ptrdiff_t m_flDelay = 0x4BC; // float +} + +namespace CEnvViewPunch { // CPointEntity + constexpr std::ptrdiff_t m_flRadius = 0x4B0; // float + constexpr std::ptrdiff_t m_angViewPunch = 0x4B4; // QAngle +} + +namespace CEnvVolumetricFogController { // CBaseEntity + constexpr std::ptrdiff_t m_flScattering = 0x4B0; // float + constexpr std::ptrdiff_t m_flAnisotropy = 0x4B4; // float + constexpr std::ptrdiff_t m_flFadeSpeed = 0x4B8; // float + constexpr std::ptrdiff_t m_flDrawDistance = 0x4BC; // float + constexpr std::ptrdiff_t m_flFadeInStart = 0x4C0; // float + constexpr std::ptrdiff_t m_flFadeInEnd = 0x4C4; // float + constexpr std::ptrdiff_t m_flIndirectStrength = 0x4C8; // float + constexpr std::ptrdiff_t m_nIndirectTextureDimX = 0x4CC; // int32_t + constexpr std::ptrdiff_t m_nIndirectTextureDimY = 0x4D0; // int32_t + constexpr std::ptrdiff_t m_nIndirectTextureDimZ = 0x4D4; // int32_t + constexpr std::ptrdiff_t m_vBoxMins = 0x4D8; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x4E4; // Vector + constexpr std::ptrdiff_t m_bActive = 0x4F0; // bool + constexpr std::ptrdiff_t m_flStartAnisoTime = 0x4F4; // GameTime_t + constexpr std::ptrdiff_t m_flStartScatterTime = 0x4F8; // GameTime_t + constexpr std::ptrdiff_t m_flStartDrawDistanceTime = 0x4FC; // GameTime_t + constexpr std::ptrdiff_t m_flStartAnisotropy = 0x500; // float + constexpr std::ptrdiff_t m_flStartScattering = 0x504; // float + constexpr std::ptrdiff_t m_flStartDrawDistance = 0x508; // float + constexpr std::ptrdiff_t m_flDefaultAnisotropy = 0x50C; // float + constexpr std::ptrdiff_t m_flDefaultScattering = 0x510; // float + constexpr std::ptrdiff_t m_flDefaultDrawDistance = 0x514; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x518; // bool + constexpr std::ptrdiff_t m_bEnableIndirect = 0x519; // bool + constexpr std::ptrdiff_t m_bIsMaster = 0x51A; // bool + constexpr std::ptrdiff_t m_hFogIndirectTexture = 0x520; // CStrongHandle + constexpr std::ptrdiff_t m_nForceRefreshCount = 0x528; // int32_t + constexpr std::ptrdiff_t m_bFirstTime = 0x52C; // bool +} + +namespace CEnvVolumetricFogVolume { // CBaseEntity + constexpr std::ptrdiff_t m_bActive = 0x4B0; // bool + constexpr std::ptrdiff_t m_vBoxMins = 0x4B4; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x4C0; // Vector + constexpr std::ptrdiff_t m_bStartDisabled = 0x4CC; // bool + constexpr std::ptrdiff_t m_flStrength = 0x4D0; // float + constexpr std::ptrdiff_t m_nFalloffShape = 0x4D4; // int32_t + constexpr std::ptrdiff_t m_flFalloffExponent = 0x4D8; // float +} + +namespace CEnvWind { // CBaseEntity + constexpr std::ptrdiff_t m_EnvWindShared = 0x4B0; // CEnvWindShared +} + +namespace CEnvWindShared { + constexpr std::ptrdiff_t m_flStartTime = 0x8; // GameTime_t + constexpr std::ptrdiff_t m_iWindSeed = 0xC; // uint32_t + constexpr std::ptrdiff_t m_iMinWind = 0x10; // uint16_t + constexpr std::ptrdiff_t m_iMaxWind = 0x12; // uint16_t + constexpr std::ptrdiff_t m_windRadius = 0x14; // int32_t + constexpr std::ptrdiff_t m_iMinGust = 0x18; // uint16_t + constexpr std::ptrdiff_t m_iMaxGust = 0x1A; // uint16_t + constexpr std::ptrdiff_t m_flMinGustDelay = 0x1C; // float + constexpr std::ptrdiff_t m_flMaxGustDelay = 0x20; // float + constexpr std::ptrdiff_t m_flGustDuration = 0x24; // float + constexpr std::ptrdiff_t m_iGustDirChange = 0x28; // uint16_t + constexpr std::ptrdiff_t m_location = 0x2C; // Vector + constexpr std::ptrdiff_t m_iszGustSound = 0x38; // int32_t + constexpr std::ptrdiff_t m_iWindDir = 0x3C; // int32_t + constexpr std::ptrdiff_t m_flWindSpeed = 0x40; // float + constexpr std::ptrdiff_t m_currentWindVector = 0x44; // Vector + constexpr std::ptrdiff_t m_CurrentSwayVector = 0x50; // Vector + constexpr std::ptrdiff_t m_PrevSwayVector = 0x5C; // Vector + constexpr std::ptrdiff_t m_iInitialWindDir = 0x68; // uint16_t + constexpr std::ptrdiff_t m_flInitialWindSpeed = 0x6C; // float + constexpr std::ptrdiff_t m_OnGustStart = 0x70; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnGustEnd = 0x98; // CEntityIOOutput + constexpr std::ptrdiff_t m_flVariationTime = 0xC0; // GameTime_t + constexpr std::ptrdiff_t m_flSwayTime = 0xC4; // GameTime_t + constexpr std::ptrdiff_t m_flSimTime = 0xC8; // GameTime_t + constexpr std::ptrdiff_t m_flSwitchTime = 0xCC; // GameTime_t + constexpr std::ptrdiff_t m_flAveWindSpeed = 0xD0; // float + constexpr std::ptrdiff_t m_bGusting = 0xD4; // bool + constexpr std::ptrdiff_t m_flWindAngleVariation = 0xD8; // float + constexpr std::ptrdiff_t m_flWindSpeedVariation = 0xDC; // float + constexpr std::ptrdiff_t m_iEntIndex = 0xE0; // CEntityIndex +} + +namespace CEnvWindShared_WindAveEvent_t { + constexpr std::ptrdiff_t m_flStartWindSpeed = 0x0; // float + constexpr std::ptrdiff_t m_flAveWindSpeed = 0x4; // float +} + +namespace CEnvWindShared_WindVariationEvent_t { + constexpr std::ptrdiff_t m_flWindAngleVariation = 0x0; // float + constexpr std::ptrdiff_t m_flWindSpeedVariation = 0x4; // float +} + +namespace CFilterAttributeInt { // CBaseFilter + constexpr std::ptrdiff_t m_sAttributeName = 0x508; // CUtlStringToken +} + +namespace CFilterClass { // CBaseFilter + constexpr std::ptrdiff_t m_iFilterClass = 0x508; // CUtlSymbolLarge +} + +namespace CFilterContext { // CBaseFilter + constexpr std::ptrdiff_t m_iFilterContext = 0x508; // CUtlSymbolLarge +} + +namespace CFilterEnemy { // CBaseFilter + constexpr std::ptrdiff_t m_iszEnemyName = 0x508; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flRadius = 0x510; // float + constexpr std::ptrdiff_t m_flOuterRadius = 0x514; // float + constexpr std::ptrdiff_t m_nMaxSquadmatesPerEnemy = 0x518; // int32_t + constexpr std::ptrdiff_t m_iszPlayerName = 0x520; // CUtlSymbolLarge +} + +namespace CFilterLOS { // CBaseFilter +} + +namespace CFilterMassGreater { // CBaseFilter + constexpr std::ptrdiff_t m_fFilterMass = 0x508; // float +} + +namespace CFilterModel { // CBaseFilter + constexpr std::ptrdiff_t m_iFilterModel = 0x508; // CUtlSymbolLarge +} + +namespace CFilterMultiple { // CBaseFilter + constexpr std::ptrdiff_t m_nFilterType = 0x508; // filter_t + constexpr std::ptrdiff_t m_iFilterName = 0x510; // CUtlSymbolLarge[10] + constexpr std::ptrdiff_t m_hFilter = 0x560; // CHandle[10] + constexpr std::ptrdiff_t m_nFilterCount = 0x588; // int32_t +} + +namespace CFilterName { // CBaseFilter + constexpr std::ptrdiff_t m_iFilterName = 0x508; // CUtlSymbolLarge +} + +namespace CFilterProximity { // CBaseFilter + constexpr std::ptrdiff_t m_flRadius = 0x508; // float +} + +namespace CFire { // CBaseModelEntity + constexpr std::ptrdiff_t m_hEffect = 0x700; // CHandle + constexpr std::ptrdiff_t m_hOwner = 0x704; // CHandle + constexpr std::ptrdiff_t m_nFireType = 0x708; // int32_t + constexpr std::ptrdiff_t m_flFuel = 0x70C; // float + constexpr std::ptrdiff_t m_flDamageTime = 0x710; // GameTime_t + constexpr std::ptrdiff_t m_lastDamage = 0x714; // GameTime_t + constexpr std::ptrdiff_t m_flFireSize = 0x718; // float + constexpr std::ptrdiff_t m_flLastNavUpdateTime = 0x71C; // GameTime_t + constexpr std::ptrdiff_t m_flHeatLevel = 0x720; // float + constexpr std::ptrdiff_t m_flHeatAbsorb = 0x724; // float + constexpr std::ptrdiff_t m_flDamageScale = 0x728; // float + constexpr std::ptrdiff_t m_flMaxHeat = 0x72C; // float + constexpr std::ptrdiff_t m_flLastHeatLevel = 0x730; // float + constexpr std::ptrdiff_t m_flAttackTime = 0x734; // float + constexpr std::ptrdiff_t m_bEnabled = 0x738; // bool + constexpr std::ptrdiff_t m_bStartDisabled = 0x739; // bool + constexpr std::ptrdiff_t m_bDidActivate = 0x73A; // bool + constexpr std::ptrdiff_t m_OnIgnited = 0x740; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnExtinguished = 0x768; // CEntityIOOutput +} + +namespace CFireCrackerBlast { // CInferno +} + +namespace CFireSmoke { // CBaseFire + constexpr std::ptrdiff_t m_nFlameModelIndex = 0x4C0; // int32_t + constexpr std::ptrdiff_t m_nFlameFromAboveModelIndex = 0x4C4; // int32_t +} + +namespace CFiringModeFloat { + constexpr std::ptrdiff_t m_flValues = 0x0; // float[2] +} + +namespace CFiringModeInt { + constexpr std::ptrdiff_t m_nValues = 0x0; // int32_t[2] +} + +namespace CFish { // CBaseAnimGraph + constexpr std::ptrdiff_t m_pool = 0x890; // CHandle + constexpr std::ptrdiff_t m_id = 0x894; // uint32_t + constexpr std::ptrdiff_t m_x = 0x898; // float + constexpr std::ptrdiff_t m_y = 0x89C; // float + constexpr std::ptrdiff_t m_z = 0x8A0; // float + constexpr std::ptrdiff_t m_angle = 0x8A4; // float + constexpr std::ptrdiff_t m_angleChange = 0x8A8; // float + constexpr std::ptrdiff_t m_forward = 0x8AC; // Vector + constexpr std::ptrdiff_t m_perp = 0x8B8; // Vector + constexpr std::ptrdiff_t m_poolOrigin = 0x8C4; // Vector + constexpr std::ptrdiff_t m_waterLevel = 0x8D0; // float + constexpr std::ptrdiff_t m_speed = 0x8D4; // float + constexpr std::ptrdiff_t m_desiredSpeed = 0x8D8; // float + constexpr std::ptrdiff_t m_calmSpeed = 0x8DC; // float + constexpr std::ptrdiff_t m_panicSpeed = 0x8E0; // float + constexpr std::ptrdiff_t m_avoidRange = 0x8E4; // float + constexpr std::ptrdiff_t m_turnTimer = 0x8E8; // CountdownTimer + constexpr std::ptrdiff_t m_turnClockwise = 0x900; // bool + constexpr std::ptrdiff_t m_goTimer = 0x908; // CountdownTimer + constexpr std::ptrdiff_t m_moveTimer = 0x920; // CountdownTimer + constexpr std::ptrdiff_t m_panicTimer = 0x938; // CountdownTimer + constexpr std::ptrdiff_t m_disperseTimer = 0x950; // CountdownTimer + constexpr std::ptrdiff_t m_proximityTimer = 0x968; // CountdownTimer + constexpr std::ptrdiff_t m_visible = 0x980; // CUtlVector +} + +namespace CFishPool { // CBaseEntity + constexpr std::ptrdiff_t m_fishCount = 0x4C0; // int32_t + constexpr std::ptrdiff_t m_maxRange = 0x4C4; // float + constexpr std::ptrdiff_t m_swimDepth = 0x4C8; // float + constexpr std::ptrdiff_t m_waterLevel = 0x4CC; // float + constexpr std::ptrdiff_t m_isDormant = 0x4D0; // bool + constexpr std::ptrdiff_t m_fishes = 0x4D8; // CUtlVector> + constexpr std::ptrdiff_t m_visTimer = 0x4F0; // CountdownTimer +} + +namespace CFists { // CCSWeaponBase + constexpr std::ptrdiff_t m_bPlayingUninterruptableAct = 0xE18; // bool + constexpr std::ptrdiff_t m_nUninterruptableActivity = 0xE1C; // PlayerAnimEvent_t + constexpr std::ptrdiff_t m_bRestorePrevWep = 0xE20; // bool + constexpr std::ptrdiff_t m_hWeaponBeforePrevious = 0xE24; // CHandle + constexpr std::ptrdiff_t m_hWeaponPrevious = 0xE28; // CHandle + constexpr std::ptrdiff_t m_bDelayedHardPunchIncoming = 0xE2C; // bool + constexpr std::ptrdiff_t m_bDestroyAfterTaunt = 0xE2D; // bool +} + +namespace CFlashbang { // CBaseCSGrenade +} + +namespace CFlashbangProjectile { // CBaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_flTimeToDetonate = 0xA30; // float + constexpr std::ptrdiff_t m_numOpponentsHit = 0xA34; // uint8_t + constexpr std::ptrdiff_t m_numTeammatesHit = 0xA35; // uint8_t +} + +namespace CFogController { // CBaseEntity + constexpr std::ptrdiff_t m_fog = 0x4B0; // fogparams_t + constexpr std::ptrdiff_t m_bUseAngles = 0x518; // bool + constexpr std::ptrdiff_t m_iChangedVariables = 0x51C; // int32_t +} + +namespace CFogTrigger { // CBaseTrigger + constexpr std::ptrdiff_t m_fog = 0x8A8; // fogparams_t +} + +namespace CFogVolume { // CServerOnlyModelEntity + constexpr std::ptrdiff_t m_fogName = 0x700; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_postProcessName = 0x708; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_colorCorrectionName = 0x710; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bDisabled = 0x720; // bool + constexpr std::ptrdiff_t m_bInFogVolumesList = 0x721; // bool +} + +namespace CFootstepControl { // CBaseTrigger + constexpr std::ptrdiff_t m_source = 0x8A8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_destination = 0x8B0; // CUtlSymbolLarge +} + +namespace CFootstepTableHandle { +} + +namespace CFuncBrush { // CBaseModelEntity + constexpr std::ptrdiff_t m_iSolidity = 0x700; // BrushSolidities_e + constexpr std::ptrdiff_t m_iDisabled = 0x704; // int32_t + constexpr std::ptrdiff_t m_bSolidBsp = 0x708; // bool + constexpr std::ptrdiff_t m_iszExcludedClass = 0x710; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bInvertExclusion = 0x718; // bool + constexpr std::ptrdiff_t m_bScriptedMovement = 0x719; // bool +} + +namespace CFuncConveyor { // CBaseModelEntity + constexpr std::ptrdiff_t m_szConveyorModels = 0x700; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flTransitionDurationSeconds = 0x708; // float + constexpr std::ptrdiff_t m_angMoveEntitySpace = 0x70C; // QAngle + constexpr std::ptrdiff_t m_vecMoveDirEntitySpace = 0x718; // Vector + constexpr std::ptrdiff_t m_flTargetSpeed = 0x724; // float + constexpr std::ptrdiff_t m_nTransitionStartTick = 0x728; // GameTick_t + constexpr std::ptrdiff_t m_nTransitionDurationTicks = 0x72C; // int32_t + constexpr std::ptrdiff_t m_flTransitionStartSpeed = 0x730; // float + constexpr std::ptrdiff_t m_hConveyorModels = 0x738; // CNetworkUtlVectorBase> +} + +namespace CFuncElectrifiedVolume { // CFuncBrush + constexpr std::ptrdiff_t m_EffectName = 0x720; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_EffectInterpenetrateName = 0x728; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_EffectZapName = 0x730; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszEffectSource = 0x738; // CUtlSymbolLarge +} + +namespace CFuncIllusionary { // CBaseModelEntity +} + +namespace CFuncInteractionLayerClip { // CBaseModelEntity + constexpr std::ptrdiff_t m_bDisabled = 0x700; // bool + constexpr std::ptrdiff_t m_iszInteractsAs = 0x708; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszInteractsWith = 0x710; // CUtlSymbolLarge +} + +namespace CFuncLadder { // CBaseModelEntity + constexpr std::ptrdiff_t m_vecLadderDir = 0x700; // Vector + constexpr std::ptrdiff_t m_Dismounts = 0x710; // CUtlVector> + constexpr std::ptrdiff_t m_vecLocalTop = 0x728; // Vector + constexpr std::ptrdiff_t m_vecPlayerMountPositionTop = 0x734; // Vector + constexpr std::ptrdiff_t m_vecPlayerMountPositionBottom = 0x740; // Vector + constexpr std::ptrdiff_t m_flAutoRideSpeed = 0x74C; // float + constexpr std::ptrdiff_t m_bDisabled = 0x750; // bool + constexpr std::ptrdiff_t m_bFakeLadder = 0x751; // bool + constexpr std::ptrdiff_t m_bHasSlack = 0x752; // bool + constexpr std::ptrdiff_t m_surfacePropName = 0x758; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_OnPlayerGotOnLadder = 0x760; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPlayerGotOffLadder = 0x788; // CEntityIOOutput +} + +namespace CFuncLadderAlias_func_useableladder { // CFuncLadder +} + +namespace CFuncMonitor { // CFuncBrush + constexpr std::ptrdiff_t m_targetCamera = 0x720; // CUtlString + constexpr std::ptrdiff_t m_nResolutionEnum = 0x728; // int32_t + constexpr std::ptrdiff_t m_bRenderShadows = 0x72C; // bool + constexpr std::ptrdiff_t m_bUseUniqueColorTarget = 0x72D; // bool + constexpr std::ptrdiff_t m_brushModelName = 0x730; // CUtlString + constexpr std::ptrdiff_t m_hTargetCamera = 0x738; // CHandle + constexpr std::ptrdiff_t m_bEnabled = 0x73C; // bool + constexpr std::ptrdiff_t m_bDraw3DSkybox = 0x73D; // bool + constexpr std::ptrdiff_t m_bStartEnabled = 0x73E; // bool +} + +namespace CFuncMoveLinear { // CBaseToggle + constexpr std::ptrdiff_t m_authoredPosition = 0x780; // MoveLinearAuthoredPos_t + constexpr std::ptrdiff_t m_angMoveEntitySpace = 0x784; // QAngle + constexpr std::ptrdiff_t m_vecMoveDirParentSpace = 0x790; // Vector + constexpr std::ptrdiff_t m_soundStart = 0x7A0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_soundStop = 0x7A8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_currentSound = 0x7B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flBlockDamage = 0x7B8; // float + constexpr std::ptrdiff_t m_flStartPosition = 0x7BC; // float + constexpr std::ptrdiff_t m_flMoveDistance = 0x7C0; // float + constexpr std::ptrdiff_t m_OnFullyOpen = 0x7D0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFullyClosed = 0x7F8; // CEntityIOOutput + constexpr std::ptrdiff_t m_bCreateMovableNavMesh = 0x820; // bool + constexpr std::ptrdiff_t m_bCreateNavObstacle = 0x821; // bool +} + +namespace CFuncMoveLinearAlias_momentary_door { // CFuncMoveLinear +} + +namespace CFuncNavBlocker { // CBaseModelEntity + constexpr std::ptrdiff_t m_bDisabled = 0x700; // bool + constexpr std::ptrdiff_t m_nBlockedTeamNumber = 0x704; // int32_t +} + +namespace CFuncNavObstruction { // CBaseModelEntity + constexpr std::ptrdiff_t m_bDisabled = 0x708; // bool +} + +namespace CFuncPlat { // CBasePlatTrain + constexpr std::ptrdiff_t m_sNoise = 0x7A8; // CUtlSymbolLarge +} + +namespace CFuncPlatRot { // CFuncPlat + constexpr std::ptrdiff_t m_end = 0x7B0; // QAngle + constexpr std::ptrdiff_t m_start = 0x7BC; // QAngle +} + +namespace CFuncPropRespawnZone { // CBaseEntity +} + +namespace CFuncRotating { // CBaseModelEntity + constexpr std::ptrdiff_t m_vecMoveAng = 0x700; // QAngle + constexpr std::ptrdiff_t m_flFanFriction = 0x70C; // float + constexpr std::ptrdiff_t m_flAttenuation = 0x710; // float + constexpr std::ptrdiff_t m_flVolume = 0x714; // float + constexpr std::ptrdiff_t m_flTargetSpeed = 0x718; // float + constexpr std::ptrdiff_t m_flMaxSpeed = 0x71C; // float + constexpr std::ptrdiff_t m_flBlockDamage = 0x720; // float + constexpr std::ptrdiff_t m_flTimeScale = 0x724; // float + constexpr std::ptrdiff_t m_NoiseRunning = 0x728; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bReversed = 0x730; // bool + constexpr std::ptrdiff_t m_angStart = 0x73C; // QAngle + constexpr std::ptrdiff_t m_bStopAtStartPos = 0x748; // bool + constexpr std::ptrdiff_t m_vecClientOrigin = 0x74C; // Vector + constexpr std::ptrdiff_t m_vecClientAngles = 0x758; // QAngle +} + +namespace CFuncShatterglass { // CBaseModelEntity + constexpr std::ptrdiff_t m_hGlassMaterialDamaged = 0x700; // CStrongHandle + constexpr std::ptrdiff_t m_hGlassMaterialUndamaged = 0x708; // CStrongHandle + constexpr std::ptrdiff_t m_hConcreteMaterialEdgeFace = 0x710; // CStrongHandle + constexpr std::ptrdiff_t m_hConcreteMaterialEdgeCaps = 0x718; // CStrongHandle + constexpr std::ptrdiff_t m_hConcreteMaterialEdgeFins = 0x720; // CStrongHandle + constexpr std::ptrdiff_t m_matPanelTransform = 0x728; // matrix3x4_t + constexpr std::ptrdiff_t m_matPanelTransformWsTemp = 0x758; // matrix3x4_t + constexpr std::ptrdiff_t m_vecShatterGlassShards = 0x788; // CUtlVector + constexpr std::ptrdiff_t m_PanelSize = 0x7A0; // Vector2D + constexpr std::ptrdiff_t m_vecPanelNormalWs = 0x7A8; // Vector + constexpr std::ptrdiff_t m_nNumShardsEverCreated = 0x7B4; // int32_t + constexpr std::ptrdiff_t m_flLastShatterSoundEmitTime = 0x7B8; // GameTime_t + constexpr std::ptrdiff_t m_flLastCleanupTime = 0x7BC; // GameTime_t + constexpr std::ptrdiff_t m_flInitAtTime = 0x7C0; // GameTime_t + constexpr std::ptrdiff_t m_flGlassThickness = 0x7C4; // float + constexpr std::ptrdiff_t m_flSpawnInvulnerability = 0x7C8; // float + constexpr std::ptrdiff_t m_bBreakSilent = 0x7CC; // bool + constexpr std::ptrdiff_t m_bBreakShardless = 0x7CD; // bool + constexpr std::ptrdiff_t m_bBroken = 0x7CE; // bool + constexpr std::ptrdiff_t m_bHasRateLimitedShards = 0x7CF; // bool + constexpr std::ptrdiff_t m_bGlassNavIgnore = 0x7D0; // bool + constexpr std::ptrdiff_t m_bGlassInFrame = 0x7D1; // bool + constexpr std::ptrdiff_t m_bStartBroken = 0x7D2; // bool + constexpr std::ptrdiff_t m_iInitialDamageType = 0x7D3; // uint8_t + constexpr std::ptrdiff_t m_szDamagePositioningEntityName01 = 0x7D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_szDamagePositioningEntityName02 = 0x7E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_szDamagePositioningEntityName03 = 0x7E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_szDamagePositioningEntityName04 = 0x7F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_vInitialDamagePositions = 0x7F8; // CUtlVector + constexpr std::ptrdiff_t m_vExtraDamagePositions = 0x810; // CUtlVector + constexpr std::ptrdiff_t m_OnBroken = 0x828; // CEntityIOOutput + constexpr std::ptrdiff_t m_iSurfaceType = 0x851; // uint8_t +} + +namespace CFuncTankTrain { // CFuncTrackTrain + constexpr std::ptrdiff_t m_OnDeath = 0x850; // CEntityIOOutput +} + +namespace CFuncTimescale { // CBaseEntity + constexpr std::ptrdiff_t m_flDesiredTimescale = 0x4B0; // float + constexpr std::ptrdiff_t m_flAcceleration = 0x4B4; // float + constexpr std::ptrdiff_t m_flMinBlendRate = 0x4B8; // float + constexpr std::ptrdiff_t m_flBlendDeltaMultiplier = 0x4BC; // float + constexpr std::ptrdiff_t m_isStarted = 0x4C0; // bool +} + +namespace CFuncTrackAuto { // CFuncTrackChange +} + +namespace CFuncTrackChange { // CFuncPlatRot + constexpr std::ptrdiff_t m_trackTop = 0x7C8; // CPathTrack* + constexpr std::ptrdiff_t m_trackBottom = 0x7D0; // CPathTrack* + constexpr std::ptrdiff_t m_train = 0x7D8; // CFuncTrackTrain* + constexpr std::ptrdiff_t m_trackTopName = 0x7E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_trackBottomName = 0x7E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_trainName = 0x7F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_code = 0x7F8; // TRAIN_CODE + constexpr std::ptrdiff_t m_targetState = 0x7FC; // int32_t + constexpr std::ptrdiff_t m_use = 0x800; // int32_t +} + +namespace CFuncTrackTrain { // CBaseModelEntity + constexpr std::ptrdiff_t m_ppath = 0x700; // CHandle + constexpr std::ptrdiff_t m_length = 0x704; // float + constexpr std::ptrdiff_t m_vPosPrev = 0x708; // Vector + constexpr std::ptrdiff_t m_angPrev = 0x714; // QAngle + constexpr std::ptrdiff_t m_controlMins = 0x720; // Vector + constexpr std::ptrdiff_t m_controlMaxs = 0x72C; // Vector + constexpr std::ptrdiff_t m_lastBlockPos = 0x738; // Vector + constexpr std::ptrdiff_t m_lastBlockTick = 0x744; // int32_t + constexpr std::ptrdiff_t m_flVolume = 0x748; // float + constexpr std::ptrdiff_t m_flBank = 0x74C; // float + constexpr std::ptrdiff_t m_oldSpeed = 0x750; // float + constexpr std::ptrdiff_t m_flBlockDamage = 0x754; // float + constexpr std::ptrdiff_t m_height = 0x758; // float + constexpr std::ptrdiff_t m_maxSpeed = 0x75C; // float + constexpr std::ptrdiff_t m_dir = 0x760; // float + constexpr std::ptrdiff_t m_iszSoundMove = 0x768; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSoundMovePing = 0x770; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSoundStart = 0x778; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSoundStop = 0x780; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_strPathTarget = 0x788; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flMoveSoundMinDuration = 0x790; // float + constexpr std::ptrdiff_t m_flMoveSoundMaxDuration = 0x794; // float + constexpr std::ptrdiff_t m_flNextMoveSoundTime = 0x798; // GameTime_t + constexpr std::ptrdiff_t m_flMoveSoundMinPitch = 0x79C; // float + constexpr std::ptrdiff_t m_flMoveSoundMaxPitch = 0x7A0; // float + constexpr std::ptrdiff_t m_eOrientationType = 0x7A4; // TrainOrientationType_t + constexpr std::ptrdiff_t m_eVelocityType = 0x7A8; // TrainVelocityType_t + constexpr std::ptrdiff_t m_OnStart = 0x7B8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnNext = 0x7E0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnArrivedAtDestinationNode = 0x808; // CEntityIOOutput + constexpr std::ptrdiff_t m_bManualSpeedChanges = 0x830; // bool + constexpr std::ptrdiff_t m_flDesiredSpeed = 0x834; // float + constexpr std::ptrdiff_t m_flSpeedChangeTime = 0x838; // GameTime_t + constexpr std::ptrdiff_t m_flAccelSpeed = 0x83C; // float + constexpr std::ptrdiff_t m_flDecelSpeed = 0x840; // float + constexpr std::ptrdiff_t m_bAccelToSpeed = 0x844; // bool + constexpr std::ptrdiff_t m_flTimeScale = 0x848; // float + constexpr std::ptrdiff_t m_flNextMPSoundTime = 0x84C; // GameTime_t +} + +namespace CFuncTrain { // CBasePlatTrain + constexpr std::ptrdiff_t m_hCurrentTarget = 0x7A8; // CHandle + constexpr std::ptrdiff_t m_activated = 0x7AC; // bool + constexpr std::ptrdiff_t m_hEnemy = 0x7B0; // CHandle + constexpr std::ptrdiff_t m_flBlockDamage = 0x7B4; // float + constexpr std::ptrdiff_t m_flNextBlockTime = 0x7B8; // GameTime_t + constexpr std::ptrdiff_t m_iszLastTarget = 0x7C0; // CUtlSymbolLarge +} + +namespace CFuncTrainControls { // CBaseModelEntity +} + +namespace CFuncVPhysicsClip { // CBaseModelEntity + constexpr std::ptrdiff_t m_bDisabled = 0x700; // bool +} + +namespace CFuncVehicleClip { // CBaseModelEntity +} + +namespace CFuncWall { // CBaseModelEntity + constexpr std::ptrdiff_t m_nState = 0x700; // int32_t +} + +namespace CFuncWallToggle { // CFuncWall +} + +namespace CFuncWater { // CBaseModelEntity + constexpr std::ptrdiff_t m_BuoyancyHelper = 0x700; // CBuoyancyHelper +} + +namespace CGameChoreoServices { // IChoreoServices + constexpr std::ptrdiff_t m_hOwner = 0x8; // CHandle + constexpr std::ptrdiff_t m_hScriptedSequence = 0xC; // CHandle + constexpr std::ptrdiff_t m_scriptState = 0x10; // IChoreoServices::ScriptState_t + constexpr std::ptrdiff_t m_choreoState = 0x14; // IChoreoServices::ChoreoState_t + constexpr std::ptrdiff_t m_flTimeStartedState = 0x18; // GameTime_t +} + +namespace CGameEnd { // CRulePointEntity +} + +namespace CGameGibManager { // CBaseEntity + constexpr std::ptrdiff_t m_bAllowNewGibs = 0x4D0; // bool + constexpr std::ptrdiff_t m_iCurrentMaxPieces = 0x4D4; // int32_t + constexpr std::ptrdiff_t m_iMaxPieces = 0x4D8; // int32_t + constexpr std::ptrdiff_t m_iLastFrame = 0x4DC; // int32_t +} + +namespace CGameMoney { // CRulePointEntity + constexpr std::ptrdiff_t m_OnMoneySpent = 0x710; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMoneySpentFail = 0x738; // CEntityIOOutput + constexpr std::ptrdiff_t m_nMoney = 0x760; // int32_t + constexpr std::ptrdiff_t m_strAwardText = 0x768; // CUtlString +} + +namespace CGamePlayerEquip { // CRulePointEntity +} + +namespace CGamePlayerZone { // CRuleBrushEntity + constexpr std::ptrdiff_t m_OnPlayerInZone = 0x708; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPlayerOutZone = 0x730; // CEntityIOOutput + constexpr std::ptrdiff_t m_PlayersInCount = 0x758; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_PlayersOutCount = 0x780; // CEntityOutputTemplate +} + +namespace CGameRules { + constexpr std::ptrdiff_t m_szQuestName = 0x8; // char[128] + constexpr std::ptrdiff_t m_nQuestPhase = 0x88; // int32_t +} + +namespace CGameRulesProxy { // CBaseEntity +} + +namespace CGameSceneNode { + constexpr std::ptrdiff_t m_nodeToWorld = 0x10; // CTransform + constexpr std::ptrdiff_t m_pOwner = 0x30; // CEntityInstance* + constexpr std::ptrdiff_t m_pParent = 0x38; // CGameSceneNode* + constexpr std::ptrdiff_t m_pChild = 0x40; // CGameSceneNode* + constexpr std::ptrdiff_t m_pNextSibling = 0x48; // CGameSceneNode* + constexpr std::ptrdiff_t m_hParent = 0x70; // CGameSceneNodeHandle + constexpr std::ptrdiff_t m_vecOrigin = 0x80; // CNetworkOriginCellCoordQuantizedVector + constexpr std::ptrdiff_t m_angRotation = 0xB8; // QAngle + constexpr std::ptrdiff_t m_flScale = 0xC4; // float + constexpr std::ptrdiff_t m_vecAbsOrigin = 0xC8; // Vector + constexpr std::ptrdiff_t m_angAbsRotation = 0xD4; // QAngle + constexpr std::ptrdiff_t m_flAbsScale = 0xE0; // float + constexpr std::ptrdiff_t m_nParentAttachmentOrBone = 0xE4; // int16_t + constexpr std::ptrdiff_t m_bDebugAbsOriginChanges = 0xE6; // bool + constexpr std::ptrdiff_t m_bDormant = 0xE7; // bool + constexpr std::ptrdiff_t m_bForceParentToBeNetworked = 0xE8; // bool + constexpr std::ptrdiff_t m_bDirtyHierarchy = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bDirtyBoneMergeInfo = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNetworkedPositionChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNetworkedAnglesChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNetworkedScaleChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bWillBeCallingPostDataUpdate = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bNotifyBoneTransformsChanged = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bBoneMergeFlex = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_nLatchAbsOrigin = 0x0; // bitfield:2 + constexpr std::ptrdiff_t m_bDirtyBoneMergeBoneToRoot = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_nHierarchicalDepth = 0xEB; // uint8_t + constexpr std::ptrdiff_t m_nHierarchyType = 0xEC; // uint8_t + constexpr std::ptrdiff_t m_nDoNotSetAnimTimeInInvalidatePhysicsCount = 0xED; // uint8_t + constexpr std::ptrdiff_t m_name = 0xF0; // CUtlStringToken + constexpr std::ptrdiff_t m_hierarchyAttachName = 0x130; // CUtlStringToken + constexpr std::ptrdiff_t m_flZOffset = 0x134; // float + constexpr std::ptrdiff_t m_vRenderOrigin = 0x138; // Vector +} + +namespace CGameSceneNodeHandle { + constexpr std::ptrdiff_t m_hOwner = 0x8; // CEntityHandle + constexpr std::ptrdiff_t m_name = 0xC; // CUtlStringToken +} + +namespace CGameScriptedMoveData { + constexpr std::ptrdiff_t m_vDest = 0x0; // Vector + constexpr std::ptrdiff_t m_vSrc = 0xC; // Vector + constexpr std::ptrdiff_t m_angSrc = 0x18; // QAngle + constexpr std::ptrdiff_t m_angDst = 0x24; // QAngle + constexpr std::ptrdiff_t m_angCurrent = 0x30; // QAngle + constexpr std::ptrdiff_t m_flAngRate = 0x3C; // float + constexpr std::ptrdiff_t m_flDuration = 0x40; // float + constexpr std::ptrdiff_t m_flStartTime = 0x44; // GameTime_t + constexpr std::ptrdiff_t m_nPrevMoveType = 0x48; // MoveType_t + constexpr std::ptrdiff_t m_bActive = 0x49; // bool + constexpr std::ptrdiff_t m_bTeleportOnEnd = 0x4A; // bool + constexpr std::ptrdiff_t m_bEndOnDestinationReached = 0x4B; // bool + constexpr std::ptrdiff_t m_bIgnoreRotation = 0x4C; // bool + constexpr std::ptrdiff_t m_nType = 0x50; // ScriptedMoveType_t + constexpr std::ptrdiff_t m_bSuccess = 0x54; // bool + constexpr std::ptrdiff_t m_nForcedCrouchState = 0x58; // ForcedCrouchState_t + constexpr std::ptrdiff_t m_bIgnoreCollisions = 0x5C; // bool +} + +namespace CGameText { // CRulePointEntity + constexpr std::ptrdiff_t m_iszMessage = 0x710; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_textParms = 0x718; // hudtextparms_t +} + +namespace CGenericConstraint { // CPhysConstraint + constexpr std::ptrdiff_t m_nLinearMotionX = 0x510; // JointMotion_t + constexpr std::ptrdiff_t m_nLinearMotionY = 0x514; // JointMotion_t + constexpr std::ptrdiff_t m_nLinearMotionZ = 0x518; // JointMotion_t + constexpr std::ptrdiff_t m_flLinearFrequencyX = 0x51C; // float + constexpr std::ptrdiff_t m_flLinearFrequencyY = 0x520; // float + constexpr std::ptrdiff_t m_flLinearFrequencyZ = 0x524; // float + constexpr std::ptrdiff_t m_flLinearDampingRatioX = 0x528; // float + constexpr std::ptrdiff_t m_flLinearDampingRatioY = 0x52C; // float + constexpr std::ptrdiff_t m_flLinearDampingRatioZ = 0x530; // float + constexpr std::ptrdiff_t m_flMaxLinearImpulseX = 0x534; // float + constexpr std::ptrdiff_t m_flMaxLinearImpulseY = 0x538; // float + constexpr std::ptrdiff_t m_flMaxLinearImpulseZ = 0x53C; // float + constexpr std::ptrdiff_t m_flBreakAfterTimeX = 0x540; // float + constexpr std::ptrdiff_t m_flBreakAfterTimeY = 0x544; // float + constexpr std::ptrdiff_t m_flBreakAfterTimeZ = 0x548; // float + constexpr std::ptrdiff_t m_flBreakAfterTimeStartTimeX = 0x54C; // GameTime_t + constexpr std::ptrdiff_t m_flBreakAfterTimeStartTimeY = 0x550; // GameTime_t + constexpr std::ptrdiff_t m_flBreakAfterTimeStartTimeZ = 0x554; // GameTime_t + constexpr std::ptrdiff_t m_flBreakAfterTimeThresholdX = 0x558; // float + constexpr std::ptrdiff_t m_flBreakAfterTimeThresholdY = 0x55C; // float + constexpr std::ptrdiff_t m_flBreakAfterTimeThresholdZ = 0x560; // float + constexpr std::ptrdiff_t m_flNotifyForceX = 0x564; // float + constexpr std::ptrdiff_t m_flNotifyForceY = 0x568; // float + constexpr std::ptrdiff_t m_flNotifyForceZ = 0x56C; // float + constexpr std::ptrdiff_t m_flNotifyForceMinTimeX = 0x570; // float + constexpr std::ptrdiff_t m_flNotifyForceMinTimeY = 0x574; // float + constexpr std::ptrdiff_t m_flNotifyForceMinTimeZ = 0x578; // float + constexpr std::ptrdiff_t m_flNotifyForceLastTimeX = 0x57C; // GameTime_t + constexpr std::ptrdiff_t m_flNotifyForceLastTimeY = 0x580; // GameTime_t + constexpr std::ptrdiff_t m_flNotifyForceLastTimeZ = 0x584; // GameTime_t + constexpr std::ptrdiff_t m_bAxisNotifiedX = 0x588; // bool + constexpr std::ptrdiff_t m_bAxisNotifiedY = 0x589; // bool + constexpr std::ptrdiff_t m_bAxisNotifiedZ = 0x58A; // bool + constexpr std::ptrdiff_t m_nAngularMotionX = 0x58C; // JointMotion_t + constexpr std::ptrdiff_t m_nAngularMotionY = 0x590; // JointMotion_t + constexpr std::ptrdiff_t m_nAngularMotionZ = 0x594; // JointMotion_t + constexpr std::ptrdiff_t m_flAngularFrequencyX = 0x598; // float + constexpr std::ptrdiff_t m_flAngularFrequencyY = 0x59C; // float + constexpr std::ptrdiff_t m_flAngularFrequencyZ = 0x5A0; // float + constexpr std::ptrdiff_t m_flAngularDampingRatioX = 0x5A4; // float + constexpr std::ptrdiff_t m_flAngularDampingRatioY = 0x5A8; // float + constexpr std::ptrdiff_t m_flAngularDampingRatioZ = 0x5AC; // float + constexpr std::ptrdiff_t m_flMaxAngularImpulseX = 0x5B0; // float + constexpr std::ptrdiff_t m_flMaxAngularImpulseY = 0x5B4; // float + constexpr std::ptrdiff_t m_flMaxAngularImpulseZ = 0x5B8; // float + constexpr std::ptrdiff_t m_NotifyForceReachedX = 0x5C0; // CEntityIOOutput + constexpr std::ptrdiff_t m_NotifyForceReachedY = 0x5E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_NotifyForceReachedZ = 0x610; // CEntityIOOutput +} + +namespace CGlowProperty { + constexpr std::ptrdiff_t m_fGlowColor = 0x8; // Vector + constexpr std::ptrdiff_t m_iGlowType = 0x30; // int32_t + constexpr std::ptrdiff_t m_iGlowTeam = 0x34; // int32_t + constexpr std::ptrdiff_t m_nGlowRange = 0x38; // int32_t + constexpr std::ptrdiff_t m_nGlowRangeMin = 0x3C; // int32_t + constexpr std::ptrdiff_t m_glowColorOverride = 0x40; // Color + constexpr std::ptrdiff_t m_bFlashing = 0x44; // bool + constexpr std::ptrdiff_t m_flGlowTime = 0x48; // float + constexpr std::ptrdiff_t m_flGlowStartTime = 0x4C; // float + constexpr std::ptrdiff_t m_bEligibleForScreenHighlight = 0x50; // bool + constexpr std::ptrdiff_t m_bGlowing = 0x51; // bool +} + +namespace CGradientFog { // CBaseEntity + constexpr std::ptrdiff_t m_hGradientFogTexture = 0x4B0; // CStrongHandle + constexpr std::ptrdiff_t m_flFogStartDistance = 0x4B8; // float + constexpr std::ptrdiff_t m_flFogEndDistance = 0x4BC; // float + constexpr std::ptrdiff_t m_bHeightFogEnabled = 0x4C0; // bool + constexpr std::ptrdiff_t m_flFogStartHeight = 0x4C4; // float + constexpr std::ptrdiff_t m_flFogEndHeight = 0x4C8; // float + constexpr std::ptrdiff_t m_flFarZ = 0x4CC; // float + constexpr std::ptrdiff_t m_flFogMaxOpacity = 0x4D0; // float + constexpr std::ptrdiff_t m_flFogFalloffExponent = 0x4D4; // float + constexpr std::ptrdiff_t m_flFogVerticalExponent = 0x4D8; // float + constexpr std::ptrdiff_t m_fogColor = 0x4DC; // Color + constexpr std::ptrdiff_t m_flFogStrength = 0x4E0; // float + constexpr std::ptrdiff_t m_flFadeTime = 0x4E4; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x4E8; // bool + constexpr std::ptrdiff_t m_bIsEnabled = 0x4E9; // bool + constexpr std::ptrdiff_t m_bGradientFogNeedsTextures = 0x4EA; // bool +} + +namespace CGunTarget { // CBaseToggle + constexpr std::ptrdiff_t m_on = 0x780; // bool + constexpr std::ptrdiff_t m_hTargetEnt = 0x784; // CHandle + constexpr std::ptrdiff_t m_OnDeath = 0x788; // CEntityIOOutput +} + +namespace CHEGrenade { // CBaseCSGrenade +} + +namespace CHEGrenadeProjectile { // CBaseCSGrenadeProjectile +} + +namespace CHandleDummy { // CBaseEntity +} + +namespace CHandleTest { // CBaseEntity + constexpr std::ptrdiff_t m_Handle = 0x4B0; // CHandle + constexpr std::ptrdiff_t m_bSendHandle = 0x4B4; // bool +} + +namespace CHintMessage { + constexpr std::ptrdiff_t m_hintString = 0x8; // char* + constexpr std::ptrdiff_t m_args = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_duration = 0x28; // float +} + +namespace CHintMessageQueue { + constexpr std::ptrdiff_t m_tmMessageEnd = 0x8; // float + constexpr std::ptrdiff_t m_messages = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_pPlayerController = 0x28; // CBasePlayerController* +} + +namespace CHitboxComponent { // CEntityComponent + constexpr std::ptrdiff_t m_bvDisabledHitGroups = 0x24; // uint32_t[1] +} + +namespace CHostage { // CHostageExpresserShim + constexpr std::ptrdiff_t m_OnHostageBeginGrab = 0x9E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFirstPickedUp = 0xA10; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnDroppedNotRescued = 0xA38; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnRescued = 0xA60; // CEntityIOOutput + constexpr std::ptrdiff_t m_entitySpottedState = 0xA88; // EntitySpottedState_t + constexpr std::ptrdiff_t m_nSpotRules = 0xAA0; // int32_t + constexpr std::ptrdiff_t m_uiHostageSpawnExclusionGroupMask = 0xAA4; // uint32_t + constexpr std::ptrdiff_t m_nHostageSpawnRandomFactor = 0xAA8; // uint32_t + constexpr std::ptrdiff_t m_bRemove = 0xAAC; // bool + constexpr std::ptrdiff_t m_vel = 0xAB0; // Vector + constexpr std::ptrdiff_t m_isRescued = 0xABC; // bool + constexpr std::ptrdiff_t m_jumpedThisFrame = 0xABD; // bool + constexpr std::ptrdiff_t m_nHostageState = 0xAC0; // int32_t + constexpr std::ptrdiff_t m_leader = 0xAC4; // CHandle + constexpr std::ptrdiff_t m_lastLeader = 0xAC8; // CHandle + constexpr std::ptrdiff_t m_reuseTimer = 0xAD0; // CountdownTimer + constexpr std::ptrdiff_t m_hasBeenUsed = 0xAE8; // bool + constexpr std::ptrdiff_t m_accel = 0xAEC; // Vector + constexpr std::ptrdiff_t m_isRunning = 0xAF8; // bool + constexpr std::ptrdiff_t m_isCrouching = 0xAF9; // bool + constexpr std::ptrdiff_t m_jumpTimer = 0xB00; // CountdownTimer + constexpr std::ptrdiff_t m_isWaitingForLeader = 0xB18; // bool + constexpr std::ptrdiff_t m_repathTimer = 0x2B28; // CountdownTimer + constexpr std::ptrdiff_t m_inhibitDoorTimer = 0x2B40; // CountdownTimer + constexpr std::ptrdiff_t m_inhibitObstacleAvoidanceTimer = 0x2BD0; // CountdownTimer + constexpr std::ptrdiff_t m_wiggleTimer = 0x2BF0; // CountdownTimer + constexpr std::ptrdiff_t m_isAdjusted = 0x2C0C; // bool + constexpr std::ptrdiff_t m_bHandsHaveBeenCut = 0x2C0D; // bool + constexpr std::ptrdiff_t m_hHostageGrabber = 0x2C10; // CHandle + constexpr std::ptrdiff_t m_fLastGrabTime = 0x2C14; // GameTime_t + constexpr std::ptrdiff_t m_vecPositionWhenStartedDroppingToGround = 0x2C18; // Vector + constexpr std::ptrdiff_t m_vecGrabbedPos = 0x2C24; // Vector + constexpr std::ptrdiff_t m_flRescueStartTime = 0x2C30; // GameTime_t + constexpr std::ptrdiff_t m_flGrabSuccessTime = 0x2C34; // GameTime_t + constexpr std::ptrdiff_t m_flDropStartTime = 0x2C38; // GameTime_t + constexpr std::ptrdiff_t m_nApproachRewardPayouts = 0x2C3C; // int32_t + constexpr std::ptrdiff_t m_nPickupEventCount = 0x2C40; // int32_t + constexpr std::ptrdiff_t m_vecSpawnGroundPos = 0x2C44; // Vector +} + +namespace CHostageAlias_info_hostage_spawn { // CHostage +} + +namespace CHostageCarriableProp { // CBaseAnimGraph +} + +namespace CHostageExpresserShim { // CBaseCombatCharacter + constexpr std::ptrdiff_t m_pExpresser = 0x9D0; // CAI_Expresser* +} + +namespace CHostageRescueZone { // CHostageRescueZoneShim +} + +namespace CHostageRescueZoneShim { // CBaseTrigger +} + +namespace CInButtonState { + constexpr std::ptrdiff_t m_pButtonStates = 0x8; // uint64_t[3] +} + +namespace CIncendiaryGrenade { // CMolotovGrenade +} + +namespace CInferno { // CBaseModelEntity + constexpr std::ptrdiff_t m_firePositions = 0x710; // Vector[64] + constexpr std::ptrdiff_t m_fireParentPositions = 0xA10; // Vector[64] + constexpr std::ptrdiff_t m_bFireIsBurning = 0xD10; // bool[64] + constexpr std::ptrdiff_t m_BurnNormal = 0xD50; // Vector[64] + constexpr std::ptrdiff_t m_fireCount = 0x1050; // int32_t + constexpr std::ptrdiff_t m_nInfernoType = 0x1054; // int32_t + constexpr std::ptrdiff_t m_nFireEffectTickBegin = 0x1058; // int32_t + constexpr std::ptrdiff_t m_nFireLifetime = 0x105C; // float + constexpr std::ptrdiff_t m_bInPostEffectTime = 0x1060; // bool + constexpr std::ptrdiff_t m_nFiresExtinguishCount = 0x1064; // int32_t + constexpr std::ptrdiff_t m_bWasCreatedInSmoke = 0x1068; // bool + constexpr std::ptrdiff_t m_extent = 0x1270; // Extent + constexpr std::ptrdiff_t m_damageTimer = 0x1288; // CountdownTimer + constexpr std::ptrdiff_t m_damageRampTimer = 0x12A0; // CountdownTimer + constexpr std::ptrdiff_t m_splashVelocity = 0x12B8; // Vector + constexpr std::ptrdiff_t m_InitialSplashVelocity = 0x12C4; // Vector + constexpr std::ptrdiff_t m_startPos = 0x12D0; // Vector + constexpr std::ptrdiff_t m_vecOriginalSpawnLocation = 0x12DC; // Vector + constexpr std::ptrdiff_t m_activeTimer = 0x12E8; // IntervalTimer + constexpr std::ptrdiff_t m_fireSpawnOffset = 0x12F8; // int32_t + constexpr std::ptrdiff_t m_nMaxFlames = 0x12FC; // int32_t + constexpr std::ptrdiff_t m_BookkeepingTimer = 0x1300; // CountdownTimer + constexpr std::ptrdiff_t m_NextSpreadTimer = 0x1318; // CountdownTimer + constexpr std::ptrdiff_t m_nSourceItemDefIndex = 0x1330; // uint16_t +} + +namespace CInfoData { // CServerOnlyEntity +} + +namespace CInfoDeathmatchSpawn { // SpawnPoint +} + +namespace CInfoDynamicShadowHint { // CPointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_flRange = 0x4B4; // float + constexpr std::ptrdiff_t m_nImportance = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_nLightChoice = 0x4BC; // int32_t + constexpr std::ptrdiff_t m_hLight = 0x4C0; // CHandle +} + +namespace CInfoDynamicShadowHintBox { // CInfoDynamicShadowHint + constexpr std::ptrdiff_t m_vBoxMins = 0x4C8; // Vector + constexpr std::ptrdiff_t m_vBoxMaxs = 0x4D4; // Vector +} + +namespace CInfoEnemyTerroristSpawn { // SpawnPointCoopEnemy +} + +namespace CInfoGameEventProxy { // CPointEntity + constexpr std::ptrdiff_t m_iszEventName = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flRange = 0x4B8; // float +} + +namespace CInfoInstructorHintBombTargetA { // CPointEntity +} + +namespace CInfoInstructorHintBombTargetB { // CPointEntity +} + +namespace CInfoInstructorHintHostageRescueZone { // CPointEntity +} + +namespace CInfoInstructorHintTarget { // CPointEntity +} + +namespace CInfoLadderDismount { // CBaseEntity +} + +namespace CInfoLandmark { // CPointEntity +} + +namespace CInfoOffscreenPanoramaTexture { // CPointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_nResolutionX = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_nResolutionY = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_szLayoutFileName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_RenderAttrName = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_TargetEntities = 0x4D0; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_nTargetChangeCount = 0x4E8; // int32_t + constexpr std::ptrdiff_t m_vecCSSClasses = 0x4F0; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_szTargetsName = 0x508; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_AdditionalTargetEntities = 0x510; // CUtlVector> +} + +namespace CInfoParticleTarget { // CPointEntity +} + +namespace CInfoPlayerCounterterrorist { // SpawnPoint +} + +namespace CInfoPlayerStart { // CPointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool +} + +namespace CInfoPlayerTerrorist { // SpawnPoint +} + +namespace CInfoSpawnGroupLandmark { // CPointEntity +} + +namespace CInfoSpawnGroupLoadUnload { // CLogicalEntity + constexpr std::ptrdiff_t m_OnSpawnGroupLoadStarted = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnSpawnGroupLoadFinished = 0x4D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnSpawnGroupUnloadStarted = 0x500; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnSpawnGroupUnloadFinished = 0x528; // CEntityIOOutput + constexpr std::ptrdiff_t m_iszSpawnGroupName = 0x550; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSpawnGroupFilterName = 0x558; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszLandmarkName = 0x560; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sFixedSpawnGroupName = 0x568; // CUtlString + constexpr std::ptrdiff_t m_flTimeoutInterval = 0x570; // float + constexpr std::ptrdiff_t m_bStreamingStarted = 0x574; // bool + constexpr std::ptrdiff_t m_bUnloadingStarted = 0x575; // bool +} + +namespace CInfoTarget { // CPointEntity +} + +namespace CInfoTargetServerOnly { // CServerOnlyPointEntity +} + +namespace CInfoTeleportDestination { // CPointEntity +} + +namespace CInfoVisibilityBox { // CBaseEntity + constexpr std::ptrdiff_t m_nMode = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_vBoxSize = 0x4B8; // Vector + constexpr std::ptrdiff_t m_bEnabled = 0x4C4; // bool +} + +namespace CInfoWorldLayer { // CBaseEntity + constexpr std::ptrdiff_t m_pOutputOnEntitiesSpawned = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_worldName = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_layerName = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bWorldLayerVisible = 0x4E8; // bool + constexpr std::ptrdiff_t m_bEntitiesSpawned = 0x4E9; // bool + constexpr std::ptrdiff_t m_bCreateAsChildSpawnGroup = 0x4EA; // bool + constexpr std::ptrdiff_t m_hLayerSpawnGroup = 0x4EC; // uint32_t +} + +namespace CInstancedSceneEntity { // CSceneEntity + constexpr std::ptrdiff_t m_hOwner = 0xA08; // CHandle + constexpr std::ptrdiff_t m_bHadOwner = 0xA0C; // bool + constexpr std::ptrdiff_t m_flPostSpeakDelay = 0xA10; // float + constexpr std::ptrdiff_t m_flPreDelay = 0xA14; // float + constexpr std::ptrdiff_t m_bIsBackground = 0xA18; // bool +} + +namespace CInstructorEventEntity { // CPointEntity + constexpr std::ptrdiff_t m_iszName = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszHintTargetEntity = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hTargetPlayer = 0x4C0; // CHandle +} + +namespace CIronSightController { + constexpr std::ptrdiff_t m_bIronSightAvailable = 0x8; // bool + constexpr std::ptrdiff_t m_flIronSightAmount = 0xC; // float + constexpr std::ptrdiff_t m_flIronSightAmountGained = 0x10; // float + constexpr std::ptrdiff_t m_flIronSightAmountBiased = 0x14; // float +} + +namespace CItem { // CBaseAnimGraph + constexpr std::ptrdiff_t m_OnPlayerTouch = 0x898; // CEntityIOOutput + constexpr std::ptrdiff_t m_bActivateWhenAtRest = 0x8C0; // bool + constexpr std::ptrdiff_t m_OnCacheInteraction = 0x8C8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPlayerPickup = 0x8F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnGlovePulled = 0x918; // CEntityIOOutput + constexpr std::ptrdiff_t m_vOriginalSpawnOrigin = 0x940; // Vector + constexpr std::ptrdiff_t m_vOriginalSpawnAngles = 0x94C; // QAngle + constexpr std::ptrdiff_t m_bPhysStartAsleep = 0x958; // bool +} + +namespace CItemAssaultSuit { // CItem +} + +namespace CItemDefuser { // CItem + constexpr std::ptrdiff_t m_entitySpottedState = 0x968; // EntitySpottedState_t + constexpr std::ptrdiff_t m_nSpotRules = 0x980; // int32_t +} + +namespace CItemDefuserAlias_item_defuser { // CItemDefuser +} + +namespace CItemDogtags { // CItem + constexpr std::ptrdiff_t m_OwningPlayer = 0x968; // CHandle + constexpr std::ptrdiff_t m_KillingPlayer = 0x96C; // CHandle +} + +namespace CItemGeneric { // CItem + constexpr std::ptrdiff_t m_bHasTriggerRadius = 0x970; // bool + constexpr std::ptrdiff_t m_bHasPickupRadius = 0x971; // bool + constexpr std::ptrdiff_t m_flPickupRadiusSqr = 0x974; // float + constexpr std::ptrdiff_t m_flTriggerRadiusSqr = 0x978; // float + constexpr std::ptrdiff_t m_flLastPickupCheck = 0x97C; // GameTime_t + constexpr std::ptrdiff_t m_bPlayerCounterListenerAdded = 0x980; // bool + constexpr std::ptrdiff_t m_bPlayerInTriggerRadius = 0x981; // bool + constexpr std::ptrdiff_t m_hSpawnParticleEffect = 0x988; // CStrongHandle + constexpr std::ptrdiff_t m_pAmbientSoundEffect = 0x990; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bAutoStartAmbientSound = 0x998; // bool + constexpr std::ptrdiff_t m_pSpawnScriptFunction = 0x9A0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hPickupParticleEffect = 0x9A8; // CStrongHandle + constexpr std::ptrdiff_t m_pPickupSoundEffect = 0x9B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pPickupScriptFunction = 0x9B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hTimeoutParticleEffect = 0x9C0; // CStrongHandle + constexpr std::ptrdiff_t m_pTimeoutSoundEffect = 0x9C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pTimeoutScriptFunction = 0x9D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pPickupFilterName = 0x9D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hPickupFilter = 0x9E0; // CHandle + constexpr std::ptrdiff_t m_OnPickup = 0x9E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTimeout = 0xA10; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTriggerStartTouch = 0xA38; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTriggerTouch = 0xA60; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTriggerEndTouch = 0xA88; // CEntityIOOutput + constexpr std::ptrdiff_t m_pAllowPickupScriptFunction = 0xAB0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flPickupRadius = 0xAB8; // float + constexpr std::ptrdiff_t m_flTriggerRadius = 0xABC; // float + constexpr std::ptrdiff_t m_pTriggerSoundEffect = 0xAC0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bGlowWhenInTrigger = 0xAC8; // bool + constexpr std::ptrdiff_t m_glowColor = 0xAC9; // Color + constexpr std::ptrdiff_t m_bUseable = 0xACD; // bool + constexpr std::ptrdiff_t m_hTriggerHelper = 0xAD0; // CHandle +} + +namespace CItemGenericTriggerHelper { // CBaseModelEntity + constexpr std::ptrdiff_t m_hParentItem = 0x700; // CHandle +} + +namespace CItemHeavyAssaultSuit { // CItemAssaultSuit +} + +namespace CItemKevlar { // CItem +} + +namespace CItemSoda { // CBaseAnimGraph +} + +namespace CItem_Healthshot { // CWeaponBaseItem +} + +namespace CKeepUpright { // CPointEntity + constexpr std::ptrdiff_t m_worldGoalAxis = 0x4B8; // Vector + constexpr std::ptrdiff_t m_localTestAxis = 0x4C4; // Vector + constexpr std::ptrdiff_t m_nameAttach = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_attachedObject = 0x4E0; // CHandle + constexpr std::ptrdiff_t m_angularLimit = 0x4E4; // float + constexpr std::ptrdiff_t m_bActive = 0x4E8; // bool + constexpr std::ptrdiff_t m_bDampAllRotation = 0x4E9; // bool +} + +namespace CKnife { // CCSWeaponBase + constexpr std::ptrdiff_t m_bFirstAttack = 0xE18; // bool +} + +namespace CLightComponent { // CEntityComponent + constexpr std::ptrdiff_t __m_pChainEntity = 0x48; // CNetworkVarChainer + constexpr std::ptrdiff_t m_Color = 0x85; // Color + constexpr std::ptrdiff_t m_SecondaryColor = 0x89; // Color + constexpr std::ptrdiff_t m_flBrightness = 0x90; // float + constexpr std::ptrdiff_t m_flBrightnessScale = 0x94; // float + constexpr std::ptrdiff_t m_flBrightnessMult = 0x98; // float + constexpr std::ptrdiff_t m_flRange = 0x9C; // float + constexpr std::ptrdiff_t m_flFalloff = 0xA0; // float + constexpr std::ptrdiff_t m_flAttenuation0 = 0xA4; // float + constexpr std::ptrdiff_t m_flAttenuation1 = 0xA8; // float + constexpr std::ptrdiff_t m_flAttenuation2 = 0xAC; // float + constexpr std::ptrdiff_t m_flTheta = 0xB0; // float + constexpr std::ptrdiff_t m_flPhi = 0xB4; // float + constexpr std::ptrdiff_t m_hLightCookie = 0xB8; // CStrongHandle + constexpr std::ptrdiff_t m_nCascades = 0xC0; // int32_t + constexpr std::ptrdiff_t m_nCastShadows = 0xC4; // int32_t + constexpr std::ptrdiff_t m_nShadowWidth = 0xC8; // int32_t + constexpr std::ptrdiff_t m_nShadowHeight = 0xCC; // int32_t + constexpr std::ptrdiff_t m_bRenderDiffuse = 0xD0; // bool + constexpr std::ptrdiff_t m_nRenderSpecular = 0xD4; // int32_t + constexpr std::ptrdiff_t m_bRenderTransmissive = 0xD8; // bool + constexpr std::ptrdiff_t m_flOrthoLightWidth = 0xDC; // float + constexpr std::ptrdiff_t m_flOrthoLightHeight = 0xE0; // float + constexpr std::ptrdiff_t m_nStyle = 0xE4; // int32_t + constexpr std::ptrdiff_t m_Pattern = 0xE8; // CUtlString + constexpr std::ptrdiff_t m_nCascadeRenderStaticObjects = 0xF0; // int32_t + constexpr std::ptrdiff_t m_flShadowCascadeCrossFade = 0xF4; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistanceFade = 0xF8; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance0 = 0xFC; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance1 = 0x100; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance2 = 0x104; // float + constexpr std::ptrdiff_t m_flShadowCascadeDistance3 = 0x108; // float + constexpr std::ptrdiff_t m_nShadowCascadeResolution0 = 0x10C; // int32_t + constexpr std::ptrdiff_t m_nShadowCascadeResolution1 = 0x110; // int32_t + constexpr std::ptrdiff_t m_nShadowCascadeResolution2 = 0x114; // int32_t + constexpr std::ptrdiff_t m_nShadowCascadeResolution3 = 0x118; // int32_t + constexpr std::ptrdiff_t m_bUsesBakedShadowing = 0x11C; // bool + constexpr std::ptrdiff_t m_nShadowPriority = 0x120; // int32_t + constexpr std::ptrdiff_t m_nBakedShadowIndex = 0x124; // int32_t + constexpr std::ptrdiff_t m_bRenderToCubemaps = 0x128; // bool + constexpr std::ptrdiff_t m_nDirectLight = 0x12C; // int32_t + constexpr std::ptrdiff_t m_nIndirectLight = 0x130; // int32_t + constexpr std::ptrdiff_t m_flFadeMinDist = 0x134; // float + constexpr std::ptrdiff_t m_flFadeMaxDist = 0x138; // float + constexpr std::ptrdiff_t m_flShadowFadeMinDist = 0x13C; // float + constexpr std::ptrdiff_t m_flShadowFadeMaxDist = 0x140; // float + constexpr std::ptrdiff_t m_bEnabled = 0x144; // bool + constexpr std::ptrdiff_t m_bFlicker = 0x145; // bool + constexpr std::ptrdiff_t m_bPrecomputedFieldsValid = 0x146; // bool + constexpr std::ptrdiff_t m_vPrecomputedBoundsMins = 0x148; // Vector + constexpr std::ptrdiff_t m_vPrecomputedBoundsMaxs = 0x154; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBOrigin = 0x160; // Vector + constexpr std::ptrdiff_t m_vPrecomputedOBBAngles = 0x16C; // QAngle + constexpr std::ptrdiff_t m_vPrecomputedOBBExtent = 0x178; // Vector + constexpr std::ptrdiff_t m_flPrecomputedMaxRange = 0x184; // float + constexpr std::ptrdiff_t m_nFogLightingMode = 0x188; // int32_t + constexpr std::ptrdiff_t m_flFogContributionStength = 0x18C; // float + constexpr std::ptrdiff_t m_flNearClipPlane = 0x190; // float + constexpr std::ptrdiff_t m_SkyColor = 0x194; // Color + constexpr std::ptrdiff_t m_flSkyIntensity = 0x198; // float + constexpr std::ptrdiff_t m_SkyAmbientBounce = 0x19C; // Color + constexpr std::ptrdiff_t m_bUseSecondaryColor = 0x1A0; // bool + constexpr std::ptrdiff_t m_bMixedShadows = 0x1A1; // bool + constexpr std::ptrdiff_t m_flLightStyleStartTime = 0x1A4; // GameTime_t + constexpr std::ptrdiff_t m_flCapsuleLength = 0x1A8; // float + constexpr std::ptrdiff_t m_flMinRoughness = 0x1AC; // float + constexpr std::ptrdiff_t m_bPvsModifyEntity = 0x1C0; // bool +} + +namespace CLightDirectionalEntity { // CLightEntity +} + +namespace CLightEntity { // CBaseModelEntity + constexpr std::ptrdiff_t m_CLightComponent = 0x700; // CLightComponent* +} + +namespace CLightEnvironmentEntity { // CLightDirectionalEntity +} + +namespace CLightGlow { // CBaseModelEntity + constexpr std::ptrdiff_t m_nHorizontalSize = 0x700; // uint32_t + constexpr std::ptrdiff_t m_nVerticalSize = 0x704; // uint32_t + constexpr std::ptrdiff_t m_nMinDist = 0x708; // uint32_t + constexpr std::ptrdiff_t m_nMaxDist = 0x70C; // uint32_t + constexpr std::ptrdiff_t m_nOuterMaxDist = 0x710; // uint32_t + constexpr std::ptrdiff_t m_flGlowProxySize = 0x714; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0x718; // float +} + +namespace CLightOrthoEntity { // CLightEntity +} + +namespace CLightSpotEntity { // CLightEntity +} + +namespace CLogicAchievement { // CLogicalEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_iszAchievementEventID = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_OnFired = 0x4C0; // CEntityIOOutput +} + +namespace CLogicActiveAutosave { // CLogicAutosave + constexpr std::ptrdiff_t m_TriggerHitPoints = 0x4C0; // int32_t + constexpr std::ptrdiff_t m_flTimeToTrigger = 0x4C4; // float + constexpr std::ptrdiff_t m_flStartTime = 0x4C8; // GameTime_t + constexpr std::ptrdiff_t m_flDangerousTime = 0x4CC; // float +} + +namespace CLogicAuto { // CBaseEntity + constexpr std::ptrdiff_t m_OnMapSpawn = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnDemoMapSpawn = 0x4D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnNewGame = 0x500; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnLoadGame = 0x528; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMapTransition = 0x550; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnBackgroundMap = 0x578; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMultiNewMap = 0x5A0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMultiNewRound = 0x5C8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnVREnabled = 0x5F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnVRNotEnabled = 0x618; // CEntityIOOutput + constexpr std::ptrdiff_t m_globalstate = 0x640; // CUtlSymbolLarge +} + +namespace CLogicAutosave { // CLogicalEntity + constexpr std::ptrdiff_t m_bForceNewLevelUnit = 0x4B0; // bool + constexpr std::ptrdiff_t m_minHitPoints = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_minHitPointsToCommit = 0x4B8; // int32_t +} + +namespace CLogicBranch { // CLogicalEntity + constexpr std::ptrdiff_t m_bInValue = 0x4B0; // bool + constexpr std::ptrdiff_t m_Listeners = 0x4B8; // CUtlVector> + constexpr std::ptrdiff_t m_OnTrue = 0x4D0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFalse = 0x4F8; // CEntityIOOutput +} + +namespace CLogicBranchList { // CLogicalEntity + constexpr std::ptrdiff_t m_nLogicBranchNames = 0x4B0; // CUtlSymbolLarge[16] + constexpr std::ptrdiff_t m_LogicBranchList = 0x530; // CUtlVector> + constexpr std::ptrdiff_t m_eLastState = 0x548; // CLogicBranchList::LogicBranchListenerLastState_t + constexpr std::ptrdiff_t m_OnAllTrue = 0x550; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAllFalse = 0x578; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMixed = 0x5A0; // CEntityIOOutput +} + +namespace CLogicCase { // CLogicalEntity + constexpr std::ptrdiff_t m_nCase = 0x4B0; // CUtlSymbolLarge[32] + constexpr std::ptrdiff_t m_nShuffleCases = 0x5B0; // int32_t + constexpr std::ptrdiff_t m_nLastShuffleCase = 0x5B4; // int32_t + constexpr std::ptrdiff_t m_uchShuffleCaseMap = 0x5B8; // uint8_t[32] + constexpr std::ptrdiff_t m_OnCase = 0x5D8; // CEntityIOOutput[32] + constexpr std::ptrdiff_t m_OnDefault = 0xAD8; // CEntityOutputTemplate> +} + +namespace CLogicCollisionPair { // CLogicalEntity + constexpr std::ptrdiff_t m_nameAttach1 = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nameAttach2 = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_disabled = 0x4C0; // bool + constexpr std::ptrdiff_t m_succeeded = 0x4C1; // bool +} + +namespace CLogicCompare { // CLogicalEntity + constexpr std::ptrdiff_t m_flInValue = 0x4B0; // float + constexpr std::ptrdiff_t m_flCompareValue = 0x4B4; // float + constexpr std::ptrdiff_t m_OnLessThan = 0x4B8; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnEqualTo = 0x4E0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnNotEqualTo = 0x508; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnGreaterThan = 0x530; // CEntityOutputTemplate +} + +namespace CLogicDistanceAutosave { // CLogicalEntity + constexpr std::ptrdiff_t m_iszTargetEntity = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flDistanceToPlayer = 0x4B8; // float + constexpr std::ptrdiff_t m_bForceNewLevelUnit = 0x4BC; // bool + constexpr std::ptrdiff_t m_bCheckCough = 0x4BD; // bool + constexpr std::ptrdiff_t m_bThinkDangerous = 0x4BE; // bool + constexpr std::ptrdiff_t m_flDangerousTime = 0x4C0; // float +} + +namespace CLogicDistanceCheck { // CLogicalEntity + constexpr std::ptrdiff_t m_iszEntityA = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszEntityB = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flZone1Distance = 0x4C0; // float + constexpr std::ptrdiff_t m_flZone2Distance = 0x4C4; // float + constexpr std::ptrdiff_t m_InZone1 = 0x4C8; // CEntityIOOutput + constexpr std::ptrdiff_t m_InZone2 = 0x4F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_InZone3 = 0x518; // CEntityIOOutput +} + +namespace CLogicGameEvent { // CLogicalEntity + constexpr std::ptrdiff_t m_iszEventName = 0x4B0; // CUtlSymbolLarge +} + +namespace CLogicGameEventListener { // CLogicalEntity + constexpr std::ptrdiff_t m_OnEventFired = 0x4C0; // CEntityIOOutput + constexpr std::ptrdiff_t m_iszGameEventName = 0x4E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszGameEventItem = 0x4F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bEnabled = 0x4F8; // bool + constexpr std::ptrdiff_t m_bStartDisabled = 0x4F9; // bool +} + +namespace CLogicLineToEntity { // CLogicalEntity + constexpr std::ptrdiff_t m_Line = 0x4B0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_SourceName = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_StartEntity = 0x4E0; // CHandle + constexpr std::ptrdiff_t m_EndEntity = 0x4E4; // CHandle +} + +namespace CLogicMeasureMovement { // CLogicalEntity + constexpr std::ptrdiff_t m_strMeasureTarget = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_strMeasureReference = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_strTargetReference = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hMeasureTarget = 0x4C8; // CHandle + constexpr std::ptrdiff_t m_hMeasureReference = 0x4CC; // CHandle + constexpr std::ptrdiff_t m_hTarget = 0x4D0; // CHandle + constexpr std::ptrdiff_t m_hTargetReference = 0x4D4; // CHandle + constexpr std::ptrdiff_t m_flScale = 0x4D8; // float + constexpr std::ptrdiff_t m_nMeasureType = 0x4DC; // int32_t +} + +namespace CLogicNPCCounter { // CBaseEntity + constexpr std::ptrdiff_t m_OnMinCountAll = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMaxCountAll = 0x4D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFactorAll = 0x500; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMinPlayerDistAll = 0x528; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMinCount_1 = 0x550; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMaxCount_1 = 0x578; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFactor_1 = 0x5A0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMinPlayerDist_1 = 0x5C8; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMinCount_2 = 0x5F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMaxCount_2 = 0x618; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFactor_2 = 0x640; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMinPlayerDist_2 = 0x668; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMinCount_3 = 0x690; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMaxCount_3 = 0x6B8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFactor_3 = 0x6E0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMinPlayerDist_3 = 0x708; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_hSource = 0x730; // CEntityHandle + constexpr std::ptrdiff_t m_iszSourceEntityName = 0x738; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flDistanceMax = 0x740; // float + constexpr std::ptrdiff_t m_bDisabled = 0x744; // bool + constexpr std::ptrdiff_t m_nMinCountAll = 0x748; // int32_t + constexpr std::ptrdiff_t m_nMaxCountAll = 0x74C; // int32_t + constexpr std::ptrdiff_t m_nMinFactorAll = 0x750; // int32_t + constexpr std::ptrdiff_t m_nMaxFactorAll = 0x754; // int32_t + constexpr std::ptrdiff_t m_iszNPCClassname_1 = 0x760; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nNPCState_1 = 0x768; // int32_t + constexpr std::ptrdiff_t m_bInvertState_1 = 0x76C; // bool + constexpr std::ptrdiff_t m_nMinCount_1 = 0x770; // int32_t + constexpr std::ptrdiff_t m_nMaxCount_1 = 0x774; // int32_t + constexpr std::ptrdiff_t m_nMinFactor_1 = 0x778; // int32_t + constexpr std::ptrdiff_t m_nMaxFactor_1 = 0x77C; // int32_t + constexpr std::ptrdiff_t m_flDefaultDist_1 = 0x784; // float + constexpr std::ptrdiff_t m_iszNPCClassname_2 = 0x788; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nNPCState_2 = 0x790; // int32_t + constexpr std::ptrdiff_t m_bInvertState_2 = 0x794; // bool + constexpr std::ptrdiff_t m_nMinCount_2 = 0x798; // int32_t + constexpr std::ptrdiff_t m_nMaxCount_2 = 0x79C; // int32_t + constexpr std::ptrdiff_t m_nMinFactor_2 = 0x7A0; // int32_t + constexpr std::ptrdiff_t m_nMaxFactor_2 = 0x7A4; // int32_t + constexpr std::ptrdiff_t m_flDefaultDist_2 = 0x7AC; // float + constexpr std::ptrdiff_t m_iszNPCClassname_3 = 0x7B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nNPCState_3 = 0x7B8; // int32_t + constexpr std::ptrdiff_t m_bInvertState_3 = 0x7BC; // bool + constexpr std::ptrdiff_t m_nMinCount_3 = 0x7C0; // int32_t + constexpr std::ptrdiff_t m_nMaxCount_3 = 0x7C4; // int32_t + constexpr std::ptrdiff_t m_nMinFactor_3 = 0x7C8; // int32_t + constexpr std::ptrdiff_t m_nMaxFactor_3 = 0x7CC; // int32_t + constexpr std::ptrdiff_t m_flDefaultDist_3 = 0x7D4; // float +} + +namespace CLogicNPCCounterAABB { // CLogicNPCCounter + constexpr std::ptrdiff_t m_vDistanceOuterMins = 0x7F0; // Vector + constexpr std::ptrdiff_t m_vDistanceOuterMaxs = 0x7FC; // Vector + constexpr std::ptrdiff_t m_vOuterMins = 0x808; // Vector + constexpr std::ptrdiff_t m_vOuterMaxs = 0x814; // Vector +} + +namespace CLogicNPCCounterOBB { // CLogicNPCCounterAABB +} + +namespace CLogicNavigation { // CLogicalEntity + constexpr std::ptrdiff_t m_isOn = 0x4B8; // bool + constexpr std::ptrdiff_t m_navProperty = 0x4BC; // navproperties_t +} + +namespace CLogicPlayerProxy { // CLogicalEntity + constexpr std::ptrdiff_t m_hPlayer = 0x4B0; // CHandle + constexpr std::ptrdiff_t m_PlayerHasAmmo = 0x4B8; // CEntityIOOutput + constexpr std::ptrdiff_t m_PlayerHasNoAmmo = 0x4E0; // CEntityIOOutput + constexpr std::ptrdiff_t m_PlayerDied = 0x508; // CEntityIOOutput + constexpr std::ptrdiff_t m_RequestedPlayerHealth = 0x530; // CEntityOutputTemplate +} + +namespace CLogicProximity { // CPointEntity +} + +namespace CLogicRelay { // CLogicalEntity + constexpr std::ptrdiff_t m_OnTrigger = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnSpawn = 0x4D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_bDisabled = 0x500; // bool + constexpr std::ptrdiff_t m_bWaitForRefire = 0x501; // bool + constexpr std::ptrdiff_t m_bTriggerOnce = 0x502; // bool + constexpr std::ptrdiff_t m_bFastRetrigger = 0x503; // bool + constexpr std::ptrdiff_t m_bPassthoughCaller = 0x504; // bool +} + +namespace CLogicScript { // CPointEntity +} + +namespace CLogicalEntity { // CServerOnlyEntity +} + +namespace CMapInfo { // CPointEntity + constexpr std::ptrdiff_t m_iBuyingStatus = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_flBombRadius = 0x4B4; // float + constexpr std::ptrdiff_t m_iPetPopulation = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_bUseNormalSpawnsForDM = 0x4BC; // bool + constexpr std::ptrdiff_t m_bDisableAutoGeneratedDMSpawns = 0x4BD; // bool + constexpr std::ptrdiff_t m_flBotMaxVisionDistance = 0x4C0; // float + constexpr std::ptrdiff_t m_iHostageCount = 0x4C4; // int32_t + constexpr std::ptrdiff_t m_bFadePlayerVisibilityFarZ = 0x4C8; // bool +} + +namespace CMapVetoPickController { // CBaseEntity + constexpr std::ptrdiff_t m_bPlayedIntroVcd = 0x4B0; // bool + constexpr std::ptrdiff_t m_bNeedToPlayFiveSecondsRemaining = 0x4B1; // bool + constexpr std::ptrdiff_t m_dblPreMatchDraftSequenceTime = 0x4D0; // double + constexpr std::ptrdiff_t m_bPreMatchDraftStateChanged = 0x4D8; // bool + constexpr std::ptrdiff_t m_nDraftType = 0x4DC; // int32_t + constexpr std::ptrdiff_t m_nTeamWinningCoinToss = 0x4E0; // int32_t + constexpr std::ptrdiff_t m_nTeamWithFirstChoice = 0x4E4; // int32_t[64] + constexpr std::ptrdiff_t m_nVoteMapIdsList = 0x5E4; // int32_t[7] + constexpr std::ptrdiff_t m_nAccountIDs = 0x600; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId0 = 0x700; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId1 = 0x800; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId2 = 0x900; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId3 = 0xA00; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId4 = 0xB00; // int32_t[64] + constexpr std::ptrdiff_t m_nMapId5 = 0xC00; // int32_t[64] + constexpr std::ptrdiff_t m_nStartingSide0 = 0xD00; // int32_t[64] + constexpr std::ptrdiff_t m_nCurrentPhase = 0xE00; // int32_t + constexpr std::ptrdiff_t m_nPhaseStartTick = 0xE04; // int32_t + constexpr std::ptrdiff_t m_nPhaseDurationTicks = 0xE08; // int32_t + constexpr std::ptrdiff_t m_OnMapVetoed = 0xE10; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnMapPicked = 0xE38; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnSidesPicked = 0xE60; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnNewPhaseStarted = 0xE88; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnLevelTransition = 0xEB0; // CEntityOutputTemplate +} + +namespace CMarkupVolume { // CBaseModelEntity + constexpr std::ptrdiff_t m_bEnabled = 0x700; // bool +} + +namespace CMarkupVolumeTagged { // CMarkupVolume + constexpr std::ptrdiff_t m_bIsGroup = 0x738; // bool + constexpr std::ptrdiff_t m_bGroupByPrefab = 0x739; // bool + constexpr std::ptrdiff_t m_bGroupByVolume = 0x73A; // bool + constexpr std::ptrdiff_t m_bGroupOtherGroups = 0x73B; // bool + constexpr std::ptrdiff_t m_bIsInGroup = 0x73C; // bool +} + +namespace CMarkupVolumeTagged_Nav { // CMarkupVolumeTagged +} + +namespace CMarkupVolumeTagged_NavGame { // CMarkupVolumeWithRef + constexpr std::ptrdiff_t m_bFloodFillAttribute = 0x758; // bool +} + +namespace CMarkupVolumeWithRef { // CMarkupVolumeTagged + constexpr std::ptrdiff_t m_bUseRef = 0x740; // bool + constexpr std::ptrdiff_t m_vRefPos = 0x744; // Vector + constexpr std::ptrdiff_t m_flRefDot = 0x750; // float +} + +namespace CMathColorBlend { // CLogicalEntity + constexpr std::ptrdiff_t m_flInMin = 0x4B0; // float + constexpr std::ptrdiff_t m_flInMax = 0x4B4; // float + constexpr std::ptrdiff_t m_OutColor1 = 0x4B8; // Color + constexpr std::ptrdiff_t m_OutColor2 = 0x4BC; // Color + constexpr std::ptrdiff_t m_OutValue = 0x4C0; // CEntityOutputTemplate +} + +namespace CMathCounter { // CLogicalEntity + constexpr std::ptrdiff_t m_flMin = 0x4B0; // float + constexpr std::ptrdiff_t m_flMax = 0x4B4; // float + constexpr std::ptrdiff_t m_bHitMin = 0x4B8; // bool + constexpr std::ptrdiff_t m_bHitMax = 0x4B9; // bool + constexpr std::ptrdiff_t m_bDisabled = 0x4BA; // bool + constexpr std::ptrdiff_t m_OutValue = 0x4C0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnGetValue = 0x4E8; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnHitMin = 0x510; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnHitMax = 0x538; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnChangedFromMin = 0x560; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnChangedFromMax = 0x588; // CEntityIOOutput +} + +namespace CMathRemap { // CLogicalEntity + constexpr std::ptrdiff_t m_flInMin = 0x4B0; // float + constexpr std::ptrdiff_t m_flInMax = 0x4B4; // float + constexpr std::ptrdiff_t m_flOut1 = 0x4B8; // float + constexpr std::ptrdiff_t m_flOut2 = 0x4BC; // float + constexpr std::ptrdiff_t m_flOldInValue = 0x4C0; // float + constexpr std::ptrdiff_t m_bEnabled = 0x4C4; // bool + constexpr std::ptrdiff_t m_OutValue = 0x4C8; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnRoseAboveMin = 0x4F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnRoseAboveMax = 0x518; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFellBelowMin = 0x540; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFellBelowMax = 0x568; // CEntityIOOutput +} + +namespace CMelee { // CCSWeaponBase + constexpr std::ptrdiff_t m_flThrowAt = 0xE18; // GameTime_t + constexpr std::ptrdiff_t m_hThrower = 0xE1C; // CHandle + constexpr std::ptrdiff_t m_bDidThrowDamage = 0xE20; // bool +} + +namespace CMessage { // CPointEntity + constexpr std::ptrdiff_t m_iszMessage = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_MessageVolume = 0x4B8; // float + constexpr std::ptrdiff_t m_MessageAttenuation = 0x4BC; // int32_t + constexpr std::ptrdiff_t m_Radius = 0x4C0; // float + constexpr std::ptrdiff_t m_sNoise = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_OnShowMessage = 0x4D0; // CEntityIOOutput +} + +namespace CMessageEntity { // CPointEntity + constexpr std::ptrdiff_t m_radius = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_messageText = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_drawText = 0x4C0; // bool + constexpr std::ptrdiff_t m_bDeveloperOnly = 0x4C1; // bool + constexpr std::ptrdiff_t m_bEnabled = 0x4C2; // bool +} + +namespace CModelPointEntity { // CBaseModelEntity +} + +namespace CModelState { + constexpr std::ptrdiff_t m_hModel = 0xA0; // CStrongHandle + constexpr std::ptrdiff_t m_ModelName = 0xA8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bClientClothCreationSuppressed = 0xE8; // bool + constexpr std::ptrdiff_t m_MeshGroupMask = 0x180; // uint64_t + constexpr std::ptrdiff_t m_nIdealMotionType = 0x222; // int8_t + constexpr std::ptrdiff_t m_nForceLOD = 0x223; // int8_t + constexpr std::ptrdiff_t m_nClothUpdateFlags = 0x224; // int8_t +} + +namespace CMolotovGrenade { // CBaseCSGrenade +} + +namespace CMolotovProjectile { // CBaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_bIsIncGrenade = 0xA30; // bool + constexpr std::ptrdiff_t m_bDetonated = 0xA3C; // bool + constexpr std::ptrdiff_t m_stillTimer = 0xA40; // IntervalTimer + constexpr std::ptrdiff_t m_bHasBouncedOffPlayer = 0xB20; // bool +} + +namespace CMomentaryRotButton { // CRotButton + constexpr std::ptrdiff_t m_Position = 0x8C8; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnUnpressed = 0x8F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFullyOpen = 0x918; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnFullyClosed = 0x940; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnReachedPosition = 0x968; // CEntityIOOutput + constexpr std::ptrdiff_t m_lastUsed = 0x990; // int32_t + constexpr std::ptrdiff_t m_start = 0x994; // QAngle + constexpr std::ptrdiff_t m_end = 0x9A0; // QAngle + constexpr std::ptrdiff_t m_IdealYaw = 0x9AC; // float + constexpr std::ptrdiff_t m_sNoise = 0x9B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bUpdateTarget = 0x9B8; // bool + constexpr std::ptrdiff_t m_direction = 0x9BC; // int32_t + constexpr std::ptrdiff_t m_returnSpeed = 0x9C0; // float + constexpr std::ptrdiff_t m_flStartPosition = 0x9C4; // float +} + +namespace CMotorController { + constexpr std::ptrdiff_t m_speed = 0x8; // float + constexpr std::ptrdiff_t m_maxTorque = 0xC; // float + constexpr std::ptrdiff_t m_axis = 0x10; // Vector + constexpr std::ptrdiff_t m_inertiaFactor = 0x1C; // float +} + +namespace CMultiLightProxy { // CLogicalEntity + constexpr std::ptrdiff_t m_iszLightNameFilter = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszLightClassFilter = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flLightRadiusFilter = 0x4C0; // float + constexpr std::ptrdiff_t m_flBrightnessDelta = 0x4C4; // float + constexpr std::ptrdiff_t m_bPerformScreenFade = 0x4C8; // bool + constexpr std::ptrdiff_t m_flTargetBrightnessMultiplier = 0x4CC; // float + constexpr std::ptrdiff_t m_flCurrentBrightnessMultiplier = 0x4D0; // float + constexpr std::ptrdiff_t m_vecLights = 0x4D8; // CUtlVector> +} + +namespace CMultiSource { // CLogicalEntity + constexpr std::ptrdiff_t m_rgEntities = 0x4B0; // CHandle[32] + constexpr std::ptrdiff_t m_rgTriggered = 0x530; // int32_t[32] + constexpr std::ptrdiff_t m_OnTrigger = 0x5B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_iTotal = 0x5D8; // int32_t + constexpr std::ptrdiff_t m_globalstate = 0x5E0; // CUtlSymbolLarge +} + +namespace CMultiplayRules { // CGameRules +} + +namespace CMultiplayer_Expresser { // CAI_ExpresserWithFollowup + constexpr std::ptrdiff_t m_bAllowMultipleScenes = 0x70; // bool +} + +namespace CNavHullPresetVData { + constexpr std::ptrdiff_t m_vecNavHulls = 0x0; // CUtlVector +} + +namespace CNavHullVData { + constexpr std::ptrdiff_t m_bAgentEnabled = 0x0; // bool + constexpr std::ptrdiff_t m_agentRadius = 0x4; // float + constexpr std::ptrdiff_t m_agentHeight = 0x8; // float + constexpr std::ptrdiff_t m_agentShortHeightEnabled = 0xC; // bool + constexpr std::ptrdiff_t m_agentShortHeight = 0x10; // float + constexpr std::ptrdiff_t m_agentMaxClimb = 0x14; // float + constexpr std::ptrdiff_t m_agentMaxSlope = 0x18; // int32_t + constexpr std::ptrdiff_t m_agentMaxJumpDownDist = 0x1C; // float + constexpr std::ptrdiff_t m_agentMaxJumpHorizDistBase = 0x20; // float + constexpr std::ptrdiff_t m_agentMaxJumpUpDist = 0x24; // float + constexpr std::ptrdiff_t m_agentBorderErosion = 0x28; // int32_t +} + +namespace CNavLinkAnimgraphVar { + constexpr std::ptrdiff_t m_strAnimgraphVar = 0x0; // CUtlString + constexpr std::ptrdiff_t m_unAlignmentDegrees = 0x8; // uint32_t +} + +namespace CNavLinkAreaEntity { // CPointEntity + constexpr std::ptrdiff_t m_flWidth = 0x4B0; // float + constexpr std::ptrdiff_t m_vLocatorOffset = 0x4B4; // Vector + constexpr std::ptrdiff_t m_qLocatorAnglesOffset = 0x4C0; // QAngle + constexpr std::ptrdiff_t m_strMovementForward = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_strMovementReverse = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nNavLinkIdForward = 0x4E0; // int32_t + constexpr std::ptrdiff_t m_nNavLinkIdReverse = 0x4E4; // int32_t + constexpr std::ptrdiff_t m_bEnabled = 0x4E8; // bool + constexpr std::ptrdiff_t m_strFilterName = 0x4F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFilter = 0x4F8; // CHandle + constexpr std::ptrdiff_t m_OnNavLinkStart = 0x500; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnNavLinkFinish = 0x528; // CEntityIOOutput + constexpr std::ptrdiff_t m_bIsTerminus = 0x550; // bool +} + +namespace CNavLinkMovementVData { + constexpr std::ptrdiff_t m_bIsInterpolated = 0x0; // bool + constexpr std::ptrdiff_t m_unRecommendedDistance = 0x4; // uint32_t + constexpr std::ptrdiff_t m_vecAnimgraphVars = 0x8; // CUtlVector +} + +namespace CNavSpaceInfo { // CPointEntity + constexpr std::ptrdiff_t m_bCreateFlightSpace = 0x4B0; // bool +} + +namespace CNavVolume { +} + +namespace CNavVolumeAll { // CNavVolumeVector +} + +namespace CNavVolumeBreadthFirstSearch { // CNavVolumeCalculatedVector + constexpr std::ptrdiff_t m_vStartPos = 0xA0; // Vector + constexpr std::ptrdiff_t m_flSearchDist = 0xAC; // float +} + +namespace CNavVolumeCalculatedVector { // CNavVolume +} + +namespace CNavVolumeMarkupVolume { // CNavVolume +} + +namespace CNavVolumeSphere { // CNavVolume + constexpr std::ptrdiff_t m_vCenter = 0x70; // Vector + constexpr std::ptrdiff_t m_flRadius = 0x7C; // float +} + +namespace CNavVolumeSphericalShell { // CNavVolumeSphere + constexpr std::ptrdiff_t m_flRadiusInner = 0x80; // float +} + +namespace CNavVolumeVector { // CNavVolume + constexpr std::ptrdiff_t m_bHasBeenPreFiltered = 0x78; // bool +} + +namespace CNavWalkable { // CPointEntity +} + +namespace CNetworkOriginCellCoordQuantizedVector { + constexpr std::ptrdiff_t m_cellX = 0x10; // uint16_t + constexpr std::ptrdiff_t m_cellY = 0x12; // uint16_t + constexpr std::ptrdiff_t m_cellZ = 0x14; // uint16_t + constexpr std::ptrdiff_t m_nOutsideWorld = 0x16; // uint16_t + constexpr std::ptrdiff_t m_vecX = 0x18; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecY = 0x20; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecZ = 0x28; // CNetworkedQuantizedFloat +} + +namespace CNetworkOriginQuantizedVector { + constexpr std::ptrdiff_t m_vecX = 0x10; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecY = 0x18; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecZ = 0x20; // CNetworkedQuantizedFloat +} + +namespace CNetworkTransmitComponent { + constexpr std::ptrdiff_t m_nTransmitStateOwnedCounter = 0x16C; // uint8_t +} + +namespace CNetworkVelocityVector { + constexpr std::ptrdiff_t m_vecX = 0x10; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecY = 0x18; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecZ = 0x20; // CNetworkedQuantizedFloat +} + +namespace CNetworkViewOffsetVector { + constexpr std::ptrdiff_t m_vecX = 0x10; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecY = 0x18; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_vecZ = 0x20; // CNetworkedQuantizedFloat +} + +namespace CNetworkedSequenceOperation { + constexpr std::ptrdiff_t m_hSequence = 0x8; // HSequence + constexpr std::ptrdiff_t m_flPrevCycle = 0xC; // float + constexpr std::ptrdiff_t m_flCycle = 0x10; // float + constexpr std::ptrdiff_t m_flWeight = 0x14; // CNetworkedQuantizedFloat + constexpr std::ptrdiff_t m_bSequenceChangeNetworked = 0x1C; // bool + constexpr std::ptrdiff_t m_bDiscontinuity = 0x1D; // bool + constexpr std::ptrdiff_t m_flPrevCycleFromDiscontinuity = 0x20; // float + constexpr std::ptrdiff_t m_flPrevCycleForAnimEventDetection = 0x24; // float +} + +namespace CNullEntity { // CBaseEntity +} + +namespace COmniLight { // CBarnLight + constexpr std::ptrdiff_t m_flInnerAngle = 0x928; // float + constexpr std::ptrdiff_t m_flOuterAngle = 0x92C; // float + constexpr std::ptrdiff_t m_bShowLight = 0x930; // bool +} + +namespace COrnamentProp { // CDynamicProp + constexpr std::ptrdiff_t m_initialOwner = 0xB08; // CUtlSymbolLarge +} + +namespace CParticleSystem { // CBaseModelEntity + constexpr std::ptrdiff_t m_szSnapshotFileName = 0x700; // char[512] + constexpr std::ptrdiff_t m_bActive = 0x900; // bool + constexpr std::ptrdiff_t m_bFrozen = 0x901; // bool + constexpr std::ptrdiff_t m_flFreezeTransitionDuration = 0x904; // float + constexpr std::ptrdiff_t m_nStopType = 0x908; // int32_t + constexpr std::ptrdiff_t m_bAnimateDuringGameplayPause = 0x90C; // bool + constexpr std::ptrdiff_t m_iEffectIndex = 0x910; // CStrongHandle + constexpr std::ptrdiff_t m_flStartTime = 0x918; // GameTime_t + constexpr std::ptrdiff_t m_flPreSimTime = 0x91C; // float + constexpr std::ptrdiff_t m_vServerControlPoints = 0x920; // Vector[4] + constexpr std::ptrdiff_t m_iServerControlPointAssignments = 0x950; // uint8_t[4] + constexpr std::ptrdiff_t m_hControlPointEnts = 0x954; // CHandle[64] + constexpr std::ptrdiff_t m_bNoSave = 0xA54; // bool + constexpr std::ptrdiff_t m_bNoFreeze = 0xA55; // bool + constexpr std::ptrdiff_t m_bNoRamp = 0xA56; // bool + constexpr std::ptrdiff_t m_bStartActive = 0xA57; // bool + constexpr std::ptrdiff_t m_iszEffectName = 0xA58; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszControlPointNames = 0xA60; // CUtlSymbolLarge[64] + constexpr std::ptrdiff_t m_nDataCP = 0xC60; // int32_t + constexpr std::ptrdiff_t m_vecDataCPValue = 0xC64; // Vector + constexpr std::ptrdiff_t m_nTintCP = 0xC70; // int32_t + constexpr std::ptrdiff_t m_clrTint = 0xC74; // Color +} + +namespace CPathCorner { // CPointEntity + constexpr std::ptrdiff_t m_flWait = 0x4B0; // float + constexpr std::ptrdiff_t m_flRadius = 0x4B4; // float + constexpr std::ptrdiff_t m_OnPass = 0x4B8; // CEntityIOOutput +} + +namespace CPathCornerCrash { // CPathCorner +} + +namespace CPathKeyFrame { // CLogicalEntity + constexpr std::ptrdiff_t m_Origin = 0x4B0; // Vector + constexpr std::ptrdiff_t m_Angles = 0x4BC; // QAngle + constexpr std::ptrdiff_t m_qAngle = 0x4D0; // Quaternion + constexpr std::ptrdiff_t m_iNextKey = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flNextTime = 0x4E8; // float + constexpr std::ptrdiff_t m_pNextKey = 0x4F0; // CPathKeyFrame* + constexpr std::ptrdiff_t m_pPrevKey = 0x4F8; // CPathKeyFrame* + constexpr std::ptrdiff_t m_flSpeed = 0x500; // float +} + +namespace CPathParticleRope { // CBaseEntity + constexpr std::ptrdiff_t m_bStartActive = 0x4B0; // bool + constexpr std::ptrdiff_t m_flMaxSimulationTime = 0x4B4; // float + constexpr std::ptrdiff_t m_iszEffectName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_PathNodes_Name = 0x4C0; // CUtlVector + constexpr std::ptrdiff_t m_flParticleSpacing = 0x4D8; // float + constexpr std::ptrdiff_t m_flSlack = 0x4DC; // float + constexpr std::ptrdiff_t m_flRadius = 0x4E0; // float + constexpr std::ptrdiff_t m_ColorTint = 0x4E4; // Color + constexpr std::ptrdiff_t m_nEffectState = 0x4E8; // int32_t + constexpr std::ptrdiff_t m_iEffectIndex = 0x4F0; // CStrongHandle + constexpr std::ptrdiff_t m_PathNodes_Position = 0x4F8; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_TangentIn = 0x510; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_TangentOut = 0x528; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_Color = 0x540; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_PinEnabled = 0x558; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_PathNodes_RadiusScale = 0x570; // CNetworkUtlVectorBase +} + +namespace CPathParticleRopeAlias_path_particle_rope_clientside { // CPathParticleRope +} + +namespace CPathTrack { // CPointEntity + constexpr std::ptrdiff_t m_pnext = 0x4B0; // CPathTrack* + constexpr std::ptrdiff_t m_pprevious = 0x4B8; // CPathTrack* + constexpr std::ptrdiff_t m_paltpath = 0x4C0; // CPathTrack* + constexpr std::ptrdiff_t m_flRadius = 0x4C8; // float + constexpr std::ptrdiff_t m_length = 0x4CC; // float + constexpr std::ptrdiff_t m_altName = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nIterVal = 0x4D8; // int32_t + constexpr std::ptrdiff_t m_eOrientationType = 0x4DC; // TrackOrientationType_t + constexpr std::ptrdiff_t m_OnPass = 0x4E0; // CEntityIOOutput +} + +namespace CPhysBallSocket { // CPhysConstraint + constexpr std::ptrdiff_t m_flFriction = 0x508; // float + constexpr std::ptrdiff_t m_bEnableSwingLimit = 0x50C; // bool + constexpr std::ptrdiff_t m_flSwingLimit = 0x510; // float + constexpr std::ptrdiff_t m_bEnableTwistLimit = 0x514; // bool + constexpr std::ptrdiff_t m_flMinTwistAngle = 0x518; // float + constexpr std::ptrdiff_t m_flMaxTwistAngle = 0x51C; // float +} + +namespace CPhysBox { // CBreakable + constexpr std::ptrdiff_t m_damageType = 0x7C0; // int32_t + constexpr std::ptrdiff_t m_massScale = 0x7C4; // float + constexpr std::ptrdiff_t m_damageToEnableMotion = 0x7C8; // int32_t + constexpr std::ptrdiff_t m_flForceToEnableMotion = 0x7CC; // float + constexpr std::ptrdiff_t m_angPreferredCarryAngles = 0x7D0; // QAngle + constexpr std::ptrdiff_t m_bNotSolidToWorld = 0x7DC; // bool + constexpr std::ptrdiff_t m_bEnableUseOutput = 0x7DD; // bool + constexpr std::ptrdiff_t m_iExploitableByPlayer = 0x7E0; // int32_t + constexpr std::ptrdiff_t m_flTouchOutputPerEntityDelay = 0x7E4; // float + constexpr std::ptrdiff_t m_OnDamaged = 0x7E8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAwakened = 0x810; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMotionEnabled = 0x838; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPlayerUse = 0x860; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnStartTouch = 0x888; // CEntityIOOutput + constexpr std::ptrdiff_t m_hCarryingPlayer = 0x8B0; // CHandle +} + +namespace CPhysConstraint { // CLogicalEntity + constexpr std::ptrdiff_t m_nameAttach1 = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nameAttach2 = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_breakSound = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_forceLimit = 0x4D0; // float + constexpr std::ptrdiff_t m_torqueLimit = 0x4D4; // float + constexpr std::ptrdiff_t m_teleportTick = 0x4D8; // uint32_t + constexpr std::ptrdiff_t m_minTeleportDistance = 0x4DC; // float + constexpr std::ptrdiff_t m_OnBreak = 0x4E0; // CEntityIOOutput +} + +namespace CPhysExplosion { // CPointEntity + constexpr std::ptrdiff_t m_bExplodeOnSpawn = 0x4B0; // bool + constexpr std::ptrdiff_t m_flMagnitude = 0x4B4; // float + constexpr std::ptrdiff_t m_flDamage = 0x4B8; // float + constexpr std::ptrdiff_t m_radius = 0x4BC; // float + constexpr std::ptrdiff_t m_targetEntityName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flInnerRadius = 0x4C8; // float + constexpr std::ptrdiff_t m_flPushScale = 0x4CC; // float + constexpr std::ptrdiff_t m_bConvertToDebrisWhenPossible = 0x4D0; // bool + constexpr std::ptrdiff_t m_OnPushedPlayer = 0x4D8; // CEntityIOOutput +} + +namespace CPhysFixed { // CPhysConstraint + constexpr std::ptrdiff_t m_flLinearFrequency = 0x508; // float + constexpr std::ptrdiff_t m_flLinearDampingRatio = 0x50C; // float + constexpr std::ptrdiff_t m_flAngularFrequency = 0x510; // float + constexpr std::ptrdiff_t m_flAngularDampingRatio = 0x514; // float + constexpr std::ptrdiff_t m_bEnableLinearConstraint = 0x518; // bool + constexpr std::ptrdiff_t m_bEnableAngularConstraint = 0x519; // bool +} + +namespace CPhysForce { // CPointEntity + constexpr std::ptrdiff_t m_nameAttach = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_force = 0x4C0; // float + constexpr std::ptrdiff_t m_forceTime = 0x4C4; // float + constexpr std::ptrdiff_t m_attachedObject = 0x4C8; // CHandle + constexpr std::ptrdiff_t m_wasRestored = 0x4CC; // bool + constexpr std::ptrdiff_t m_integrator = 0x4D0; // CConstantForceController +} + +namespace CPhysHinge { // CPhysConstraint + constexpr std::ptrdiff_t m_soundInfo = 0x510; // ConstraintSoundInfo + constexpr std::ptrdiff_t m_NotifyMinLimitReached = 0x598; // CEntityIOOutput + constexpr std::ptrdiff_t m_NotifyMaxLimitReached = 0x5C0; // CEntityIOOutput + constexpr std::ptrdiff_t m_bAtMinLimit = 0x5E8; // bool + constexpr std::ptrdiff_t m_bAtMaxLimit = 0x5E9; // bool + constexpr std::ptrdiff_t m_hinge = 0x5EC; // constraint_hingeparams_t + constexpr std::ptrdiff_t m_hingeFriction = 0x62C; // float + constexpr std::ptrdiff_t m_systemLoadScale = 0x630; // float + constexpr std::ptrdiff_t m_bIsAxisLocal = 0x634; // bool + constexpr std::ptrdiff_t m_flMinRotation = 0x638; // float + constexpr std::ptrdiff_t m_flMaxRotation = 0x63C; // float + constexpr std::ptrdiff_t m_flInitialRotation = 0x640; // float + constexpr std::ptrdiff_t m_flMotorFrequency = 0x644; // float + constexpr std::ptrdiff_t m_flMotorDampingRatio = 0x648; // float + constexpr std::ptrdiff_t m_flAngleSpeed = 0x64C; // float + constexpr std::ptrdiff_t m_flAngleSpeedThreshold = 0x650; // float + constexpr std::ptrdiff_t m_OnStartMoving = 0x658; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnStopMoving = 0x680; // CEntityIOOutput +} + +namespace CPhysHingeAlias_phys_hinge_local { // CPhysHinge +} + +namespace CPhysImpact { // CPointEntity + constexpr std::ptrdiff_t m_damage = 0x4B0; // float + constexpr std::ptrdiff_t m_distance = 0x4B4; // float + constexpr std::ptrdiff_t m_directionEntityName = 0x4B8; // CUtlSymbolLarge +} + +namespace CPhysLength { // CPhysConstraint + constexpr std::ptrdiff_t m_offset = 0x508; // Vector[2] + constexpr std::ptrdiff_t m_vecAttach = 0x520; // Vector + constexpr std::ptrdiff_t m_addLength = 0x52C; // float + constexpr std::ptrdiff_t m_minLength = 0x530; // float + constexpr std::ptrdiff_t m_totalLength = 0x534; // float + constexpr std::ptrdiff_t m_bEnableCollision = 0x538; // bool +} + +namespace CPhysMagnet { // CBaseAnimGraph + constexpr std::ptrdiff_t m_OnMagnetAttach = 0x890; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnMagnetDetach = 0x8B8; // CEntityIOOutput + constexpr std::ptrdiff_t m_massScale = 0x8E0; // float + constexpr std::ptrdiff_t m_forceLimit = 0x8E4; // float + constexpr std::ptrdiff_t m_torqueLimit = 0x8E8; // float + constexpr std::ptrdiff_t m_MagnettedEntities = 0x8F0; // CUtlVector + constexpr std::ptrdiff_t m_bActive = 0x908; // bool + constexpr std::ptrdiff_t m_bHasHitSomething = 0x909; // bool + constexpr std::ptrdiff_t m_flTotalMass = 0x90C; // float + constexpr std::ptrdiff_t m_flRadius = 0x910; // float + constexpr std::ptrdiff_t m_flNextSuckTime = 0x914; // GameTime_t + constexpr std::ptrdiff_t m_iMaxObjectsAttached = 0x918; // int32_t +} + +namespace CPhysMotor { // CLogicalEntity + constexpr std::ptrdiff_t m_nameAttach = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hAttachedObject = 0x4B8; // CHandle + constexpr std::ptrdiff_t m_spinUp = 0x4BC; // float + constexpr std::ptrdiff_t m_additionalAcceleration = 0x4C0; // float + constexpr std::ptrdiff_t m_angularAcceleration = 0x4C4; // float + constexpr std::ptrdiff_t m_lastTime = 0x4C8; // GameTime_t + constexpr std::ptrdiff_t m_motor = 0x4E0; // CMotorController +} + +namespace CPhysPulley { // CPhysConstraint + constexpr std::ptrdiff_t m_position2 = 0x508; // Vector + constexpr std::ptrdiff_t m_offset = 0x514; // Vector[2] + constexpr std::ptrdiff_t m_addLength = 0x52C; // float + constexpr std::ptrdiff_t m_gearRatio = 0x530; // float +} + +namespace CPhysSlideConstraint { // CPhysConstraint + constexpr std::ptrdiff_t m_axisEnd = 0x510; // Vector + constexpr std::ptrdiff_t m_slideFriction = 0x51C; // float + constexpr std::ptrdiff_t m_systemLoadScale = 0x520; // float + constexpr std::ptrdiff_t m_initialOffset = 0x524; // float + constexpr std::ptrdiff_t m_bEnableLinearConstraint = 0x528; // bool + constexpr std::ptrdiff_t m_bEnableAngularConstraint = 0x529; // bool + constexpr std::ptrdiff_t m_flMotorFrequency = 0x52C; // float + constexpr std::ptrdiff_t m_flMotorDampingRatio = 0x530; // float + constexpr std::ptrdiff_t m_bUseEntityPivot = 0x534; // bool + constexpr std::ptrdiff_t m_soundInfo = 0x538; // ConstraintSoundInfo +} + +namespace CPhysThruster { // CPhysForce + constexpr std::ptrdiff_t m_localOrigin = 0x510; // Vector +} + +namespace CPhysTorque { // CPhysForce + constexpr std::ptrdiff_t m_axis = 0x510; // Vector +} + +namespace CPhysWheelConstraint { // CPhysConstraint + constexpr std::ptrdiff_t m_flSuspensionFrequency = 0x508; // float + constexpr std::ptrdiff_t m_flSuspensionDampingRatio = 0x50C; // float + constexpr std::ptrdiff_t m_flSuspensionHeightOffset = 0x510; // float + constexpr std::ptrdiff_t m_bEnableSuspensionLimit = 0x514; // bool + constexpr std::ptrdiff_t m_flMinSuspensionOffset = 0x518; // float + constexpr std::ptrdiff_t m_flMaxSuspensionOffset = 0x51C; // float + constexpr std::ptrdiff_t m_bEnableSteeringLimit = 0x520; // bool + constexpr std::ptrdiff_t m_flMinSteeringAngle = 0x524; // float + constexpr std::ptrdiff_t m_flMaxSteeringAngle = 0x528; // float + constexpr std::ptrdiff_t m_flSteeringAxisFriction = 0x52C; // float + constexpr std::ptrdiff_t m_flSpinAxisFriction = 0x530; // float +} + +namespace CPhysicalButton { // CBaseButton +} + +namespace CPhysicsEntitySolver { // CLogicalEntity + constexpr std::ptrdiff_t m_hMovingEntity = 0x4B8; // CHandle + constexpr std::ptrdiff_t m_hPhysicsBlocker = 0x4BC; // CHandle + constexpr std::ptrdiff_t m_separationDuration = 0x4C0; // float + constexpr std::ptrdiff_t m_cancelTime = 0x4C4; // GameTime_t +} + +namespace CPhysicsProp { // CBreakableProp + constexpr std::ptrdiff_t m_MotionEnabled = 0xA10; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAwakened = 0xA38; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAwake = 0xA60; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnAsleep = 0xA88; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPlayerUse = 0xAB0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPlayerPickup = 0xAD8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnOutOfWorld = 0xB00; // CEntityIOOutput + constexpr std::ptrdiff_t m_massScale = 0xB28; // float + constexpr std::ptrdiff_t m_inertiaScale = 0xB2C; // float + constexpr std::ptrdiff_t m_buoyancyScale = 0xB30; // float + constexpr std::ptrdiff_t m_damageType = 0xB34; // int32_t + constexpr std::ptrdiff_t m_damageToEnableMotion = 0xB38; // int32_t + constexpr std::ptrdiff_t m_flForceToEnableMotion = 0xB3C; // float + constexpr std::ptrdiff_t m_bThrownByPlayer = 0xB40; // bool + constexpr std::ptrdiff_t m_bDroppedByPlayer = 0xB41; // bool + constexpr std::ptrdiff_t m_bTouchedByPlayer = 0xB42; // bool + constexpr std::ptrdiff_t m_bFirstCollisionAfterLaunch = 0xB43; // bool + constexpr std::ptrdiff_t m_iExploitableByPlayer = 0xB44; // int32_t + constexpr std::ptrdiff_t m_bHasBeenAwakened = 0xB48; // bool + constexpr std::ptrdiff_t m_bIsOverrideProp = 0xB49; // bool + constexpr std::ptrdiff_t m_fNextCheckDisableMotionContactsTime = 0xB4C; // GameTime_t + constexpr std::ptrdiff_t m_iInitialGlowState = 0xB50; // int32_t + constexpr std::ptrdiff_t m_nGlowRange = 0xB54; // int32_t + constexpr std::ptrdiff_t m_nGlowRangeMin = 0xB58; // int32_t + constexpr std::ptrdiff_t m_glowColor = 0xB5C; // Color + constexpr std::ptrdiff_t m_bForceNavIgnore = 0xB60; // bool + constexpr std::ptrdiff_t m_bNoNavmeshBlocker = 0xB61; // bool + constexpr std::ptrdiff_t m_bForceNpcExclude = 0xB62; // bool + constexpr std::ptrdiff_t m_bShouldAutoConvertBackFromDebris = 0xB63; // bool + constexpr std::ptrdiff_t m_bMuteImpactEffects = 0xB64; // bool + constexpr std::ptrdiff_t m_bAcceptDamageFromHeldObjects = 0xB6C; // bool + constexpr std::ptrdiff_t m_bEnableUseOutput = 0xB6D; // bool + constexpr std::ptrdiff_t m_bAwake = 0xB6E; // bool + constexpr std::ptrdiff_t m_nCollisionGroupOverride = 0xB70; // int32_t +} + +namespace CPhysicsPropMultiplayer { // CPhysicsProp +} + +namespace CPhysicsPropOverride { // CPhysicsProp +} + +namespace CPhysicsPropRespawnable { // CPhysicsProp + constexpr std::ptrdiff_t m_vOriginalSpawnOrigin = 0xB78; // Vector + constexpr std::ptrdiff_t m_vOriginalSpawnAngles = 0xB84; // QAngle + constexpr std::ptrdiff_t m_vOriginalMins = 0xB90; // Vector + constexpr std::ptrdiff_t m_vOriginalMaxs = 0xB9C; // Vector + constexpr std::ptrdiff_t m_flRespawnDuration = 0xBA8; // float +} + +namespace CPhysicsShake { + constexpr std::ptrdiff_t m_force = 0x8; // Vector +} + +namespace CPhysicsSpring { // CBaseEntity + constexpr std::ptrdiff_t m_flFrequency = 0x4B8; // float + constexpr std::ptrdiff_t m_flDampingRatio = 0x4BC; // float + constexpr std::ptrdiff_t m_flRestLength = 0x4C0; // float + constexpr std::ptrdiff_t m_nameAttachStart = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nameAttachEnd = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_start = 0x4D8; // Vector + constexpr std::ptrdiff_t m_end = 0x4E4; // Vector + constexpr std::ptrdiff_t m_teleportTick = 0x4F0; // uint32_t +} + +namespace CPhysicsWire { // CBaseEntity + constexpr std::ptrdiff_t m_nDensity = 0x4B0; // int32_t +} + +namespace CPlantedC4 { // CBaseAnimGraph + constexpr std::ptrdiff_t m_bBombTicking = 0x890; // bool + constexpr std::ptrdiff_t m_flC4Blow = 0x894; // GameTime_t + constexpr std::ptrdiff_t m_nBombSite = 0x898; // int32_t + constexpr std::ptrdiff_t m_nSourceSoundscapeHash = 0x89C; // int32_t + constexpr std::ptrdiff_t m_OnBombDefused = 0x8A0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnBombBeginDefuse = 0x8C8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnBombDefuseAborted = 0x8F0; // CEntityIOOutput + constexpr std::ptrdiff_t m_bCannotBeDefused = 0x918; // bool + constexpr std::ptrdiff_t m_entitySpottedState = 0x920; // EntitySpottedState_t + constexpr std::ptrdiff_t m_nSpotRules = 0x938; // int32_t + constexpr std::ptrdiff_t m_bTrainingPlacedByPlayer = 0x93C; // bool + constexpr std::ptrdiff_t m_bHasExploded = 0x93D; // bool + constexpr std::ptrdiff_t m_flTimerLength = 0x940; // float + constexpr std::ptrdiff_t m_bBeingDefused = 0x944; // bool + constexpr std::ptrdiff_t m_fLastDefuseTime = 0x94C; // GameTime_t + constexpr std::ptrdiff_t m_flDefuseLength = 0x954; // float + constexpr std::ptrdiff_t m_flDefuseCountDown = 0x958; // GameTime_t + constexpr std::ptrdiff_t m_bBombDefused = 0x95C; // bool + constexpr std::ptrdiff_t m_hBombDefuser = 0x960; // CHandle + constexpr std::ptrdiff_t m_hControlPanel = 0x964; // CHandle + constexpr std::ptrdiff_t m_iProgressBarTime = 0x968; // int32_t + constexpr std::ptrdiff_t m_bVoiceAlertFired = 0x96C; // bool + constexpr std::ptrdiff_t m_bVoiceAlertPlayed = 0x96D; // bool[4] + constexpr std::ptrdiff_t m_flNextBotBeepTime = 0x974; // GameTime_t + constexpr std::ptrdiff_t m_bPlantedAfterPickup = 0x97C; // bool + constexpr std::ptrdiff_t m_angCatchUpToPlayerEye = 0x980; // QAngle + constexpr std::ptrdiff_t m_flLastSpinDetectionTime = 0x98C; // GameTime_t +} + +namespace CPlatTrigger { // CBaseModelEntity + constexpr std::ptrdiff_t m_pPlatform = 0x700; // CHandle +} + +namespace CPlayerControllerComponent { + constexpr std::ptrdiff_t __m_pChainEntity = 0x8; // CNetworkVarChainer +} + +namespace CPlayerPawnComponent { + constexpr std::ptrdiff_t __m_pChainEntity = 0x8; // CNetworkVarChainer +} + +namespace CPlayerPing { // CBaseEntity + constexpr std::ptrdiff_t m_hPlayer = 0x4B8; // CHandle + constexpr std::ptrdiff_t m_hPingedEntity = 0x4BC; // CHandle + constexpr std::ptrdiff_t m_iType = 0x4C0; // int32_t + constexpr std::ptrdiff_t m_bUrgent = 0x4C4; // bool + constexpr std::ptrdiff_t m_szPlaceName = 0x4C5; // char[18] +} + +namespace CPlayerSprayDecal { // CModelPointEntity + constexpr std::ptrdiff_t m_nUniqueID = 0x700; // int32_t + constexpr std::ptrdiff_t m_unAccountID = 0x704; // uint32_t + constexpr std::ptrdiff_t m_unTraceID = 0x708; // uint32_t + constexpr std::ptrdiff_t m_rtGcTime = 0x70C; // uint32_t + constexpr std::ptrdiff_t m_vecEndPos = 0x710; // Vector + constexpr std::ptrdiff_t m_vecStart = 0x71C; // Vector + constexpr std::ptrdiff_t m_vecLeft = 0x728; // Vector + constexpr std::ptrdiff_t m_vecNormal = 0x734; // Vector + constexpr std::ptrdiff_t m_nPlayer = 0x740; // int32_t + constexpr std::ptrdiff_t m_nEntity = 0x744; // int32_t + constexpr std::ptrdiff_t m_nHitbox = 0x748; // int32_t + constexpr std::ptrdiff_t m_flCreationTime = 0x74C; // float + constexpr std::ptrdiff_t m_nTintID = 0x750; // int32_t + constexpr std::ptrdiff_t m_nVersion = 0x754; // uint8_t + constexpr std::ptrdiff_t m_ubSignature = 0x755; // uint8_t[128] +} + +namespace CPlayerVisibility { // CBaseEntity + constexpr std::ptrdiff_t m_flVisibilityStrength = 0x4B0; // float + constexpr std::ptrdiff_t m_flFogDistanceMultiplier = 0x4B4; // float + constexpr std::ptrdiff_t m_flFogMaxDensityMultiplier = 0x4B8; // float + constexpr std::ptrdiff_t m_flFadeTime = 0x4BC; // float + constexpr std::ptrdiff_t m_bStartDisabled = 0x4C0; // bool + constexpr std::ptrdiff_t m_bIsEnabled = 0x4C1; // bool +} + +namespace CPlayer_AutoaimServices { // CPlayerPawnComponent +} + +namespace CPlayer_CameraServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_vecCsViewPunchAngle = 0x40; // QAngle + constexpr std::ptrdiff_t m_nCsViewPunchAngleTick = 0x4C; // GameTick_t + constexpr std::ptrdiff_t m_flCsViewPunchAngleTickRatio = 0x50; // float + constexpr std::ptrdiff_t m_PlayerFog = 0x58; // fogplayerparams_t + constexpr std::ptrdiff_t m_hColorCorrectionCtrl = 0x98; // CHandle + constexpr std::ptrdiff_t m_hViewEntity = 0x9C; // CHandle + constexpr std::ptrdiff_t m_hTonemapController = 0xA0; // CHandle + constexpr std::ptrdiff_t m_audio = 0xA8; // audioparams_t + constexpr std::ptrdiff_t m_PostProcessingVolumes = 0x120; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_flOldPlayerZ = 0x138; // float + constexpr std::ptrdiff_t m_flOldPlayerViewOffsetZ = 0x13C; // float + constexpr std::ptrdiff_t m_hTriggerSoundscapeList = 0x158; // CUtlVector> +} + +namespace CPlayer_FlashlightServices { // CPlayerPawnComponent +} + +namespace CPlayer_ItemServices { // CPlayerPawnComponent +} + +namespace CPlayer_MovementServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_nImpulse = 0x40; // int32_t + constexpr std::ptrdiff_t m_nButtons = 0x48; // CInButtonState + constexpr std::ptrdiff_t m_nQueuedButtonDownMask = 0x68; // uint64_t + constexpr std::ptrdiff_t m_nQueuedButtonChangeMask = 0x70; // uint64_t + constexpr std::ptrdiff_t m_nButtonDoublePressed = 0x78; // uint64_t + constexpr std::ptrdiff_t m_pButtonPressedCmdNumber = 0x80; // uint32_t[64] + constexpr std::ptrdiff_t m_nLastCommandNumberProcessed = 0x180; // uint32_t + constexpr std::ptrdiff_t m_nToggleButtonDownMask = 0x188; // uint64_t + constexpr std::ptrdiff_t m_flMaxspeed = 0x190; // float + constexpr std::ptrdiff_t m_arrForceSubtickMoveWhen = 0x194; // float[4] + constexpr std::ptrdiff_t m_flForwardMove = 0x1A4; // float + constexpr std::ptrdiff_t m_flLeftMove = 0x1A8; // float + constexpr std::ptrdiff_t m_flUpMove = 0x1AC; // float + constexpr std::ptrdiff_t m_vecLastMovementImpulses = 0x1B0; // Vector + constexpr std::ptrdiff_t m_vecOldViewAngles = 0x1BC; // QAngle +} + +namespace CPlayer_MovementServices_Humanoid { // CPlayer_MovementServices + constexpr std::ptrdiff_t m_flStepSoundTime = 0x1D0; // float + constexpr std::ptrdiff_t m_flFallVelocity = 0x1D4; // float + constexpr std::ptrdiff_t m_bInCrouch = 0x1D8; // bool + constexpr std::ptrdiff_t m_nCrouchState = 0x1DC; // uint32_t + constexpr std::ptrdiff_t m_flCrouchTransitionStartTime = 0x1E0; // GameTime_t + constexpr std::ptrdiff_t m_bDucked = 0x1E4; // bool + constexpr std::ptrdiff_t m_bDucking = 0x1E5; // bool + constexpr std::ptrdiff_t m_bInDuckJump = 0x1E6; // bool + constexpr std::ptrdiff_t m_groundNormal = 0x1E8; // Vector + constexpr std::ptrdiff_t m_flSurfaceFriction = 0x1F4; // float + constexpr std::ptrdiff_t m_surfaceProps = 0x1F8; // CUtlStringToken + constexpr std::ptrdiff_t m_nStepside = 0x208; // int32_t + constexpr std::ptrdiff_t m_iTargetVolume = 0x20C; // int32_t + constexpr std::ptrdiff_t m_vecSmoothedVelocity = 0x210; // Vector +} + +namespace CPlayer_ObserverServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_iObserverMode = 0x40; // uint8_t + constexpr std::ptrdiff_t m_hObserverTarget = 0x44; // CHandle + constexpr std::ptrdiff_t m_iObserverLastMode = 0x48; // ObserverMode_t + constexpr std::ptrdiff_t m_bForcedObserverMode = 0x4C; // bool +} + +namespace CPlayer_UseServices { // CPlayerPawnComponent +} + +namespace CPlayer_ViewModelServices { // CPlayerPawnComponent +} + +namespace CPlayer_WaterServices { // CPlayerPawnComponent +} + +namespace CPlayer_WeaponServices { // CPlayerPawnComponent + constexpr std::ptrdiff_t m_bAllowSwitchToNoWeapon = 0x40; // bool + constexpr std::ptrdiff_t m_hMyWeapons = 0x48; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_hActiveWeapon = 0x60; // CHandle + constexpr std::ptrdiff_t m_hLastWeapon = 0x64; // CHandle + constexpr std::ptrdiff_t m_iAmmo = 0x68; // uint16_t[32] + constexpr std::ptrdiff_t m_bPreventWeaponPickup = 0xA8; // bool +} + +namespace CPointAngleSensor { // CPointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_nLookAtName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hTargetEntity = 0x4C0; // CHandle + constexpr std::ptrdiff_t m_hLookAtEntity = 0x4C4; // CHandle + constexpr std::ptrdiff_t m_flDuration = 0x4C8; // float + constexpr std::ptrdiff_t m_flDotTolerance = 0x4CC; // float + constexpr std::ptrdiff_t m_flFacingTime = 0x4D0; // GameTime_t + constexpr std::ptrdiff_t m_bFired = 0x4D4; // bool + constexpr std::ptrdiff_t m_OnFacingLookat = 0x4D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnNotFacingLookat = 0x500; // CEntityIOOutput + constexpr std::ptrdiff_t m_TargetDir = 0x528; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_FacingPercentage = 0x550; // CEntityOutputTemplate +} + +namespace CPointAngularVelocitySensor { // CPointEntity + constexpr std::ptrdiff_t m_hTargetEntity = 0x4B0; // CHandle + constexpr std::ptrdiff_t m_flThreshold = 0x4B4; // float + constexpr std::ptrdiff_t m_nLastCompareResult = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_nLastFireResult = 0x4BC; // int32_t + constexpr std::ptrdiff_t m_flFireTime = 0x4C0; // GameTime_t + constexpr std::ptrdiff_t m_flFireInterval = 0x4C4; // float + constexpr std::ptrdiff_t m_flLastAngVelocity = 0x4C8; // float + constexpr std::ptrdiff_t m_lastOrientation = 0x4CC; // QAngle + constexpr std::ptrdiff_t m_vecAxis = 0x4D8; // Vector + constexpr std::ptrdiff_t m_bUseHelper = 0x4E4; // bool + constexpr std::ptrdiff_t m_AngularVelocity = 0x4E8; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnLessThan = 0x510; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnLessThanOrEqualTo = 0x538; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnGreaterThan = 0x560; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnGreaterThanOrEqualTo = 0x588; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnEqualTo = 0x5B0; // CEntityIOOutput +} + +namespace CPointBroadcastClientCommand { // CPointEntity +} + +namespace CPointCamera { // CBaseEntity + constexpr std::ptrdiff_t m_FOV = 0x4B0; // float + constexpr std::ptrdiff_t m_Resolution = 0x4B4; // float + constexpr std::ptrdiff_t m_bFogEnable = 0x4B8; // bool + constexpr std::ptrdiff_t m_FogColor = 0x4B9; // Color + constexpr std::ptrdiff_t m_flFogStart = 0x4C0; // float + constexpr std::ptrdiff_t m_flFogEnd = 0x4C4; // float + constexpr std::ptrdiff_t m_flFogMaxDensity = 0x4C8; // float + constexpr std::ptrdiff_t m_bActive = 0x4CC; // bool + constexpr std::ptrdiff_t m_bUseScreenAspectRatio = 0x4CD; // bool + constexpr std::ptrdiff_t m_flAspectRatio = 0x4D0; // float + constexpr std::ptrdiff_t m_bNoSky = 0x4D4; // bool + constexpr std::ptrdiff_t m_fBrightness = 0x4D8; // float + constexpr std::ptrdiff_t m_flZFar = 0x4DC; // float + constexpr std::ptrdiff_t m_flZNear = 0x4E0; // float + constexpr std::ptrdiff_t m_bCanHLTVUse = 0x4E4; // bool + constexpr std::ptrdiff_t m_bDofEnabled = 0x4E5; // bool + constexpr std::ptrdiff_t m_flDofNearBlurry = 0x4E8; // float + constexpr std::ptrdiff_t m_flDofNearCrisp = 0x4EC; // float + constexpr std::ptrdiff_t m_flDofFarCrisp = 0x4F0; // float + constexpr std::ptrdiff_t m_flDofFarBlurry = 0x4F4; // float + constexpr std::ptrdiff_t m_flDofTiltToGround = 0x4F8; // float + constexpr std::ptrdiff_t m_TargetFOV = 0x4FC; // float + constexpr std::ptrdiff_t m_DegreesPerSecond = 0x500; // float + constexpr std::ptrdiff_t m_bIsOn = 0x504; // bool + constexpr std::ptrdiff_t m_pNext = 0x508; // CPointCamera* +} + +namespace CPointCameraVFOV { // CPointCamera + constexpr std::ptrdiff_t m_flVerticalFOV = 0x510; // float +} + +namespace CPointClientCommand { // CPointEntity +} + +namespace CPointClientUIDialog { // CBaseClientUIEntity + constexpr std::ptrdiff_t m_hActivator = 0x8B0; // CHandle + constexpr std::ptrdiff_t m_bStartEnabled = 0x8B4; // bool +} + +namespace CPointClientUIWorldPanel { // CBaseClientUIEntity + constexpr std::ptrdiff_t m_bIgnoreInput = 0x8B0; // bool + constexpr std::ptrdiff_t m_bLit = 0x8B1; // bool + constexpr std::ptrdiff_t m_bFollowPlayerAcrossTeleport = 0x8B2; // bool + constexpr std::ptrdiff_t m_flWidth = 0x8B4; // float + constexpr std::ptrdiff_t m_flHeight = 0x8B8; // float + constexpr std::ptrdiff_t m_flDPI = 0x8BC; // float + constexpr std::ptrdiff_t m_flInteractDistance = 0x8C0; // float + constexpr std::ptrdiff_t m_flDepthOffset = 0x8C4; // float + constexpr std::ptrdiff_t m_unOwnerContext = 0x8C8; // uint32_t + constexpr std::ptrdiff_t m_unHorizontalAlign = 0x8CC; // uint32_t + constexpr std::ptrdiff_t m_unVerticalAlign = 0x8D0; // uint32_t + constexpr std::ptrdiff_t m_unOrientation = 0x8D4; // uint32_t + constexpr std::ptrdiff_t m_bAllowInteractionFromAllSceneWorlds = 0x8D8; // bool + constexpr std::ptrdiff_t m_vecCSSClasses = 0x8E0; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_bOpaque = 0x8F8; // bool + constexpr std::ptrdiff_t m_bNoDepth = 0x8F9; // bool + constexpr std::ptrdiff_t m_bRenderBackface = 0x8FA; // bool + constexpr std::ptrdiff_t m_bUseOffScreenIndicator = 0x8FB; // bool + constexpr std::ptrdiff_t m_bExcludeFromSaveGames = 0x8FC; // bool + constexpr std::ptrdiff_t m_bGrabbable = 0x8FD; // bool + constexpr std::ptrdiff_t m_bOnlyRenderToTexture = 0x8FE; // bool + constexpr std::ptrdiff_t m_bDisableMipGen = 0x8FF; // bool + constexpr std::ptrdiff_t m_nExplicitImageLayout = 0x900; // int32_t +} + +namespace CPointClientUIWorldTextPanel { // CPointClientUIWorldPanel + constexpr std::ptrdiff_t m_messageText = 0x908; // char[512] +} + +namespace CPointCommentaryNode { // CBaseAnimGraph + constexpr std::ptrdiff_t m_iszPreCommands = 0x890; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszPostCommands = 0x898; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszCommentaryFile = 0x8A0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszViewTarget = 0x8A8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hViewTarget = 0x8B0; // CHandle + constexpr std::ptrdiff_t m_hViewTargetAngles = 0x8B4; // CHandle + constexpr std::ptrdiff_t m_iszViewPosition = 0x8B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hViewPosition = 0x8C0; // CHandle + constexpr std::ptrdiff_t m_hViewPositionMover = 0x8C4; // CHandle + constexpr std::ptrdiff_t m_bPreventMovement = 0x8C8; // bool + constexpr std::ptrdiff_t m_bUnderCrosshair = 0x8C9; // bool + constexpr std::ptrdiff_t m_bUnstoppable = 0x8CA; // bool + constexpr std::ptrdiff_t m_flFinishedTime = 0x8CC; // GameTime_t + constexpr std::ptrdiff_t m_vecFinishOrigin = 0x8D0; // Vector + constexpr std::ptrdiff_t m_vecOriginalAngles = 0x8DC; // QAngle + constexpr std::ptrdiff_t m_vecFinishAngles = 0x8E8; // QAngle + constexpr std::ptrdiff_t m_bPreventChangesWhileMoving = 0x8F4; // bool + constexpr std::ptrdiff_t m_bDisabled = 0x8F5; // bool + constexpr std::ptrdiff_t m_vecTeleportOrigin = 0x8F8; // Vector + constexpr std::ptrdiff_t m_flAbortedPlaybackAt = 0x904; // GameTime_t + constexpr std::ptrdiff_t m_pOnCommentaryStarted = 0x908; // CEntityIOOutput + constexpr std::ptrdiff_t m_pOnCommentaryStopped = 0x930; // CEntityIOOutput + constexpr std::ptrdiff_t m_bActive = 0x958; // bool + constexpr std::ptrdiff_t m_flStartTime = 0x95C; // GameTime_t + constexpr std::ptrdiff_t m_flStartTimeInCommentary = 0x960; // float + constexpr std::ptrdiff_t m_iszTitle = 0x968; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSpeakers = 0x970; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iNodeNumber = 0x978; // int32_t + constexpr std::ptrdiff_t m_iNodeNumberMax = 0x97C; // int32_t + constexpr std::ptrdiff_t m_bListenedTo = 0x980; // bool +} + +namespace CPointEntity { // CBaseEntity +} + +namespace CPointEntityFinder { // CBaseEntity + constexpr std::ptrdiff_t m_hEntity = 0x4B0; // CHandle + constexpr std::ptrdiff_t m_iFilterName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFilter = 0x4C0; // CHandle + constexpr std::ptrdiff_t m_iRefName = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hReference = 0x4D0; // CHandle + constexpr std::ptrdiff_t m_FindMethod = 0x4D4; // EntFinderMethod_t + constexpr std::ptrdiff_t m_OnFoundEntity = 0x4D8; // CEntityIOOutput +} + +namespace CPointGamestatsCounter { // CPointEntity + constexpr std::ptrdiff_t m_strStatisticName = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bDisabled = 0x4B8; // bool +} + +namespace CPointGiveAmmo { // CPointEntity + constexpr std::ptrdiff_t m_pActivator = 0x4B0; // CHandle +} + +namespace CPointHurt { // CPointEntity + constexpr std::ptrdiff_t m_nDamage = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_bitsDamageType = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_flRadius = 0x4B8; // float + constexpr std::ptrdiff_t m_flDelay = 0x4BC; // float + constexpr std::ptrdiff_t m_strTarget = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pActivator = 0x4C8; // CHandle +} + +namespace CPointPrefab { // CServerOnlyPointEntity + constexpr std::ptrdiff_t m_targetMapName = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_forceWorldGroupID = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_associatedRelayTargetName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_fixupNames = 0x4C8; // bool + constexpr std::ptrdiff_t m_bLoadDynamic = 0x4C9; // bool + constexpr std::ptrdiff_t m_associatedRelayEntity = 0x4CC; // CHandle +} + +namespace CPointProximitySensor { // CPointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_hTargetEntity = 0x4B4; // CHandle + constexpr std::ptrdiff_t m_Distance = 0x4B8; // CEntityOutputTemplate +} + +namespace CPointPulse { // CBaseEntity + constexpr std::ptrdiff_t m_sNameFixupStaticPrefix = 0x5C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sNameFixupParent = 0x5D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_sNameFixupLocal = 0x5D8; // CUtlSymbolLarge +} + +namespace CPointPush { // CPointEntity + constexpr std::ptrdiff_t m_bEnabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_flMagnitude = 0x4B4; // float + constexpr std::ptrdiff_t m_flRadius = 0x4B8; // float + constexpr std::ptrdiff_t m_flInnerRadius = 0x4BC; // float + constexpr std::ptrdiff_t m_flConeOfInfluence = 0x4C0; // float + constexpr std::ptrdiff_t m_iszFilterName = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFilter = 0x4D0; // CHandle +} + +namespace CPointScript { // CBaseEntity +} + +namespace CPointServerCommand { // CPointEntity +} + +namespace CPointTeleport { // CServerOnlyPointEntity + constexpr std::ptrdiff_t m_vSaveOrigin = 0x4B0; // Vector + constexpr std::ptrdiff_t m_vSaveAngles = 0x4BC; // QAngle + constexpr std::ptrdiff_t m_bTeleportParentedEntities = 0x4C8; // bool + constexpr std::ptrdiff_t m_bTeleportUseCurrentAngle = 0x4C9; // bool +} + +namespace CPointTemplate { // CLogicalEntity + constexpr std::ptrdiff_t m_iszWorldName = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSource2EntityLumpName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszEntityFilterName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flTimeoutInterval = 0x4C8; // float + constexpr std::ptrdiff_t m_bAsynchronouslySpawnEntities = 0x4CC; // bool + constexpr std::ptrdiff_t m_pOutputOnSpawned = 0x4D0; // CEntityIOOutput + constexpr std::ptrdiff_t m_clientOnlyEntityBehavior = 0x4F8; // PointTemplateClientOnlyEntityBehavior_t + constexpr std::ptrdiff_t m_ownerSpawnGroupType = 0x4FC; // PointTemplateOwnerSpawnGroupType_t + constexpr std::ptrdiff_t m_createdSpawnGroupHandles = 0x500; // CUtlVector + constexpr std::ptrdiff_t m_SpawnedEntityHandles = 0x518; // CUtlVector + constexpr std::ptrdiff_t m_ScriptSpawnCallback = 0x530; // HSCRIPT + constexpr std::ptrdiff_t m_ScriptCallbackScope = 0x538; // HSCRIPT +} + +namespace CPointValueRemapper { // CBaseEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_bUpdateOnClient = 0x4B1; // bool + constexpr std::ptrdiff_t m_nInputType = 0x4B4; // ValueRemapperInputType_t + constexpr std::ptrdiff_t m_iszRemapLineStartName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszRemapLineEndName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hRemapLineStart = 0x4C8; // CHandle + constexpr std::ptrdiff_t m_hRemapLineEnd = 0x4CC; // CHandle + constexpr std::ptrdiff_t m_flMaximumChangePerSecond = 0x4D0; // float + constexpr std::ptrdiff_t m_flDisengageDistance = 0x4D4; // float + constexpr std::ptrdiff_t m_flEngageDistance = 0x4D8; // float + constexpr std::ptrdiff_t m_bRequiresUseKey = 0x4DC; // bool + constexpr std::ptrdiff_t m_nOutputType = 0x4E0; // ValueRemapperOutputType_t + constexpr std::ptrdiff_t m_iszOutputEntityName = 0x4E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOutputEntity2Name = 0x4F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOutputEntity3Name = 0x4F8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOutputEntity4Name = 0x500; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hOutputEntities = 0x508; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_nHapticsType = 0x520; // ValueRemapperHapticsType_t + constexpr std::ptrdiff_t m_nMomentumType = 0x524; // ValueRemapperMomentumType_t + constexpr std::ptrdiff_t m_flMomentumModifier = 0x528; // float + constexpr std::ptrdiff_t m_flSnapValue = 0x52C; // float + constexpr std::ptrdiff_t m_flCurrentMomentum = 0x530; // float + constexpr std::ptrdiff_t m_nRatchetType = 0x534; // ValueRemapperRatchetType_t + constexpr std::ptrdiff_t m_flRatchetOffset = 0x538; // float + constexpr std::ptrdiff_t m_flInputOffset = 0x53C; // float + constexpr std::ptrdiff_t m_bEngaged = 0x540; // bool + constexpr std::ptrdiff_t m_bFirstUpdate = 0x541; // bool + constexpr std::ptrdiff_t m_flPreviousValue = 0x544; // float + constexpr std::ptrdiff_t m_flPreviousUpdateTickTime = 0x548; // GameTime_t + constexpr std::ptrdiff_t m_vecPreviousTestPoint = 0x54C; // Vector + constexpr std::ptrdiff_t m_hUsingPlayer = 0x558; // CHandle + constexpr std::ptrdiff_t m_flCustomOutputValue = 0x55C; // float + constexpr std::ptrdiff_t m_iszSoundEngage = 0x560; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSoundDisengage = 0x568; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSoundReachedValueZero = 0x570; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSoundReachedValueOne = 0x578; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSoundMovingLoop = 0x580; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Position = 0x590; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_PositionDelta = 0x5B8; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_OnReachedValueZero = 0x5E0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnReachedValueOne = 0x608; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnReachedValueCustom = 0x630; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnEngage = 0x658; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnDisengage = 0x680; // CEntityIOOutput +} + +namespace CPointVelocitySensor { // CPointEntity + constexpr std::ptrdiff_t m_hTargetEntity = 0x4B0; // CHandle + constexpr std::ptrdiff_t m_vecAxis = 0x4B4; // Vector + constexpr std::ptrdiff_t m_bEnabled = 0x4C0; // bool + constexpr std::ptrdiff_t m_fPrevVelocity = 0x4C4; // float + constexpr std::ptrdiff_t m_flAvgInterval = 0x4C8; // float + constexpr std::ptrdiff_t m_Velocity = 0x4D0; // CEntityOutputTemplate +} + +namespace CPointWorldText { // CModelPointEntity + constexpr std::ptrdiff_t m_messageText = 0x700; // char[512] + constexpr std::ptrdiff_t m_FontName = 0x900; // char[64] + constexpr std::ptrdiff_t m_bEnabled = 0x940; // bool + constexpr std::ptrdiff_t m_bFullbright = 0x941; // bool + constexpr std::ptrdiff_t m_flWorldUnitsPerPx = 0x944; // float + constexpr std::ptrdiff_t m_flFontSize = 0x948; // float + constexpr std::ptrdiff_t m_flDepthOffset = 0x94C; // float + constexpr std::ptrdiff_t m_Color = 0x950; // Color + constexpr std::ptrdiff_t m_nJustifyHorizontal = 0x954; // PointWorldTextJustifyHorizontal_t + constexpr std::ptrdiff_t m_nJustifyVertical = 0x958; // PointWorldTextJustifyVertical_t + constexpr std::ptrdiff_t m_nReorientMode = 0x95C; // PointWorldTextReorientMode_t +} + +namespace CPostProcessingVolume { // CBaseTrigger + constexpr std::ptrdiff_t m_hPostSettings = 0x8B8; // CStrongHandle + constexpr std::ptrdiff_t m_flFadeDuration = 0x8C0; // float + constexpr std::ptrdiff_t m_flMinLogExposure = 0x8C4; // float + constexpr std::ptrdiff_t m_flMaxLogExposure = 0x8C8; // float + constexpr std::ptrdiff_t m_flMinExposure = 0x8CC; // float + constexpr std::ptrdiff_t m_flMaxExposure = 0x8D0; // float + constexpr std::ptrdiff_t m_flExposureCompensation = 0x8D4; // float + constexpr std::ptrdiff_t m_flExposureFadeSpeedUp = 0x8D8; // float + constexpr std::ptrdiff_t m_flExposureFadeSpeedDown = 0x8DC; // float + constexpr std::ptrdiff_t m_flTonemapEVSmoothingRange = 0x8E0; // float + constexpr std::ptrdiff_t m_bMaster = 0x8E4; // bool + constexpr std::ptrdiff_t m_bExposureControl = 0x8E5; // bool + constexpr std::ptrdiff_t m_flRate = 0x8E8; // float + constexpr std::ptrdiff_t m_flTonemapPercentTarget = 0x8EC; // float + constexpr std::ptrdiff_t m_flTonemapPercentBrightPixels = 0x8F0; // float + constexpr std::ptrdiff_t m_flTonemapMinAvgLum = 0x8F4; // float +} + +namespace CPrecipitation { // CBaseTrigger +} + +namespace CPrecipitationBlocker { // CBaseModelEntity +} + +namespace CPrecipitationVData { // CEntitySubclassVDataBase + constexpr std::ptrdiff_t m_szParticlePrecipitationEffect = 0x28; // CResourceNameTyped> + constexpr std::ptrdiff_t m_flInnerDistance = 0x108; // float + constexpr std::ptrdiff_t m_nAttachType = 0x10C; // ParticleAttachment_t + constexpr std::ptrdiff_t m_bBatchSameVolumeType = 0x110; // bool + constexpr std::ptrdiff_t m_nRTEnvCP = 0x114; // int32_t + constexpr std::ptrdiff_t m_nRTEnvCPComponent = 0x118; // int32_t + constexpr std::ptrdiff_t m_szModifier = 0x120; // CUtlString +} + +namespace CPredictedViewModel { // CBaseViewModel +} + +namespace CProjectedDecal { // CPointEntity + constexpr std::ptrdiff_t m_nTexture = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_flDistance = 0x4B4; // float +} + +namespace CPropDoorRotating { // CBasePropDoor + constexpr std::ptrdiff_t m_vecAxis = 0xD98; // Vector + constexpr std::ptrdiff_t m_flDistance = 0xDA4; // float + constexpr std::ptrdiff_t m_eSpawnPosition = 0xDA8; // PropDoorRotatingSpawnPos_t + constexpr std::ptrdiff_t m_eOpenDirection = 0xDAC; // PropDoorRotatingOpenDirection_e + constexpr std::ptrdiff_t m_eCurrentOpenDirection = 0xDB0; // PropDoorRotatingOpenDirection_e + constexpr std::ptrdiff_t m_flAjarAngle = 0xDB4; // float + constexpr std::ptrdiff_t m_angRotationAjarDeprecated = 0xDB8; // QAngle + constexpr std::ptrdiff_t m_angRotationClosed = 0xDC4; // QAngle + constexpr std::ptrdiff_t m_angRotationOpenForward = 0xDD0; // QAngle + constexpr std::ptrdiff_t m_angRotationOpenBack = 0xDDC; // QAngle + constexpr std::ptrdiff_t m_angGoal = 0xDE8; // QAngle + constexpr std::ptrdiff_t m_vecForwardBoundsMin = 0xDF4; // Vector + constexpr std::ptrdiff_t m_vecForwardBoundsMax = 0xE00; // Vector + constexpr std::ptrdiff_t m_vecBackBoundsMin = 0xE0C; // Vector + constexpr std::ptrdiff_t m_vecBackBoundsMax = 0xE18; // Vector + constexpr std::ptrdiff_t m_bAjarDoorShouldntAlwaysOpen = 0xE24; // bool + constexpr std::ptrdiff_t m_hEntityBlocker = 0xE28; // CHandle +} + +namespace CPropDoorRotatingBreakable { // CPropDoorRotating + constexpr std::ptrdiff_t m_bBreakable = 0xE30; // bool + constexpr std::ptrdiff_t m_isAbleToCloseAreaPortals = 0xE31; // bool + constexpr std::ptrdiff_t m_currentDamageState = 0xE34; // int32_t + constexpr std::ptrdiff_t m_damageStates = 0xE38; // CUtlVector +} + +namespace CPulseCell_Inflow_GameEvent { // CPulseCell_Inflow_BaseEntrypoint + constexpr std::ptrdiff_t m_EventName = 0x70; // CBufferString +} + +namespace CPulseCell_Outflow_PlayVCD { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_vcdFilename = 0x48; // CUtlString + constexpr std::ptrdiff_t m_OnFinished = 0x50; // CPulse_OutflowConnection + constexpr std::ptrdiff_t m_Triggers = 0x60; // CUtlVector +} + +namespace CPulseCell_SoundEventStart { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Type = 0x48; // SoundEventStartType_t +} + +namespace CPulseCell_Step_EntFire { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_Input = 0x48; // CUtlString +} + +namespace CPulseCell_Step_SetAnimGraphParam { // CPulseCell_BaseFlow + constexpr std::ptrdiff_t m_ParamName = 0x48; // CUtlString +} + +namespace CPulseCell_Value_FindEntByName { // CPulseCell_BaseValue + constexpr std::ptrdiff_t m_EntityType = 0x48; // CUtlString +} + +namespace CPulseGraphInstance_ServerPointEntity { // CBasePulseGraphInstance +} + +namespace CPulseServerFuncs { +} + +namespace CPulseServerFuncs_Sounds { +} + +namespace CPushable { // CBreakable +} + +namespace CRR_Response { + constexpr std::ptrdiff_t m_Type = 0x0; // uint8_t + constexpr std::ptrdiff_t m_szResponseName = 0x1; // char[192] + constexpr std::ptrdiff_t m_szMatchingRule = 0xC1; // char[128] + constexpr std::ptrdiff_t m_Params = 0x148; // ResponseParams + constexpr std::ptrdiff_t m_fMatchScore = 0x168; // float + constexpr std::ptrdiff_t m_szSpeakerContext = 0x170; // char* + constexpr std::ptrdiff_t m_szWorldContext = 0x178; // char* + constexpr std::ptrdiff_t m_Followup = 0x180; // ResponseFollowup + constexpr std::ptrdiff_t m_pchCriteriaNames = 0x1B8; // CUtlVector + constexpr std::ptrdiff_t m_pchCriteriaValues = 0x1D0; // CUtlVector +} + +namespace CRagdollConstraint { // CPhysConstraint + constexpr std::ptrdiff_t m_xmin = 0x508; // float + constexpr std::ptrdiff_t m_xmax = 0x50C; // float + constexpr std::ptrdiff_t m_ymin = 0x510; // float + constexpr std::ptrdiff_t m_ymax = 0x514; // float + constexpr std::ptrdiff_t m_zmin = 0x518; // float + constexpr std::ptrdiff_t m_zmax = 0x51C; // float + constexpr std::ptrdiff_t m_xfriction = 0x520; // float + constexpr std::ptrdiff_t m_yfriction = 0x524; // float + constexpr std::ptrdiff_t m_zfriction = 0x528; // float +} + +namespace CRagdollMagnet { // CPointEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_radius = 0x4B4; // float + constexpr std::ptrdiff_t m_force = 0x4B8; // float + constexpr std::ptrdiff_t m_axis = 0x4BC; // Vector +} + +namespace CRagdollManager { // CBaseEntity + constexpr std::ptrdiff_t m_iCurrentMaxRagdollCount = 0x4B0; // int8_t + constexpr std::ptrdiff_t m_iMaxRagdollCount = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_bSaveImportant = 0x4B8; // bool +} + +namespace CRagdollProp { // CBaseAnimGraph + constexpr std::ptrdiff_t m_ragdoll = 0x898; // ragdoll_t + constexpr std::ptrdiff_t m_bStartDisabled = 0x8D0; // bool + constexpr std::ptrdiff_t m_ragPos = 0x8D8; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_ragAngles = 0x8F0; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_hRagdollSource = 0x908; // CHandle + constexpr std::ptrdiff_t m_lastUpdateTickCount = 0x90C; // uint32_t + constexpr std::ptrdiff_t m_allAsleep = 0x910; // bool + constexpr std::ptrdiff_t m_bFirstCollisionAfterLaunch = 0x911; // bool + constexpr std::ptrdiff_t m_hDamageEntity = 0x914; // CHandle + constexpr std::ptrdiff_t m_hKiller = 0x918; // CHandle + constexpr std::ptrdiff_t m_hPhysicsAttacker = 0x91C; // CHandle + constexpr std::ptrdiff_t m_flLastPhysicsInfluenceTime = 0x920; // GameTime_t + constexpr std::ptrdiff_t m_flFadeOutStartTime = 0x924; // GameTime_t + constexpr std::ptrdiff_t m_flFadeTime = 0x928; // float + constexpr std::ptrdiff_t m_vecLastOrigin = 0x92C; // Vector + constexpr std::ptrdiff_t m_flAwakeTime = 0x938; // GameTime_t + constexpr std::ptrdiff_t m_flLastOriginChangeTime = 0x93C; // GameTime_t + constexpr std::ptrdiff_t m_nBloodColor = 0x940; // int32_t + constexpr std::ptrdiff_t m_strOriginClassName = 0x948; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_strSourceClassName = 0x950; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bHasBeenPhysgunned = 0x958; // bool + constexpr std::ptrdiff_t m_bShouldTeleportPhysics = 0x959; // bool + constexpr std::ptrdiff_t m_flBlendWeight = 0x95C; // float + constexpr std::ptrdiff_t m_flDefaultFadeScale = 0x960; // float + constexpr std::ptrdiff_t m_ragdollMins = 0x968; // CUtlVector + constexpr std::ptrdiff_t m_ragdollMaxs = 0x980; // CUtlVector + constexpr std::ptrdiff_t m_bShouldDeleteActivationRecord = 0x998; // bool + constexpr std::ptrdiff_t m_bValidatePoweredRagdollPose = 0x9F8; // bool +} + +namespace CRagdollPropAlias_physics_prop_ragdoll { // CRagdollProp +} + +namespace CRagdollPropAttached { // CRagdollProp + constexpr std::ptrdiff_t m_boneIndexAttached = 0xA38; // uint32_t + constexpr std::ptrdiff_t m_ragdollAttachedObjectIndex = 0xA3C; // uint32_t + constexpr std::ptrdiff_t m_attachmentPointBoneSpace = 0xA40; // Vector + constexpr std::ptrdiff_t m_attachmentPointRagdollSpace = 0xA4C; // Vector + constexpr std::ptrdiff_t m_bShouldDetach = 0xA58; // bool + constexpr std::ptrdiff_t m_bShouldDeleteAttachedActivationRecord = 0xA68; // bool +} + +namespace CRandSimTimer { // CSimpleSimTimer + constexpr std::ptrdiff_t m_minInterval = 0x8; // float + constexpr std::ptrdiff_t m_maxInterval = 0xC; // float +} + +namespace CRandStopwatch { // CStopwatchBase + constexpr std::ptrdiff_t m_minInterval = 0xC; // float + constexpr std::ptrdiff_t m_maxInterval = 0x10; // float +} + +namespace CRangeFloat { + constexpr std::ptrdiff_t m_pValue = 0x0; // float[2] +} + +namespace CRangeInt { + constexpr std::ptrdiff_t m_pValue = 0x0; // int32_t[2] +} + +namespace CRectLight { // CBarnLight + constexpr std::ptrdiff_t m_bShowLight = 0x928; // bool +} + +namespace CRemapFloat { + constexpr std::ptrdiff_t m_pValue = 0x0; // float[4] +} + +namespace CRenderComponent { // CEntityComponent + constexpr std::ptrdiff_t __m_pChainEntity = 0x10; // CNetworkVarChainer + constexpr std::ptrdiff_t m_bIsRenderingWithViewModels = 0x50; // bool + constexpr std::ptrdiff_t m_nSplitscreenFlags = 0x54; // uint32_t + constexpr std::ptrdiff_t m_bEnableRendering = 0x60; // bool + constexpr std::ptrdiff_t m_bInterpolationReadyToDraw = 0xB0; // bool +} + +namespace CResponseCriteriaSet { + constexpr std::ptrdiff_t m_nNumPrefixedContexts = 0x28; // int32_t + constexpr std::ptrdiff_t m_bOverrideOnAppend = 0x2C; // bool +} + +namespace CResponseQueue { + constexpr std::ptrdiff_t m_ExpresserTargets = 0x50; // CUtlVector +} + +namespace CResponseQueue_CDeferredResponse { + constexpr std::ptrdiff_t m_contexts = 0x10; // CResponseCriteriaSet + constexpr std::ptrdiff_t m_fDispatchTime = 0x40; // float + constexpr std::ptrdiff_t m_hIssuer = 0x44; // CHandle + constexpr std::ptrdiff_t m_response = 0x50; // CRR_Response + constexpr std::ptrdiff_t m_bResponseValid = 0x238; // bool +} + +namespace CRetakeGameRules { + constexpr std::ptrdiff_t m_nMatchSeed = 0xF8; // int32_t + constexpr std::ptrdiff_t m_bBlockersPresent = 0xFC; // bool + constexpr std::ptrdiff_t m_bRoundInProgress = 0xFD; // bool + constexpr std::ptrdiff_t m_iFirstSecondHalfRound = 0x100; // int32_t + constexpr std::ptrdiff_t m_iBombSite = 0x104; // int32_t +} + +namespace CRevertSaved { // CModelPointEntity + constexpr std::ptrdiff_t m_loadTime = 0x700; // float + constexpr std::ptrdiff_t m_Duration = 0x704; // float + constexpr std::ptrdiff_t m_HoldTime = 0x708; // float +} + +namespace CRopeKeyframe { // CBaseModelEntity + constexpr std::ptrdiff_t m_RopeFlags = 0x708; // uint16_t + constexpr std::ptrdiff_t m_iNextLinkName = 0x710; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_Slack = 0x718; // int16_t + constexpr std::ptrdiff_t m_Width = 0x71C; // float + constexpr std::ptrdiff_t m_TextureScale = 0x720; // float + constexpr std::ptrdiff_t m_nSegments = 0x724; // uint8_t + constexpr std::ptrdiff_t m_bConstrainBetweenEndpoints = 0x725; // bool + constexpr std::ptrdiff_t m_strRopeMaterialModel = 0x728; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iRopeMaterialModelIndex = 0x730; // CStrongHandle + constexpr std::ptrdiff_t m_Subdiv = 0x738; // uint8_t + constexpr std::ptrdiff_t m_nChangeCount = 0x739; // uint8_t + constexpr std::ptrdiff_t m_RopeLength = 0x73A; // int16_t + constexpr std::ptrdiff_t m_fLockedPoints = 0x73C; // uint8_t + constexpr std::ptrdiff_t m_bCreatedFromMapFile = 0x73D; // bool + constexpr std::ptrdiff_t m_flScrollSpeed = 0x740; // float + constexpr std::ptrdiff_t m_bStartPointValid = 0x744; // bool + constexpr std::ptrdiff_t m_bEndPointValid = 0x745; // bool + constexpr std::ptrdiff_t m_hStartPoint = 0x748; // CHandle + constexpr std::ptrdiff_t m_hEndPoint = 0x74C; // CHandle + constexpr std::ptrdiff_t m_iStartAttachment = 0x750; // AttachmentHandle_t + constexpr std::ptrdiff_t m_iEndAttachment = 0x751; // AttachmentHandle_t +} + +namespace CRopeKeyframeAlias_move_rope { // CRopeKeyframe +} + +namespace CRotButton { // CBaseButton +} + +namespace CRotDoor { // CBaseDoor + constexpr std::ptrdiff_t m_bSolidBsp = 0x988; // bool +} + +namespace CRuleBrushEntity { // CRuleEntity +} + +namespace CRuleEntity { // CBaseModelEntity + constexpr std::ptrdiff_t m_iszMaster = 0x700; // CUtlSymbolLarge +} + +namespace CRulePointEntity { // CRuleEntity + constexpr std::ptrdiff_t m_Score = 0x708; // int32_t +} + +namespace CSAdditionalMatchStats_t { // CSAdditionalPerRoundStats_t + constexpr std::ptrdiff_t m_numRoundsSurvived = 0x14; // int32_t + constexpr std::ptrdiff_t m_maxNumRoundsSurvived = 0x18; // int32_t + constexpr std::ptrdiff_t m_numRoundsSurvivedTotal = 0x1C; // int32_t + constexpr std::ptrdiff_t m_iRoundsWonWithoutPurchase = 0x20; // int32_t + constexpr std::ptrdiff_t m_iRoundsWonWithoutPurchaseTotal = 0x24; // int32_t + constexpr std::ptrdiff_t m_numFirstKills = 0x28; // int32_t + constexpr std::ptrdiff_t m_numClutchKills = 0x2C; // int32_t + constexpr std::ptrdiff_t m_numPistolKills = 0x30; // int32_t + constexpr std::ptrdiff_t m_numSniperKills = 0x34; // int32_t + constexpr std::ptrdiff_t m_iNumSuicides = 0x38; // int32_t + constexpr std::ptrdiff_t m_iNumTeamKills = 0x3C; // int32_t + constexpr std::ptrdiff_t m_iTeamDamage = 0x40; // int32_t +} + +namespace CSAdditionalPerRoundStats_t { + constexpr std::ptrdiff_t m_numChickensKilled = 0x0; // int32_t + constexpr std::ptrdiff_t m_killsWhileBlind = 0x4; // int32_t + constexpr std::ptrdiff_t m_bombCarrierkills = 0x8; // int32_t + constexpr std::ptrdiff_t m_iBurnDamageInflicted = 0xC; // int32_t + constexpr std::ptrdiff_t m_iDinks = 0x10; // int32_t +} + +namespace CSMatchStats_t { // CSPerRoundStats_t + constexpr std::ptrdiff_t m_iEnemy5Ks = 0x68; // int32_t + constexpr std::ptrdiff_t m_iEnemy4Ks = 0x6C; // int32_t + constexpr std::ptrdiff_t m_iEnemy3Ks = 0x70; // int32_t + constexpr std::ptrdiff_t m_iEnemy2Ks = 0x74; // int32_t + constexpr std::ptrdiff_t m_iUtility_Count = 0x78; // int32_t + constexpr std::ptrdiff_t m_iUtility_Successes = 0x7C; // int32_t + constexpr std::ptrdiff_t m_iUtility_Enemies = 0x80; // int32_t + constexpr std::ptrdiff_t m_iFlash_Count = 0x84; // int32_t + constexpr std::ptrdiff_t m_iFlash_Successes = 0x88; // int32_t + constexpr std::ptrdiff_t m_nHealthPointsRemovedTotal = 0x8C; // int32_t + constexpr std::ptrdiff_t m_nHealthPointsDealtTotal = 0x90; // int32_t + constexpr std::ptrdiff_t m_nShotsFiredTotal = 0x94; // int32_t + constexpr std::ptrdiff_t m_nShotsOnTargetTotal = 0x98; // int32_t + constexpr std::ptrdiff_t m_i1v1Count = 0x9C; // int32_t + constexpr std::ptrdiff_t m_i1v1Wins = 0xA0; // int32_t + constexpr std::ptrdiff_t m_i1v2Count = 0xA4; // int32_t + constexpr std::ptrdiff_t m_i1v2Wins = 0xA8; // int32_t + constexpr std::ptrdiff_t m_iEntryCount = 0xAC; // int32_t + constexpr std::ptrdiff_t m_iEntryWins = 0xB0; // int32_t +} + +namespace CSPerRoundStats_t { + constexpr std::ptrdiff_t m_iKills = 0x30; // int32_t + constexpr std::ptrdiff_t m_iDeaths = 0x34; // int32_t + constexpr std::ptrdiff_t m_iAssists = 0x38; // int32_t + constexpr std::ptrdiff_t m_iDamage = 0x3C; // int32_t + constexpr std::ptrdiff_t m_iEquipmentValue = 0x40; // int32_t + constexpr std::ptrdiff_t m_iMoneySaved = 0x44; // int32_t + constexpr std::ptrdiff_t m_iKillReward = 0x48; // int32_t + constexpr std::ptrdiff_t m_iLiveTime = 0x4C; // int32_t + constexpr std::ptrdiff_t m_iHeadShotKills = 0x50; // int32_t + constexpr std::ptrdiff_t m_iObjective = 0x54; // int32_t + constexpr std::ptrdiff_t m_iCashEarned = 0x58; // int32_t + constexpr std::ptrdiff_t m_iUtilityDamage = 0x5C; // int32_t + constexpr std::ptrdiff_t m_iEnemiesFlashed = 0x60; // int32_t +} + +namespace CSceneEntity { // CPointEntity + constexpr std::ptrdiff_t m_iszSceneFile = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszResumeSceneFile = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget1 = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget2 = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget3 = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget4 = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget5 = 0x4E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget6 = 0x4F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget7 = 0x4F8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTarget8 = 0x500; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hTarget1 = 0x508; // CHandle + constexpr std::ptrdiff_t m_hTarget2 = 0x50C; // CHandle + constexpr std::ptrdiff_t m_hTarget3 = 0x510; // CHandle + constexpr std::ptrdiff_t m_hTarget4 = 0x514; // CHandle + constexpr std::ptrdiff_t m_hTarget5 = 0x518; // CHandle + constexpr std::ptrdiff_t m_hTarget6 = 0x51C; // CHandle + constexpr std::ptrdiff_t m_hTarget7 = 0x520; // CHandle + constexpr std::ptrdiff_t m_hTarget8 = 0x524; // CHandle + constexpr std::ptrdiff_t m_bIsPlayingBack = 0x528; // bool + constexpr std::ptrdiff_t m_bPaused = 0x529; // bool + constexpr std::ptrdiff_t m_bMultiplayer = 0x52A; // bool + constexpr std::ptrdiff_t m_bAutogenerated = 0x52B; // bool + constexpr std::ptrdiff_t m_flForceClientTime = 0x52C; // float + constexpr std::ptrdiff_t m_flCurrentTime = 0x530; // float + constexpr std::ptrdiff_t m_flFrameTime = 0x534; // float + constexpr std::ptrdiff_t m_bCancelAtNextInterrupt = 0x538; // bool + constexpr std::ptrdiff_t m_fPitch = 0x53C; // float + constexpr std::ptrdiff_t m_bAutomated = 0x540; // bool + constexpr std::ptrdiff_t m_nAutomatedAction = 0x544; // int32_t + constexpr std::ptrdiff_t m_flAutomationDelay = 0x548; // float + constexpr std::ptrdiff_t m_flAutomationTime = 0x54C; // float + constexpr std::ptrdiff_t m_hWaitingForThisResumeScene = 0x550; // CHandle + constexpr std::ptrdiff_t m_bWaitingForResumeScene = 0x554; // bool + constexpr std::ptrdiff_t m_bPausedViaInput = 0x555; // bool + constexpr std::ptrdiff_t m_bPauseAtNextInterrupt = 0x556; // bool + constexpr std::ptrdiff_t m_bWaitingForActor = 0x557; // bool + constexpr std::ptrdiff_t m_bWaitingForInterrupt = 0x558; // bool + constexpr std::ptrdiff_t m_bInterruptedActorsScenes = 0x559; // bool + constexpr std::ptrdiff_t m_bBreakOnNonIdle = 0x55A; // bool + constexpr std::ptrdiff_t m_hActorList = 0x560; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_hRemoveActorList = 0x578; // CUtlVector> + constexpr std::ptrdiff_t m_nSceneFlushCounter = 0x5A0; // int32_t + constexpr std::ptrdiff_t m_nSceneStringIndex = 0x5A4; // uint16_t + constexpr std::ptrdiff_t m_OnStart = 0x5A8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnCompletion = 0x5D0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnCanceled = 0x5F8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPaused = 0x620; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnResumed = 0x648; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTrigger = 0x670; // CEntityIOOutput[16] + constexpr std::ptrdiff_t m_hInterruptScene = 0x980; // CHandle + constexpr std::ptrdiff_t m_nInterruptCount = 0x984; // int32_t + constexpr std::ptrdiff_t m_bSceneMissing = 0x988; // bool + constexpr std::ptrdiff_t m_bInterrupted = 0x989; // bool + constexpr std::ptrdiff_t m_bCompletedEarly = 0x98A; // bool + constexpr std::ptrdiff_t m_bInterruptSceneFinished = 0x98B; // bool + constexpr std::ptrdiff_t m_bRestoring = 0x98C; // bool + constexpr std::ptrdiff_t m_hNotifySceneCompletion = 0x990; // CUtlVector> + constexpr std::ptrdiff_t m_hListManagers = 0x9A8; // CUtlVector> + constexpr std::ptrdiff_t m_iszSoundName = 0x9E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hActor = 0x9F0; // CHandle + constexpr std::ptrdiff_t m_hActivator = 0x9F4; // CHandle + constexpr std::ptrdiff_t m_BusyActor = 0x9F8; // int32_t + constexpr std::ptrdiff_t m_iPlayerDeathBehavior = 0x9FC; // SceneOnPlayerDeath_t +} + +namespace CSceneEntityAlias_logic_choreographed_scene { // CSceneEntity +} + +namespace CSceneEventInfo { + constexpr std::ptrdiff_t m_iLayer = 0x0; // int32_t + constexpr std::ptrdiff_t m_iPriority = 0x4; // int32_t + constexpr std::ptrdiff_t m_hSequence = 0x8; // HSequence + constexpr std::ptrdiff_t m_flWeight = 0xC; // float + constexpr std::ptrdiff_t m_bIsMoving = 0x10; // bool + constexpr std::ptrdiff_t m_bHasArrived = 0x11; // bool + constexpr std::ptrdiff_t m_flInitialYaw = 0x14; // float + constexpr std::ptrdiff_t m_flTargetYaw = 0x18; // float + constexpr std::ptrdiff_t m_flFacingYaw = 0x1C; // float + constexpr std::ptrdiff_t m_nType = 0x20; // int32_t + constexpr std::ptrdiff_t m_flNext = 0x24; // GameTime_t + constexpr std::ptrdiff_t m_bIsGesture = 0x28; // bool + constexpr std::ptrdiff_t m_bShouldRemove = 0x29; // bool + constexpr std::ptrdiff_t m_hTarget = 0x54; // CHandle + constexpr std::ptrdiff_t m_nSceneEventId = 0x58; // uint32_t + constexpr std::ptrdiff_t m_bClientSide = 0x5C; // bool + constexpr std::ptrdiff_t m_bStarted = 0x5D; // bool +} + +namespace CSceneListManager { // CLogicalEntity + constexpr std::ptrdiff_t m_hListManagers = 0x4B0; // CUtlVector> + constexpr std::ptrdiff_t m_iszScenes = 0x4C8; // CUtlSymbolLarge[16] + constexpr std::ptrdiff_t m_hScenes = 0x548; // CHandle[16] +} + +namespace CScriptComponent { // CEntityComponent + constexpr std::ptrdiff_t m_scriptClassName = 0x30; // CUtlSymbolLarge +} + +namespace CScriptItem { // CItem + constexpr std::ptrdiff_t m_OnPlayerPickup = 0x968; // CEntityIOOutput + constexpr std::ptrdiff_t m_MoveTypeOverride = 0x990; // MoveType_t +} + +namespace CScriptNavBlocker { // CFuncNavBlocker + constexpr std::ptrdiff_t m_vExtent = 0x710; // Vector +} + +namespace CScriptTriggerHurt { // CTriggerHurt + constexpr std::ptrdiff_t m_vExtent = 0x948; // Vector +} + +namespace CScriptTriggerMultiple { // CTriggerMultiple + constexpr std::ptrdiff_t m_vExtent = 0x8D0; // Vector +} + +namespace CScriptTriggerOnce { // CTriggerOnce + constexpr std::ptrdiff_t m_vExtent = 0x8D0; // Vector +} + +namespace CScriptTriggerPush { // CTriggerPush + constexpr std::ptrdiff_t m_vExtent = 0x8D0; // Vector +} + +namespace CScriptUniformRandomStream { + constexpr std::ptrdiff_t m_hScriptScope = 0x8; // HSCRIPT + constexpr std::ptrdiff_t m_nInitialSeed = 0x9C; // int32_t +} + +namespace CScriptedSequence { // CBaseEntity + constexpr std::ptrdiff_t m_iszEntry = 0x4B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszPreIdle = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszPlay = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszPostIdle = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszModifierToAddOnPlay = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszNextScript = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszEntity = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSyncGroup = 0x4E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nMoveTo = 0x4F0; // ScriptedMoveTo_t + constexpr std::ptrdiff_t m_bIsPlayingPreIdle = 0x4F4; // bool + constexpr std::ptrdiff_t m_bIsPlayingEntry = 0x4F5; // bool + constexpr std::ptrdiff_t m_bIsPlayingAction = 0x4F6; // bool + constexpr std::ptrdiff_t m_bIsPlayingPostIdle = 0x4F7; // bool + constexpr std::ptrdiff_t m_bLoopPreIdleSequence = 0x4F8; // bool + constexpr std::ptrdiff_t m_bLoopActionSequence = 0x4F9; // bool + constexpr std::ptrdiff_t m_bLoopPostIdleSequence = 0x4FA; // bool + constexpr std::ptrdiff_t m_bSynchPostIdles = 0x4FB; // bool + constexpr std::ptrdiff_t m_bIgnoreGravity = 0x4FC; // bool + constexpr std::ptrdiff_t m_bDisableNPCCollisions = 0x4FD; // bool + constexpr std::ptrdiff_t m_bKeepAnimgraphLockedPost = 0x4FE; // bool + constexpr std::ptrdiff_t m_bDontAddModifiers = 0x4FF; // bool + constexpr std::ptrdiff_t m_flRadius = 0x500; // float + constexpr std::ptrdiff_t m_flRepeat = 0x504; // float + constexpr std::ptrdiff_t m_flPlayAnimFadeInTime = 0x508; // float + constexpr std::ptrdiff_t m_flMoveInterpTime = 0x50C; // float + constexpr std::ptrdiff_t m_flAngRate = 0x510; // float + constexpr std::ptrdiff_t m_iDelay = 0x514; // int32_t + constexpr std::ptrdiff_t m_startTime = 0x518; // GameTime_t + constexpr std::ptrdiff_t m_bWaitForBeginSequence = 0x51C; // bool + constexpr std::ptrdiff_t m_saved_effects = 0x520; // int32_t + constexpr std::ptrdiff_t m_savedFlags = 0x524; // int32_t + constexpr std::ptrdiff_t m_savedCollisionGroup = 0x528; // int32_t + constexpr std::ptrdiff_t m_interruptable = 0x52C; // bool + constexpr std::ptrdiff_t m_sequenceStarted = 0x52D; // bool + constexpr std::ptrdiff_t m_bPrevAnimatedEveryTick = 0x52E; // bool + constexpr std::ptrdiff_t m_bForcedAnimatedEveryTick = 0x52F; // bool + constexpr std::ptrdiff_t m_bPositionRelativeToOtherEntity = 0x530; // bool + constexpr std::ptrdiff_t m_hTargetEnt = 0x534; // CHandle + constexpr std::ptrdiff_t m_hNextCine = 0x538; // CHandle + constexpr std::ptrdiff_t m_bThinking = 0x53C; // bool + constexpr std::ptrdiff_t m_bInitiatedSelfDelete = 0x53D; // bool + constexpr std::ptrdiff_t m_bIsTeleportingDueToMoveTo = 0x53E; // bool + constexpr std::ptrdiff_t m_bAllowCustomInterruptConditions = 0x53F; // bool + constexpr std::ptrdiff_t m_hLastFoundEntity = 0x540; // CHandle + constexpr std::ptrdiff_t m_hForcedTarget = 0x544; // CHandle + constexpr std::ptrdiff_t m_bDontCancelOtherSequences = 0x548; // bool + constexpr std::ptrdiff_t m_bForceSynch = 0x549; // bool + constexpr std::ptrdiff_t m_bTargetWasAsleep = 0x54A; // bool + constexpr std::ptrdiff_t m_bPreventUpdateYawOnFinish = 0x54B; // bool + constexpr std::ptrdiff_t m_bEnsureOnNavmeshOnFinish = 0x54C; // bool + constexpr std::ptrdiff_t m_onDeathBehavior = 0x550; // ScriptedOnDeath_t + constexpr std::ptrdiff_t m_ConflictResponse = 0x554; // ScriptedConflictResponse_t + constexpr std::ptrdiff_t m_OnBeginSequence = 0x558; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnActionStartOrLoop = 0x580; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnEndSequence = 0x5A8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnPostIdleEndSequence = 0x5D0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnCancelSequence = 0x5F8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnCancelFailedSequence = 0x620; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnScriptEvent = 0x648; // CEntityIOOutput[8] + constexpr std::ptrdiff_t m_matOtherToMain = 0x790; // CTransform + constexpr std::ptrdiff_t m_hInteractionMainEntity = 0x7B0; // CHandle + constexpr std::ptrdiff_t m_iPlayerDeathBehavior = 0x7B4; // int32_t +} + +namespace CSensorGrenade { // CBaseCSGrenade +} + +namespace CSensorGrenadeProjectile { // CBaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_fExpireTime = 0xA30; // GameTime_t + constexpr std::ptrdiff_t m_fNextDetectPlayerSound = 0xA34; // GameTime_t + constexpr std::ptrdiff_t m_hDisplayGrenade = 0xA38; // CHandle +} + +namespace CServerOnlyEntity { // CBaseEntity +} + +namespace CServerOnlyModelEntity { // CBaseModelEntity +} + +namespace CServerOnlyPointEntity { // CServerOnlyEntity +} + +namespace CServerRagdollTrigger { // CBaseTrigger +} + +namespace CShatterGlassShard { + constexpr std::ptrdiff_t m_hShardHandle = 0x8; // uint32_t + constexpr std::ptrdiff_t m_vecPanelVertices = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_vLocalPanelSpaceOrigin = 0x28; // Vector2D + constexpr std::ptrdiff_t m_hModel = 0x30; // CStrongHandle + constexpr std::ptrdiff_t m_hPhysicsEntity = 0x38; // CHandle + constexpr std::ptrdiff_t m_hParentPanel = 0x3C; // CHandle + constexpr std::ptrdiff_t m_hParentShard = 0x40; // uint32_t + constexpr std::ptrdiff_t m_ShatterStressType = 0x44; // ShatterGlassStressType + constexpr std::ptrdiff_t m_vecStressVelocity = 0x48; // Vector + constexpr std::ptrdiff_t m_bCreatedModel = 0x54; // bool + constexpr std::ptrdiff_t m_flLongestEdge = 0x58; // float + constexpr std::ptrdiff_t m_flShortestEdge = 0x5C; // float + constexpr std::ptrdiff_t m_flLongestAcross = 0x60; // float + constexpr std::ptrdiff_t m_flShortestAcross = 0x64; // float + constexpr std::ptrdiff_t m_flSumOfAllEdges = 0x68; // float + constexpr std::ptrdiff_t m_flArea = 0x6C; // float + constexpr std::ptrdiff_t m_nOnFrameEdge = 0x70; // OnFrame + constexpr std::ptrdiff_t m_nParentPanelsNthShard = 0x74; // int32_t + constexpr std::ptrdiff_t m_nSubShardGeneration = 0x78; // int32_t + constexpr std::ptrdiff_t m_vecAverageVertPosition = 0x7C; // Vector2D + constexpr std::ptrdiff_t m_bAverageVertPositionIsValid = 0x84; // bool + constexpr std::ptrdiff_t m_vecPanelSpaceStressPositionA = 0x88; // Vector2D + constexpr std::ptrdiff_t m_vecPanelSpaceStressPositionB = 0x90; // Vector2D + constexpr std::ptrdiff_t m_bStressPositionAIsValid = 0x98; // bool + constexpr std::ptrdiff_t m_bStressPositionBIsValid = 0x99; // bool + constexpr std::ptrdiff_t m_bFlaggedForRemoval = 0x9A; // bool + constexpr std::ptrdiff_t m_flPhysicsEntitySpawnedAtTime = 0x9C; // GameTime_t + constexpr std::ptrdiff_t m_bShatterRateLimited = 0xA0; // bool + constexpr std::ptrdiff_t m_hEntityHittingMe = 0xA4; // CHandle + constexpr std::ptrdiff_t m_vecNeighbors = 0xA8; // CUtlVector +} + +namespace CShatterGlassShardPhysics { // CPhysicsProp + constexpr std::ptrdiff_t m_bDebris = 0xB78; // bool + constexpr std::ptrdiff_t m_hParentShard = 0xB7C; // uint32_t + constexpr std::ptrdiff_t m_ShardDesc = 0xB80; // shard_model_desc_t +} + +namespace CShower { // CModelPointEntity +} + +namespace CSimTimer { // CSimpleSimTimer + constexpr std::ptrdiff_t m_interval = 0x8; // float +} + +namespace CSimpleMarkupVolumeTagged { // CMarkupVolumeTagged +} + +namespace CSimpleSimTimer { + constexpr std::ptrdiff_t m_next = 0x0; // GameTime_t + constexpr std::ptrdiff_t m_nWorldGroupId = 0x4; // WorldGroupId_t +} + +namespace CSimpleStopwatch { // CStopwatchBase +} + +namespace CSingleplayRules { // CGameRules + constexpr std::ptrdiff_t m_bSinglePlayerGameEnding = 0x90; // bool +} + +namespace CSkeletonAnimationController { // ISkeletonAnimationController + constexpr std::ptrdiff_t m_pSkeletonInstance = 0x8; // CSkeletonInstance* +} + +namespace CSkeletonInstance { // CGameSceneNode + constexpr std::ptrdiff_t m_modelState = 0x160; // CModelState + constexpr std::ptrdiff_t m_bIsAnimationEnabled = 0x390; // bool + constexpr std::ptrdiff_t m_bUseParentRenderBounds = 0x391; // bool + constexpr std::ptrdiff_t m_bDisableSolidCollisionsForHierarchy = 0x392; // bool + constexpr std::ptrdiff_t m_bDirtyMotionType = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_bIsGeneratingLatchedParentSpaceState = 0x0; // bitfield:1 + constexpr std::ptrdiff_t m_materialGroup = 0x394; // CUtlStringToken + constexpr std::ptrdiff_t m_nHitboxSet = 0x398; // uint8_t +} + +namespace CSkillDamage { + constexpr std::ptrdiff_t m_flDamage = 0x0; // CSkillFloat + constexpr std::ptrdiff_t m_flPhysicsForceDamage = 0x10; // float +} + +namespace CSkillFloat { + constexpr std::ptrdiff_t m_pValue = 0x0; // float[4] +} + +namespace CSkillInt { + constexpr std::ptrdiff_t m_pValue = 0x0; // int32_t[4] +} + +namespace CSkyCamera { // CBaseEntity + constexpr std::ptrdiff_t m_skyboxData = 0x4B0; // sky3dparams_t + constexpr std::ptrdiff_t m_skyboxSlotToken = 0x540; // CUtlStringToken + constexpr std::ptrdiff_t m_bUseAngles = 0x544; // bool + constexpr std::ptrdiff_t m_pNext = 0x548; // CSkyCamera* +} + +namespace CSkyboxReference { // CBaseEntity + constexpr std::ptrdiff_t m_worldGroupId = 0x4B0; // WorldGroupId_t + constexpr std::ptrdiff_t m_hSkyCamera = 0x4B4; // CHandle +} + +namespace CSmokeGrenade { // CBaseCSGrenade +} + +namespace CSmokeGrenadeProjectile { // CBaseCSGrenadeProjectile + constexpr std::ptrdiff_t m_nSmokeEffectTickBegin = 0xA48; // int32_t + constexpr std::ptrdiff_t m_bDidSmokeEffect = 0xA4C; // bool + constexpr std::ptrdiff_t m_nRandomSeed = 0xA50; // int32_t + constexpr std::ptrdiff_t m_vSmokeColor = 0xA54; // Vector + constexpr std::ptrdiff_t m_vSmokeDetonationPos = 0xA60; // Vector + constexpr std::ptrdiff_t m_VoxelFrameData = 0xA70; // CUtlVector + constexpr std::ptrdiff_t m_flLastBounce = 0xA88; // GameTime_t + constexpr std::ptrdiff_t m_fllastSimulationTime = 0xA8C; // GameTime_t +} + +namespace CSmoothFunc { + constexpr std::ptrdiff_t m_flSmoothAmplitude = 0x8; // float + constexpr std::ptrdiff_t m_flSmoothBias = 0xC; // float + constexpr std::ptrdiff_t m_flSmoothDuration = 0x10; // float + constexpr std::ptrdiff_t m_flSmoothRemainingTime = 0x14; // float + constexpr std::ptrdiff_t m_nSmoothDir = 0x18; // int32_t +} + +namespace CSound { + constexpr std::ptrdiff_t m_hOwner = 0x0; // CHandle + constexpr std::ptrdiff_t m_hTarget = 0x4; // CHandle + constexpr std::ptrdiff_t m_iVolume = 0x8; // int32_t + constexpr std::ptrdiff_t m_flOcclusionScale = 0xC; // float + constexpr std::ptrdiff_t m_iType = 0x10; // int32_t + constexpr std::ptrdiff_t m_iNextAudible = 0x14; // int32_t + constexpr std::ptrdiff_t m_flExpireTime = 0x18; // GameTime_t + constexpr std::ptrdiff_t m_iNext = 0x1C; // int16_t + constexpr std::ptrdiff_t m_bNoExpirationTime = 0x1E; // bool + constexpr std::ptrdiff_t m_ownerChannelIndex = 0x20; // int32_t + constexpr std::ptrdiff_t m_vecOrigin = 0x24; // Vector + constexpr std::ptrdiff_t m_bHasOwner = 0x30; // bool +} + +namespace CSoundAreaEntityBase { // CBaseEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_iszSoundAreaType = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_vPos = 0x4C0; // Vector +} + +namespace CSoundAreaEntityOrientedBox { // CSoundAreaEntityBase + constexpr std::ptrdiff_t m_vMin = 0x4D0; // Vector + constexpr std::ptrdiff_t m_vMax = 0x4DC; // Vector +} + +namespace CSoundAreaEntitySphere { // CSoundAreaEntityBase + constexpr std::ptrdiff_t m_flRadius = 0x4D0; // float +} + +namespace CSoundEnt { // CPointEntity + constexpr std::ptrdiff_t m_iFreeSound = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_iActiveSound = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_cLastActiveSounds = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_SoundPool = 0x4BC; // CSound[128] +} + +namespace CSoundEnvelope { + constexpr std::ptrdiff_t m_current = 0x0; // float + constexpr std::ptrdiff_t m_target = 0x4; // float + constexpr std::ptrdiff_t m_rate = 0x8; // float + constexpr std::ptrdiff_t m_forceupdate = 0xC; // bool +} + +namespace CSoundEventAABBEntity { // CSoundEventEntity + constexpr std::ptrdiff_t m_vMins = 0x558; // Vector + constexpr std::ptrdiff_t m_vMaxs = 0x564; // Vector +} + +namespace CSoundEventEntity { // CBaseEntity + constexpr std::ptrdiff_t m_bStartOnSpawn = 0x4B0; // bool + constexpr std::ptrdiff_t m_bToLocalPlayer = 0x4B1; // bool + constexpr std::ptrdiff_t m_bStopOnNew = 0x4B2; // bool + constexpr std::ptrdiff_t m_bSaveRestore = 0x4B3; // bool + constexpr std::ptrdiff_t m_bSavedIsPlaying = 0x4B4; // bool + constexpr std::ptrdiff_t m_flSavedElapsedTime = 0x4B8; // float + constexpr std::ptrdiff_t m_iszSourceEntityName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszAttachmentName = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_onGUIDChanged = 0x4D0; // CEntityOutputTemplate + constexpr std::ptrdiff_t m_onSoundFinished = 0x4F8; // CEntityIOOutput + constexpr std::ptrdiff_t m_iszSoundName = 0x540; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hSource = 0x550; // CEntityHandle +} + +namespace CSoundEventEntityAlias_snd_event_point { // CSoundEventEntity +} + +namespace CSoundEventOBBEntity { // CSoundEventEntity + constexpr std::ptrdiff_t m_vMins = 0x558; // Vector + constexpr std::ptrdiff_t m_vMaxs = 0x564; // Vector +} + +namespace CSoundEventParameter { // CBaseEntity + constexpr std::ptrdiff_t m_iszParamName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flFloatValue = 0x4C0; // float +} + +namespace CSoundEventPathCornerEntity { // CSoundEventEntity + constexpr std::ptrdiff_t m_iszPathCorner = 0x558; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iCountMax = 0x560; // int32_t + constexpr std::ptrdiff_t m_flDistanceMax = 0x564; // float + constexpr std::ptrdiff_t m_flDistMaxSqr = 0x568; // float + constexpr std::ptrdiff_t m_flDotProductMax = 0x56C; // float + constexpr std::ptrdiff_t bPlaying = 0x570; // bool +} + +namespace CSoundOpvarSetAABBEntity { // CSoundOpvarSetPointEntity + constexpr std::ptrdiff_t m_vDistanceInnerMins = 0x648; // Vector + constexpr std::ptrdiff_t m_vDistanceInnerMaxs = 0x654; // Vector + constexpr std::ptrdiff_t m_vDistanceOuterMins = 0x660; // Vector + constexpr std::ptrdiff_t m_vDistanceOuterMaxs = 0x66C; // Vector + constexpr std::ptrdiff_t m_nAABBDirection = 0x678; // int32_t + constexpr std::ptrdiff_t m_vInnerMins = 0x67C; // Vector + constexpr std::ptrdiff_t m_vInnerMaxs = 0x688; // Vector + constexpr std::ptrdiff_t m_vOuterMins = 0x694; // Vector + constexpr std::ptrdiff_t m_vOuterMaxs = 0x6A0; // Vector +} + +namespace CSoundOpvarSetEntity { // CBaseEntity + constexpr std::ptrdiff_t m_iszStackName = 0x4B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOperatorName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOpvarName = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nOpvarType = 0x4D0; // int32_t + constexpr std::ptrdiff_t m_nOpvarIndex = 0x4D4; // int32_t + constexpr std::ptrdiff_t m_flOpvarValue = 0x4D8; // float + constexpr std::ptrdiff_t m_OpvarValueString = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bSetOnSpawn = 0x4E8; // bool +} + +namespace CSoundOpvarSetOBBEntity { // CSoundOpvarSetAABBEntity +} + +namespace CSoundOpvarSetOBBWindEntity { // CSoundOpvarSetPointBase + constexpr std::ptrdiff_t m_vMins = 0x548; // Vector + constexpr std::ptrdiff_t m_vMaxs = 0x554; // Vector + constexpr std::ptrdiff_t m_vDistanceMins = 0x560; // Vector + constexpr std::ptrdiff_t m_vDistanceMaxs = 0x56C; // Vector + constexpr std::ptrdiff_t m_flWindMin = 0x578; // float + constexpr std::ptrdiff_t m_flWindMax = 0x57C; // float + constexpr std::ptrdiff_t m_flWindMapMin = 0x580; // float + constexpr std::ptrdiff_t m_flWindMapMax = 0x584; // float +} + +namespace CSoundOpvarSetPathCornerEntity { // CSoundOpvarSetPointEntity + constexpr std::ptrdiff_t m_flDistMinSqr = 0x660; // float + constexpr std::ptrdiff_t m_flDistMaxSqr = 0x664; // float + constexpr std::ptrdiff_t m_iszPathCornerEntityName = 0x668; // CUtlSymbolLarge +} + +namespace CSoundOpvarSetPointBase { // CBaseEntity + constexpr std::ptrdiff_t m_bDisabled = 0x4B0; // bool + constexpr std::ptrdiff_t m_hSource = 0x4B4; // CEntityHandle + constexpr std::ptrdiff_t m_iszSourceEntityName = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_vLastPosition = 0x518; // Vector + constexpr std::ptrdiff_t m_iszStackName = 0x528; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOperatorName = 0x530; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszOpvarName = 0x538; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iOpvarIndex = 0x540; // int32_t + constexpr std::ptrdiff_t m_bUseAutoCompare = 0x544; // bool +} + +namespace CSoundOpvarSetPointEntity { // CSoundOpvarSetPointBase + constexpr std::ptrdiff_t m_OnEnter = 0x548; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnExit = 0x570; // CEntityIOOutput + constexpr std::ptrdiff_t m_bAutoDisable = 0x598; // bool + constexpr std::ptrdiff_t m_flDistanceMin = 0x5DC; // float + constexpr std::ptrdiff_t m_flDistanceMax = 0x5E0; // float + constexpr std::ptrdiff_t m_flDistanceMapMin = 0x5E4; // float + constexpr std::ptrdiff_t m_flDistanceMapMax = 0x5E8; // float + constexpr std::ptrdiff_t m_flOcclusionRadius = 0x5EC; // float + constexpr std::ptrdiff_t m_flOcclusionMin = 0x5F0; // float + constexpr std::ptrdiff_t m_flOcclusionMax = 0x5F4; // float + constexpr std::ptrdiff_t m_flValSetOnDisable = 0x5F8; // float + constexpr std::ptrdiff_t m_bSetValueOnDisable = 0x5FC; // bool + constexpr std::ptrdiff_t m_nSimulationMode = 0x600; // int32_t + constexpr std::ptrdiff_t m_nVisibilitySamples = 0x604; // int32_t + constexpr std::ptrdiff_t m_vDynamicProxyPoint = 0x608; // Vector + constexpr std::ptrdiff_t m_flDynamicMaximumOcclusion = 0x614; // float + constexpr std::ptrdiff_t m_hDynamicEntity = 0x618; // CEntityHandle + constexpr std::ptrdiff_t m_iszDynamicEntityName = 0x620; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flPathingDistanceNormFactor = 0x628; // float + constexpr std::ptrdiff_t m_vPathingSourcePos = 0x62C; // Vector + constexpr std::ptrdiff_t m_vPathingListenerPos = 0x638; // Vector + constexpr std::ptrdiff_t m_nPathingSourceIndex = 0x644; // int32_t +} + +namespace CSoundPatch { + constexpr std::ptrdiff_t m_pitch = 0x8; // CSoundEnvelope + constexpr std::ptrdiff_t m_volume = 0x18; // CSoundEnvelope + constexpr std::ptrdiff_t m_shutdownTime = 0x30; // float + constexpr std::ptrdiff_t m_flLastTime = 0x34; // float + constexpr std::ptrdiff_t m_iszSoundScriptName = 0x38; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hEnt = 0x40; // CHandle + constexpr std::ptrdiff_t m_soundEntityIndex = 0x44; // CEntityIndex + constexpr std::ptrdiff_t m_soundOrigin = 0x48; // Vector + constexpr std::ptrdiff_t m_isPlaying = 0x54; // int32_t + constexpr std::ptrdiff_t m_Filter = 0x58; // CCopyRecipientFilter + constexpr std::ptrdiff_t m_flCloseCaptionDuration = 0x80; // float + constexpr std::ptrdiff_t m_bUpdatedSoundOrigin = 0x84; // bool + constexpr std::ptrdiff_t m_iszClassName = 0x88; // CUtlSymbolLarge +} + +namespace CSoundStackSave { // CLogicalEntity + constexpr std::ptrdiff_t m_iszStackName = 0x4B0; // CUtlSymbolLarge +} + +namespace CSplineConstraint { // CPhysConstraint +} + +namespace CSpotlightEnd { // CBaseModelEntity + constexpr std::ptrdiff_t m_flLightScale = 0x700; // float + constexpr std::ptrdiff_t m_Radius = 0x704; // float + constexpr std::ptrdiff_t m_vSpotlightDir = 0x708; // Vector + constexpr std::ptrdiff_t m_vSpotlightOrg = 0x714; // Vector +} + +namespace CSprite { // CBaseModelEntity + constexpr std::ptrdiff_t m_hSpriteMaterial = 0x700; // CStrongHandle + constexpr std::ptrdiff_t m_hAttachedToEntity = 0x708; // CHandle + constexpr std::ptrdiff_t m_nAttachment = 0x70C; // AttachmentHandle_t + constexpr std::ptrdiff_t m_flSpriteFramerate = 0x710; // float + constexpr std::ptrdiff_t m_flFrame = 0x714; // float + constexpr std::ptrdiff_t m_flDieTime = 0x718; // GameTime_t + constexpr std::ptrdiff_t m_nBrightness = 0x728; // uint32_t + constexpr std::ptrdiff_t m_flBrightnessDuration = 0x72C; // float + constexpr std::ptrdiff_t m_flSpriteScale = 0x730; // float + constexpr std::ptrdiff_t m_flScaleDuration = 0x734; // float + constexpr std::ptrdiff_t m_bWorldSpaceScale = 0x738; // bool + constexpr std::ptrdiff_t m_flGlowProxySize = 0x73C; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0x740; // float + constexpr std::ptrdiff_t m_flLastTime = 0x744; // GameTime_t + constexpr std::ptrdiff_t m_flMaxFrame = 0x748; // float + constexpr std::ptrdiff_t m_flStartScale = 0x74C; // float + constexpr std::ptrdiff_t m_flDestScale = 0x750; // float + constexpr std::ptrdiff_t m_flScaleTimeStart = 0x754; // GameTime_t + constexpr std::ptrdiff_t m_nStartBrightness = 0x758; // int32_t + constexpr std::ptrdiff_t m_nDestBrightness = 0x75C; // int32_t + constexpr std::ptrdiff_t m_flBrightnessTimeStart = 0x760; // GameTime_t + constexpr std::ptrdiff_t m_nSpriteWidth = 0x764; // int32_t + constexpr std::ptrdiff_t m_nSpriteHeight = 0x768; // int32_t +} + +namespace CSpriteAlias_env_glow { // CSprite +} + +namespace CSpriteOriented { // CSprite +} + +namespace CStopwatch { // CStopwatchBase + constexpr std::ptrdiff_t m_interval = 0xC; // float +} + +namespace CStopwatchBase { // CSimpleSimTimer + constexpr std::ptrdiff_t m_fIsRunning = 0x8; // bool +} + +namespace CSun { // CBaseModelEntity + constexpr std::ptrdiff_t m_vDirection = 0x700; // Vector + constexpr std::ptrdiff_t m_clrOverlay = 0x70C; // Color + constexpr std::ptrdiff_t m_iszEffectName = 0x710; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszSSEffectName = 0x718; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bOn = 0x720; // bool + constexpr std::ptrdiff_t m_bmaxColor = 0x721; // bool + constexpr std::ptrdiff_t m_flSize = 0x724; // float + constexpr std::ptrdiff_t m_flRotation = 0x728; // float + constexpr std::ptrdiff_t m_flHazeScale = 0x72C; // float + constexpr std::ptrdiff_t m_flAlphaHaze = 0x730; // float + constexpr std::ptrdiff_t m_flAlphaHdr = 0x734; // float + constexpr std::ptrdiff_t m_flAlphaScale = 0x738; // float + constexpr std::ptrdiff_t m_flHDRColorScale = 0x73C; // float + constexpr std::ptrdiff_t m_flFarZScale = 0x740; // float +} + +namespace CTablet { // CCSWeaponBase +} + +namespace CTakeDamageInfo { + constexpr std::ptrdiff_t m_vecDamageForce = 0x8; // Vector + constexpr std::ptrdiff_t m_vecDamagePosition = 0x14; // Vector + constexpr std::ptrdiff_t m_vecReportedPosition = 0x20; // Vector + constexpr std::ptrdiff_t m_vecDamageDirection = 0x2C; // Vector + constexpr std::ptrdiff_t m_hInflictor = 0x38; // CHandle + constexpr std::ptrdiff_t m_hAttacker = 0x3C; // CHandle + constexpr std::ptrdiff_t m_hAbility = 0x40; // CHandle + constexpr std::ptrdiff_t m_flDamage = 0x44; // float + constexpr std::ptrdiff_t m_bitsDamageType = 0x48; // int32_t + constexpr std::ptrdiff_t m_iDamageCustom = 0x4C; // int32_t + constexpr std::ptrdiff_t m_iAmmoType = 0x50; // AmmoIndex_t + constexpr std::ptrdiff_t m_flOriginalDamage = 0x60; // float + constexpr std::ptrdiff_t m_bShouldBleed = 0x64; // bool + constexpr std::ptrdiff_t m_bShouldSpark = 0x65; // bool + constexpr std::ptrdiff_t m_nDamageFlags = 0x70; // TakeDamageFlags_t + constexpr std::ptrdiff_t m_nNumObjectsPenetrated = 0x74; // int32_t + constexpr std::ptrdiff_t m_hScriptInstance = 0x78; // HSCRIPT + constexpr std::ptrdiff_t m_bInTakeDamageFlow = 0x94; // bool +} + +namespace CTakeDamageResult { + constexpr std::ptrdiff_t m_nHealthLost = 0x0; // int32_t + constexpr std::ptrdiff_t m_nDamageTaken = 0x4; // int32_t +} + +namespace CTakeDamageSummaryScopeGuard { + constexpr std::ptrdiff_t m_vecSummaries = 0x8; // CUtlVector +} + +namespace CTankTargetChange { // CPointEntity + constexpr std::ptrdiff_t m_newTarget = 0x4B0; // CVariantBase + constexpr std::ptrdiff_t m_newTargetName = 0x4C0; // CUtlSymbolLarge +} + +namespace CTankTrainAI { // CPointEntity + constexpr std::ptrdiff_t m_hTrain = 0x4B0; // CHandle + constexpr std::ptrdiff_t m_hTargetEntity = 0x4B4; // CHandle + constexpr std::ptrdiff_t m_soundPlaying = 0x4B8; // int32_t + constexpr std::ptrdiff_t m_startSoundName = 0x4D0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_engineSoundName = 0x4D8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_movementSoundName = 0x4E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_targetEntityName = 0x4E8; // CUtlSymbolLarge +} + +namespace CTeam { // CBaseEntity + constexpr std::ptrdiff_t m_aPlayerControllers = 0x4B0; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_aPlayers = 0x4C8; // CNetworkUtlVectorBase> + constexpr std::ptrdiff_t m_iScore = 0x4E0; // int32_t + constexpr std::ptrdiff_t m_szTeamname = 0x4E4; // char[129] +} + +namespace CTeamplayRules { // CMultiplayRules +} + +namespace CTestEffect { // CBaseEntity + constexpr std::ptrdiff_t m_iLoop = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_iBeam = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_pBeam = 0x4B8; // CBeam*[24] + constexpr std::ptrdiff_t m_flBeamTime = 0x578; // GameTime_t[24] + constexpr std::ptrdiff_t m_flStartTime = 0x5D8; // GameTime_t +} + +namespace CTextureBasedAnimatable { // CBaseModelEntity + constexpr std::ptrdiff_t m_bLoop = 0x700; // bool + constexpr std::ptrdiff_t m_flFPS = 0x704; // float + constexpr std::ptrdiff_t m_hPositionKeys = 0x708; // CStrongHandle + constexpr std::ptrdiff_t m_hRotationKeys = 0x710; // CStrongHandle + constexpr std::ptrdiff_t m_vAnimationBoundsMin = 0x718; // Vector + constexpr std::ptrdiff_t m_vAnimationBoundsMax = 0x724; // Vector + constexpr std::ptrdiff_t m_flStartTime = 0x730; // float + constexpr std::ptrdiff_t m_flStartFrame = 0x734; // float +} + +namespace CTimeline { // IntervalTimer + constexpr std::ptrdiff_t m_flValues = 0x10; // float[64] + constexpr std::ptrdiff_t m_nValueCounts = 0x110; // int32_t[64] + constexpr std::ptrdiff_t m_nBucketCount = 0x210; // int32_t + constexpr std::ptrdiff_t m_flInterval = 0x214; // float + constexpr std::ptrdiff_t m_flFinalValue = 0x218; // float + constexpr std::ptrdiff_t m_nCompressionType = 0x21C; // TimelineCompression_t + constexpr std::ptrdiff_t m_bStopped = 0x220; // bool +} + +namespace CTimerEntity { // CLogicalEntity + constexpr std::ptrdiff_t m_OnTimer = 0x4B0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTimerHigh = 0x4D8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnTimerLow = 0x500; // CEntityIOOutput + constexpr std::ptrdiff_t m_iDisabled = 0x528; // int32_t + constexpr std::ptrdiff_t m_flInitialDelay = 0x52C; // float + constexpr std::ptrdiff_t m_flRefireTime = 0x530; // float + constexpr std::ptrdiff_t m_bUpDownState = 0x534; // bool + constexpr std::ptrdiff_t m_iUseRandomTime = 0x538; // int32_t + constexpr std::ptrdiff_t m_bPauseAfterFiring = 0x53C; // bool + constexpr std::ptrdiff_t m_flLowerRandomBound = 0x540; // float + constexpr std::ptrdiff_t m_flUpperRandomBound = 0x544; // float + constexpr std::ptrdiff_t m_flRemainingTime = 0x548; // float + constexpr std::ptrdiff_t m_bPaused = 0x54C; // bool +} + +namespace CTonemapController2 { // CBaseEntity + constexpr std::ptrdiff_t m_flAutoExposureMin = 0x4B0; // float + constexpr std::ptrdiff_t m_flAutoExposureMax = 0x4B4; // float + constexpr std::ptrdiff_t m_flTonemapPercentTarget = 0x4B8; // float + constexpr std::ptrdiff_t m_flTonemapPercentBrightPixels = 0x4BC; // float + constexpr std::ptrdiff_t m_flTonemapMinAvgLum = 0x4C0; // float + constexpr std::ptrdiff_t m_flExposureAdaptationSpeedUp = 0x4C4; // float + constexpr std::ptrdiff_t m_flExposureAdaptationSpeedDown = 0x4C8; // float + constexpr std::ptrdiff_t m_flTonemapEVSmoothingRange = 0x4CC; // float +} + +namespace CTonemapController2Alias_env_tonemap_controller2 { // CTonemapController2 +} + +namespace CTonemapTrigger { // CBaseTrigger + constexpr std::ptrdiff_t m_tonemapControllerName = 0x8A8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hTonemapController = 0x8B0; // CEntityHandle +} + +namespace CTouchExpansionComponent { // CEntityComponent +} + +namespace CTriggerActiveWeaponDetect { // CBaseTrigger + constexpr std::ptrdiff_t m_OnTouchedActiveWeapon = 0x8A8; // CEntityIOOutput + constexpr std::ptrdiff_t m_iszWeaponClassName = 0x8D0; // CUtlSymbolLarge +} + +namespace CTriggerBombReset { // CBaseTrigger +} + +namespace CTriggerBrush { // CBaseModelEntity + constexpr std::ptrdiff_t m_OnStartTouch = 0x700; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnEndTouch = 0x728; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnUse = 0x750; // CEntityIOOutput + constexpr std::ptrdiff_t m_iInputFilter = 0x778; // int32_t + constexpr std::ptrdiff_t m_iDontMessageParent = 0x77C; // int32_t +} + +namespace CTriggerBuoyancy { // CBaseTrigger + constexpr std::ptrdiff_t m_BuoyancyHelper = 0x8A8; // CBuoyancyHelper + constexpr std::ptrdiff_t m_flFluidDensity = 0x8C8; // float +} + +namespace CTriggerCallback { // CBaseTrigger +} + +namespace CTriggerDetectBulletFire { // CBaseTrigger + constexpr std::ptrdiff_t m_bPlayerFireOnly = 0x8A8; // bool + constexpr std::ptrdiff_t m_OnDetectedBulletFire = 0x8B0; // CEntityIOOutput +} + +namespace CTriggerDetectExplosion { // CBaseTrigger + constexpr std::ptrdiff_t m_OnDetectedExplosion = 0x8E0; // CEntityIOOutput +} + +namespace CTriggerFan { // CBaseTrigger + constexpr std::ptrdiff_t m_vFanOrigin = 0x8A8; // Vector + constexpr std::ptrdiff_t m_vFanEnd = 0x8B4; // Vector + constexpr std::ptrdiff_t m_vNoise = 0x8C0; // Vector + constexpr std::ptrdiff_t m_flForce = 0x8CC; // float + constexpr std::ptrdiff_t m_flPlayerForce = 0x8D0; // float + constexpr std::ptrdiff_t m_flRampTime = 0x8D4; // float + constexpr std::ptrdiff_t m_bFalloff = 0x8D8; // bool + constexpr std::ptrdiff_t m_bPushPlayer = 0x8D9; // bool + constexpr std::ptrdiff_t m_bRampDown = 0x8DA; // bool + constexpr std::ptrdiff_t m_bAddNoise = 0x8DB; // bool + constexpr std::ptrdiff_t m_RampTimer = 0x8E0; // CountdownTimer +} + +namespace CTriggerGameEvent { // CBaseTrigger + constexpr std::ptrdiff_t m_strStartTouchEventName = 0x8A8; // CUtlString + constexpr std::ptrdiff_t m_strEndTouchEventName = 0x8B0; // CUtlString + constexpr std::ptrdiff_t m_strTriggerID = 0x8B8; // CUtlString +} + +namespace CTriggerGravity { // CBaseTrigger +} + +namespace CTriggerHurt { // CBaseTrigger + constexpr std::ptrdiff_t m_flOriginalDamage = 0x8A8; // float + constexpr std::ptrdiff_t m_flDamage = 0x8AC; // float + constexpr std::ptrdiff_t m_flDamageCap = 0x8B0; // float + constexpr std::ptrdiff_t m_flLastDmgTime = 0x8B4; // GameTime_t + constexpr std::ptrdiff_t m_flForgivenessDelay = 0x8B8; // float + constexpr std::ptrdiff_t m_bitsDamageInflict = 0x8BC; // int32_t + constexpr std::ptrdiff_t m_damageModel = 0x8C0; // int32_t + constexpr std::ptrdiff_t m_bNoDmgForce = 0x8C4; // bool + constexpr std::ptrdiff_t m_vDamageForce = 0x8C8; // Vector + constexpr std::ptrdiff_t m_thinkAlways = 0x8D4; // bool + constexpr std::ptrdiff_t m_hurtThinkPeriod = 0x8D8; // float + constexpr std::ptrdiff_t m_OnHurt = 0x8E0; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnHurtPlayer = 0x908; // CEntityIOOutput + constexpr std::ptrdiff_t m_hurtEntities = 0x930; // CUtlVector> +} + +namespace CTriggerHurtGhost { // CTriggerHurt +} + +namespace CTriggerImpact { // CTriggerMultiple + constexpr std::ptrdiff_t m_flMagnitude = 0x8D0; // float + constexpr std::ptrdiff_t m_flNoise = 0x8D4; // float + constexpr std::ptrdiff_t m_flViewkick = 0x8D8; // float + constexpr std::ptrdiff_t m_pOutputForce = 0x8E0; // CEntityOutputTemplate +} + +namespace CTriggerLerpObject { // CBaseTrigger + constexpr std::ptrdiff_t m_iszLerpTarget = 0x8A8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hLerpTarget = 0x8B0; // CHandle + constexpr std::ptrdiff_t m_iszLerpTargetAttachment = 0x8B8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hLerpTargetAttachment = 0x8C0; // AttachmentHandle_t + constexpr std::ptrdiff_t m_flLerpDuration = 0x8C4; // float + constexpr std::ptrdiff_t m_bLerpRestoreMoveType = 0x8C8; // bool + constexpr std::ptrdiff_t m_bSingleLerpObject = 0x8C9; // bool + constexpr std::ptrdiff_t m_vecLerpingObjects = 0x8D0; // CUtlVector + constexpr std::ptrdiff_t m_iszLerpEffect = 0x8E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszLerpSound = 0x8F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_OnLerpStarted = 0x8F8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnLerpFinished = 0x920; // CEntityIOOutput +} + +namespace CTriggerLook { // CTriggerOnce + constexpr std::ptrdiff_t m_hLookTarget = 0x8D0; // CHandle + constexpr std::ptrdiff_t m_flFieldOfView = 0x8D4; // float + constexpr std::ptrdiff_t m_flLookTime = 0x8D8; // float + constexpr std::ptrdiff_t m_flLookTimeTotal = 0x8DC; // float + constexpr std::ptrdiff_t m_flLookTimeLast = 0x8E0; // GameTime_t + constexpr std::ptrdiff_t m_flTimeoutDuration = 0x8E4; // float + constexpr std::ptrdiff_t m_bTimeoutFired = 0x8E8; // bool + constexpr std::ptrdiff_t m_bIsLooking = 0x8E9; // bool + constexpr std::ptrdiff_t m_b2DFOV = 0x8EA; // bool + constexpr std::ptrdiff_t m_bUseVelocity = 0x8EB; // bool + constexpr std::ptrdiff_t m_hActivator = 0x8EC; // CHandle + constexpr std::ptrdiff_t m_bTestOcclusion = 0x8F0; // bool + constexpr std::ptrdiff_t m_OnTimeout = 0x8F8; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnStartLook = 0x920; // CEntityIOOutput + constexpr std::ptrdiff_t m_OnEndLook = 0x948; // CEntityIOOutput +} + +namespace CTriggerMultiple { // CBaseTrigger + constexpr std::ptrdiff_t m_OnTrigger = 0x8A8; // CEntityIOOutput +} + +namespace CTriggerOnce { // CTriggerMultiple +} + +namespace CTriggerPhysics { // CBaseTrigger + constexpr std::ptrdiff_t m_gravityScale = 0x8B8; // float + constexpr std::ptrdiff_t m_linearLimit = 0x8BC; // float + constexpr std::ptrdiff_t m_linearDamping = 0x8C0; // float + constexpr std::ptrdiff_t m_angularLimit = 0x8C4; // float + constexpr std::ptrdiff_t m_angularDamping = 0x8C8; // float + constexpr std::ptrdiff_t m_linearForce = 0x8CC; // float + constexpr std::ptrdiff_t m_flFrequency = 0x8D0; // float + constexpr std::ptrdiff_t m_flDampingRatio = 0x8D4; // float + constexpr std::ptrdiff_t m_vecLinearForcePointAt = 0x8D8; // Vector + constexpr std::ptrdiff_t m_bCollapseToForcePoint = 0x8E4; // bool + constexpr std::ptrdiff_t m_vecLinearForcePointAtWorld = 0x8E8; // Vector + constexpr std::ptrdiff_t m_vecLinearForceDirection = 0x8F4; // Vector + constexpr std::ptrdiff_t m_bConvertToDebrisWhenPossible = 0x900; // bool +} + +namespace CTriggerProximity { // CBaseTrigger + constexpr std::ptrdiff_t m_hMeasureTarget = 0x8A8; // CHandle + constexpr std::ptrdiff_t m_iszMeasureTarget = 0x8B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_fRadius = 0x8B8; // float + constexpr std::ptrdiff_t m_nTouchers = 0x8BC; // int32_t + constexpr std::ptrdiff_t m_NearestEntityDistance = 0x8C0; // CEntityOutputTemplate +} + +namespace CTriggerPush { // CBaseTrigger + constexpr std::ptrdiff_t m_angPushEntitySpace = 0x8A8; // QAngle + constexpr std::ptrdiff_t m_vecPushDirEntitySpace = 0x8B4; // Vector + constexpr std::ptrdiff_t m_bTriggerOnStartTouch = 0x8C0; // bool + constexpr std::ptrdiff_t m_flAlternateTicksFix = 0x8C4; // float + constexpr std::ptrdiff_t m_flPushSpeed = 0x8C8; // float +} + +namespace CTriggerRemove { // CBaseTrigger + constexpr std::ptrdiff_t m_OnRemove = 0x8A8; // CEntityIOOutput +} + +namespace CTriggerSave { // CBaseTrigger + constexpr std::ptrdiff_t m_bForceNewLevelUnit = 0x8A8; // bool + constexpr std::ptrdiff_t m_fDangerousTimer = 0x8AC; // float + constexpr std::ptrdiff_t m_minHitPoints = 0x8B0; // int32_t +} + +namespace CTriggerSndSosOpvar { // CBaseTrigger + constexpr std::ptrdiff_t m_hTouchingPlayers = 0x8A8; // CUtlVector> + constexpr std::ptrdiff_t m_flPosition = 0x8C0; // Vector + constexpr std::ptrdiff_t m_flCenterSize = 0x8CC; // float + constexpr std::ptrdiff_t m_flMinVal = 0x8D0; // float + constexpr std::ptrdiff_t m_flMaxVal = 0x8D4; // float + constexpr std::ptrdiff_t m_flWait = 0x8D8; // float + constexpr std::ptrdiff_t m_opvarName = 0x8E0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_stackName = 0x8E8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_operatorName = 0x8F0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bVolIs2D = 0x8F8; // bool + constexpr std::ptrdiff_t m_opvarNameChar = 0x8F9; // char[256] + constexpr std::ptrdiff_t m_stackNameChar = 0x9F9; // char[256] + constexpr std::ptrdiff_t m_operatorNameChar = 0xAF9; // char[256] + constexpr std::ptrdiff_t m_VecNormPos = 0xBFC; // Vector + constexpr std::ptrdiff_t m_flNormCenterSize = 0xC08; // float +} + +namespace CTriggerSoundscape { // CBaseTrigger + constexpr std::ptrdiff_t m_hSoundscape = 0x8A8; // CHandle + constexpr std::ptrdiff_t m_SoundscapeName = 0x8B0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_spectators = 0x8B8; // CUtlVector> +} + +namespace CTriggerTeleport { // CBaseTrigger + constexpr std::ptrdiff_t m_iLandmark = 0x8A8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_bUseLandmarkAngles = 0x8B0; // bool + constexpr std::ptrdiff_t m_bMirrorPlayer = 0x8B1; // bool +} + +namespace CTriggerToggleSave { // CBaseTrigger + constexpr std::ptrdiff_t m_bDisabled = 0x8A8; // bool +} + +namespace CTriggerTripWire { // CBaseTrigger +} + +namespace CTriggerVolume { // CBaseModelEntity + constexpr std::ptrdiff_t m_iFilterName = 0x700; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_hFilter = 0x708; // CHandle +} + +namespace CTripWireFire { // CBaseCSGrenade +} + +namespace CTripWireFireProjectile { // CBaseGrenade +} + +namespace CVoteController { // CBaseEntity + constexpr std::ptrdiff_t m_iActiveIssueIndex = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_iOnlyTeamToVote = 0x4B4; // int32_t + constexpr std::ptrdiff_t m_nVoteOptionCount = 0x4B8; // int32_t[5] + constexpr std::ptrdiff_t m_nPotentialVotes = 0x4CC; // int32_t + constexpr std::ptrdiff_t m_bIsYesNoVote = 0x4D0; // bool + constexpr std::ptrdiff_t m_acceptingVotesTimer = 0x4D8; // CountdownTimer + constexpr std::ptrdiff_t m_executeCommandTimer = 0x4F0; // CountdownTimer + constexpr std::ptrdiff_t m_resetVoteTimer = 0x508; // CountdownTimer + constexpr std::ptrdiff_t m_nVotesCast = 0x520; // int32_t[64] + constexpr std::ptrdiff_t m_playerHoldingVote = 0x620; // CPlayerSlot + constexpr std::ptrdiff_t m_playerOverrideForVote = 0x624; // CPlayerSlot + constexpr std::ptrdiff_t m_nHighestCountIndex = 0x628; // int32_t + constexpr std::ptrdiff_t m_potentialIssues = 0x630; // CUtlVector + constexpr std::ptrdiff_t m_VoteOptions = 0x648; // CUtlVector +} + +namespace CWaterBullet { // CBaseAnimGraph +} + +namespace CWeaponAWP { // CCSWeaponBaseGun +} + +namespace CWeaponAug { // CCSWeaponBaseGun +} + +namespace CWeaponBaseItem { // CCSWeaponBase + constexpr std::ptrdiff_t m_SequenceCompleteTimer = 0xE18; // CountdownTimer + constexpr std::ptrdiff_t m_bRedraw = 0xE30; // bool +} + +namespace CWeaponBizon { // CCSWeaponBaseGun +} + +namespace CWeaponCZ75a { // CCSWeaponBaseGun +} + +namespace CWeaponElite { // CCSWeaponBaseGun +} + +namespace CWeaponFamas { // CCSWeaponBaseGun +} + +namespace CWeaponFiveSeven { // CCSWeaponBaseGun +} + +namespace CWeaponG3SG1 { // CCSWeaponBaseGun +} + +namespace CWeaponGalilAR { // CCSWeaponBaseGun +} + +namespace CWeaponGlock { // CCSWeaponBaseGun +} + +namespace CWeaponHKP2000 { // CCSWeaponBaseGun +} + +namespace CWeaponM249 { // CCSWeaponBaseGun +} + +namespace CWeaponM4A1 { // CCSWeaponBaseGun +} + +namespace CWeaponM4A1Silencer { // CCSWeaponBaseGun +} + +namespace CWeaponMAC10 { // CCSWeaponBaseGun +} + +namespace CWeaponMP5SD { // CCSWeaponBaseGun +} + +namespace CWeaponMP7 { // CCSWeaponBaseGun +} + +namespace CWeaponMP9 { // CCSWeaponBaseGun +} + +namespace CWeaponMag7 { // CCSWeaponBaseGun +} + +namespace CWeaponNOVA { // CCSWeaponBase +} + +namespace CWeaponNegev { // CCSWeaponBaseGun +} + +namespace CWeaponP250 { // CCSWeaponBaseGun +} + +namespace CWeaponP90 { // CCSWeaponBaseGun +} + +namespace CWeaponRevolver { // CCSWeaponBaseGun +} + +namespace CWeaponSCAR20 { // CCSWeaponBaseGun +} + +namespace CWeaponSG556 { // CCSWeaponBaseGun +} + +namespace CWeaponSSG08 { // CCSWeaponBaseGun +} + +namespace CWeaponSawedoff { // CCSWeaponBase +} + +namespace CWeaponShield { // CCSWeaponBaseGun + constexpr std::ptrdiff_t m_flBulletDamageAbsorbed = 0xE38; // float + constexpr std::ptrdiff_t m_flLastBulletHitSoundTime = 0xE3C; // GameTime_t + constexpr std::ptrdiff_t m_flDisplayHealth = 0xE40; // float +} + +namespace CWeaponTaser { // CCSWeaponBaseGun + constexpr std::ptrdiff_t m_fFireTime = 0xE38; // GameTime_t +} + +namespace CWeaponTec9 { // CCSWeaponBaseGun +} + +namespace CWeaponUMP45 { // CCSWeaponBaseGun +} + +namespace CWeaponUSPSilencer { // CCSWeaponBaseGun +} + +namespace CWeaponXM1014 { // CCSWeaponBase +} + +namespace CWeaponZoneRepulsor { // CCSWeaponBaseGun +} + +namespace CWorld { // CBaseModelEntity +} + +namespace CommandToolCommand_t { + constexpr std::ptrdiff_t m_bEnabled = 0x0; // bool + constexpr std::ptrdiff_t m_bOpened = 0x1; // bool + constexpr std::ptrdiff_t m_InternalId = 0x4; // uint32_t + constexpr std::ptrdiff_t m_ShortName = 0x8; // CUtlString + constexpr std::ptrdiff_t m_ExecMode = 0x10; // CommandExecMode_t + constexpr std::ptrdiff_t m_SpawnGroup = 0x18; // CUtlString + constexpr std::ptrdiff_t m_PeriodicExecDelay = 0x20; // float + constexpr std::ptrdiff_t m_SpecType = 0x24; // CommandEntitySpecType_t + constexpr std::ptrdiff_t m_EntitySpec = 0x28; // CUtlString + constexpr std::ptrdiff_t m_Commands = 0x30; // CUtlString + constexpr std::ptrdiff_t m_SetDebugBits = 0x38; // DebugOverlayBits_t + constexpr std::ptrdiff_t m_ClearDebugBits = 0x40; // DebugOverlayBits_t +} + +namespace ConceptHistory_t { + constexpr std::ptrdiff_t timeSpoken = 0x0; // float + constexpr std::ptrdiff_t m_response = 0x8; // CRR_Response +} + +namespace ConstraintSoundInfo { + constexpr std::ptrdiff_t m_vSampler = 0x8; // VelocitySampler + constexpr std::ptrdiff_t m_soundProfile = 0x20; // SimpleConstraintSoundProfile + constexpr std::ptrdiff_t m_forwardAxis = 0x40; // Vector + constexpr std::ptrdiff_t m_iszTravelSoundFwd = 0x50; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszTravelSoundBack = 0x58; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszReversalSounds = 0x68; // CUtlSymbolLarge[3] + constexpr std::ptrdiff_t m_bPlayTravelSound = 0x80; // bool + constexpr std::ptrdiff_t m_bPlayReversalSound = 0x81; // bool +} + +namespace CountdownTimer { + constexpr std::ptrdiff_t m_duration = 0x8; // float + constexpr std::ptrdiff_t m_timestamp = 0xC; // GameTime_t + constexpr std::ptrdiff_t m_timescale = 0x10; // float + constexpr std::ptrdiff_t m_nWorldGroupId = 0x14; // WorldGroupId_t +} + +namespace EngineCountdownTimer { + constexpr std::ptrdiff_t m_duration = 0x8; // float + constexpr std::ptrdiff_t m_timestamp = 0xC; // float + constexpr std::ptrdiff_t m_timescale = 0x10; // float +} + +namespace EntityRenderAttribute_t { + constexpr std::ptrdiff_t m_ID = 0x30; // CUtlStringToken + constexpr std::ptrdiff_t m_Values = 0x34; // Vector4D +} + +namespace EntitySpottedState_t { + constexpr std::ptrdiff_t m_bSpotted = 0x8; // bool + constexpr std::ptrdiff_t m_bSpottedByMask = 0xC; // uint32_t[2] +} + +namespace Extent { + constexpr std::ptrdiff_t lo = 0x0; // Vector + constexpr std::ptrdiff_t hi = 0xC; // Vector +} + +namespace FilterDamageType { // CBaseFilter + constexpr std::ptrdiff_t m_iDamageType = 0x508; // int32_t +} + +namespace FilterHealth { // CBaseFilter + constexpr std::ptrdiff_t m_bAdrenalineActive = 0x508; // bool + constexpr std::ptrdiff_t m_iHealthMin = 0x50C; // int32_t + constexpr std::ptrdiff_t m_iHealthMax = 0x510; // int32_t +} + +namespace FilterTeam { // CBaseFilter + constexpr std::ptrdiff_t m_iFilterTeam = 0x508; // int32_t +} + +namespace GameAmmoTypeInfo_t { // AmmoTypeInfo_t + constexpr std::ptrdiff_t m_nBuySize = 0x38; // int32_t + constexpr std::ptrdiff_t m_nCost = 0x3C; // int32_t +} + +namespace GameTick_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace GameTime_t { + constexpr std::ptrdiff_t m_Value = 0x0; // float +} + +namespace HullFlags_t { + constexpr std::ptrdiff_t m_bHull_Human = 0x0; // bool + constexpr std::ptrdiff_t m_bHull_SmallCentered = 0x1; // bool + constexpr std::ptrdiff_t m_bHull_WideHuman = 0x2; // bool + constexpr std::ptrdiff_t m_bHull_Tiny = 0x3; // bool + constexpr std::ptrdiff_t m_bHull_Medium = 0x4; // bool + constexpr std::ptrdiff_t m_bHull_TinyCentered = 0x5; // bool + constexpr std::ptrdiff_t m_bHull_Large = 0x6; // bool + constexpr std::ptrdiff_t m_bHull_LargeCentered = 0x7; // bool + constexpr std::ptrdiff_t m_bHull_MediumTall = 0x8; // bool + constexpr std::ptrdiff_t m_bHull_Small = 0x9; // bool +} + +namespace IChoreoServices { +} + +namespace IEconItemInterface { +} + +namespace IHasAttributes { +} + +namespace IRagdoll { +} + +namespace ISkeletonAnimationController { +} + +namespace IVehicle { +} + +namespace IntervalTimer { + constexpr std::ptrdiff_t m_timestamp = 0x8; // GameTime_t + constexpr std::ptrdiff_t m_nWorldGroupId = 0xC; // WorldGroupId_t +} + +namespace ModelConfigHandle_t { + constexpr std::ptrdiff_t m_Value = 0x0; // uint32_t +} + +namespace ParticleIndex_t { + constexpr std::ptrdiff_t m_Value = 0x0; // int32_t +} + +namespace PhysicsRagdollPose_t { + constexpr std::ptrdiff_t __m_pChainEntity = 0x8; // CNetworkVarChainer + constexpr std::ptrdiff_t m_Transforms = 0x30; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_hOwner = 0x48; // CHandle +} + +namespace QuestProgress { +} + +namespace RagdollCreationParams_t { + constexpr std::ptrdiff_t m_vForce = 0x0; // Vector + constexpr std::ptrdiff_t m_nForceBone = 0xC; // int32_t +} + +namespace RelationshipOverride_t { // Relationship_t + constexpr std::ptrdiff_t entity = 0x8; // CHandle + constexpr std::ptrdiff_t classType = 0xC; // Class_T +} + +namespace Relationship_t { + constexpr std::ptrdiff_t disposition = 0x0; // Disposition_t + constexpr std::ptrdiff_t priority = 0x4; // int32_t +} + +namespace ResponseContext_t { + constexpr std::ptrdiff_t m_iszName = 0x0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_iszValue = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_fExpirationTime = 0x10; // GameTime_t +} + +namespace ResponseFollowup { + constexpr std::ptrdiff_t followup_concept = 0x0; // char* + constexpr std::ptrdiff_t followup_contexts = 0x8; // char* + constexpr std::ptrdiff_t followup_delay = 0x10; // float + constexpr std::ptrdiff_t followup_target = 0x14; // char* + constexpr std::ptrdiff_t followup_entityiotarget = 0x1C; // char* + constexpr std::ptrdiff_t followup_entityioinput = 0x24; // char* + constexpr std::ptrdiff_t followup_entityiodelay = 0x2C; // float + constexpr std::ptrdiff_t bFired = 0x30; // bool +} + +namespace ResponseParams { + constexpr std::ptrdiff_t odds = 0x10; // int16_t + constexpr std::ptrdiff_t flags = 0x12; // int16_t + constexpr std::ptrdiff_t m_pFollowup = 0x18; // ResponseFollowup* +} + +namespace SellbackPurchaseEntry_t { + constexpr std::ptrdiff_t m_unDefIdx = 0x30; // uint16_t + constexpr std::ptrdiff_t m_nCost = 0x34; // int32_t + constexpr std::ptrdiff_t m_nPrevArmor = 0x38; // int32_t + constexpr std::ptrdiff_t m_bPrevHelmet = 0x3C; // bool + constexpr std::ptrdiff_t m_hItem = 0x40; // CEntityHandle +} + +namespace ServerAuthoritativeWeaponSlot_t { + constexpr std::ptrdiff_t unClass = 0x28; // uint16_t + constexpr std::ptrdiff_t unSlot = 0x2A; // uint16_t + constexpr std::ptrdiff_t unItemDefIdx = 0x2C; // uint16_t +} + +namespace SimpleConstraintSoundProfile { + constexpr std::ptrdiff_t eKeypoints = 0x8; // SimpleConstraintSoundProfile::SimpleConstraintsSoundProfileKeypoints_t + constexpr std::ptrdiff_t m_keyPoints = 0xC; // float[2] + constexpr std::ptrdiff_t m_reversalSoundThresholds = 0x14; // float[3] +} + +namespace SpawnPoint { // CServerOnlyPointEntity + constexpr std::ptrdiff_t m_iPriority = 0x4B0; // int32_t + constexpr std::ptrdiff_t m_bEnabled = 0x4B4; // bool + constexpr std::ptrdiff_t m_nType = 0x4B8; // int32_t +} + +namespace SpawnPointCoopEnemy { // SpawnPoint + constexpr std::ptrdiff_t m_szWeaponsToGive = 0x4C0; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_szPlayerModelToUse = 0x4C8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_nArmorToSpawnWith = 0x4D0; // int32_t + constexpr std::ptrdiff_t m_nDefaultBehavior = 0x4D4; // SpawnPointCoopEnemy::BotDefaultBehavior_t + constexpr std::ptrdiff_t m_nBotDifficulty = 0x4D8; // int32_t + constexpr std::ptrdiff_t m_bIsAgressive = 0x4DC; // bool + constexpr std::ptrdiff_t m_bStartAsleep = 0x4DD; // bool + constexpr std::ptrdiff_t m_flHideRadius = 0x4E0; // float + constexpr std::ptrdiff_t m_szBehaviorTreeFile = 0x4F0; // CUtlSymbolLarge +} + +namespace SummaryTakeDamageInfo_t { + constexpr std::ptrdiff_t nSummarisedCount = 0x0; // int32_t + constexpr std::ptrdiff_t info = 0x8; // CTakeDamageInfo + constexpr std::ptrdiff_t result = 0xA0; // CTakeDamageResult + constexpr std::ptrdiff_t hTarget = 0xA8; // CHandle +} + +namespace VPhysicsCollisionAttribute_t { + constexpr std::ptrdiff_t m_nInteractsAs = 0x8; // uint64_t + constexpr std::ptrdiff_t m_nInteractsWith = 0x10; // uint64_t + constexpr std::ptrdiff_t m_nInteractsExclude = 0x18; // uint64_t + constexpr std::ptrdiff_t m_nEntityId = 0x20; // uint32_t + constexpr std::ptrdiff_t m_nOwnerId = 0x24; // uint32_t + constexpr std::ptrdiff_t m_nHierarchyId = 0x28; // uint16_t + constexpr std::ptrdiff_t m_nCollisionGroup = 0x2A; // uint8_t + constexpr std::ptrdiff_t m_nCollisionFunctionMask = 0x2B; // uint8_t +} + +namespace VelocitySampler { + constexpr std::ptrdiff_t m_prevSample = 0x0; // Vector + constexpr std::ptrdiff_t m_fPrevSampleTime = 0xC; // GameTime_t + constexpr std::ptrdiff_t m_fIdealSampleRate = 0x10; // float +} + +namespace ViewAngleServerChange_t { + constexpr std::ptrdiff_t nType = 0x30; // FixAngleSet_t + constexpr std::ptrdiff_t qAngle = 0x34; // QAngle + constexpr std::ptrdiff_t nIndex = 0x40; // uint32_t +} + +namespace WeaponPurchaseCount_t { + constexpr std::ptrdiff_t m_nItemDefIndex = 0x30; // uint16_t + constexpr std::ptrdiff_t m_nCount = 0x32; // uint16_t +} + +namespace WeaponPurchaseTracker_t { + constexpr std::ptrdiff_t m_weaponPurchases = 0x8; // CUtlVectorEmbeddedNetworkVar +} + +namespace audioparams_t { + constexpr std::ptrdiff_t localSound = 0x8; // Vector[8] + constexpr std::ptrdiff_t soundscapeIndex = 0x68; // int32_t + constexpr std::ptrdiff_t localBits = 0x6C; // uint8_t + constexpr std::ptrdiff_t soundscapeEntityListIndex = 0x70; // int32_t + constexpr std::ptrdiff_t soundEventHash = 0x74; // uint32_t +} + +namespace dynpitchvol_base_t { + constexpr std::ptrdiff_t preset = 0x0; // int32_t + constexpr std::ptrdiff_t pitchrun = 0x4; // int32_t + constexpr std::ptrdiff_t pitchstart = 0x8; // int32_t + constexpr std::ptrdiff_t spinup = 0xC; // int32_t + constexpr std::ptrdiff_t spindown = 0x10; // int32_t + constexpr std::ptrdiff_t volrun = 0x14; // int32_t + constexpr std::ptrdiff_t volstart = 0x18; // int32_t + constexpr std::ptrdiff_t fadein = 0x1C; // int32_t + constexpr std::ptrdiff_t fadeout = 0x20; // int32_t + constexpr std::ptrdiff_t lfotype = 0x24; // int32_t + constexpr std::ptrdiff_t lforate = 0x28; // int32_t + constexpr std::ptrdiff_t lfomodpitch = 0x2C; // int32_t + constexpr std::ptrdiff_t lfomodvol = 0x30; // int32_t + constexpr std::ptrdiff_t cspinup = 0x34; // int32_t + constexpr std::ptrdiff_t cspincount = 0x38; // int32_t + constexpr std::ptrdiff_t pitch = 0x3C; // int32_t + constexpr std::ptrdiff_t spinupsav = 0x40; // int32_t + constexpr std::ptrdiff_t spindownsav = 0x44; // int32_t + constexpr std::ptrdiff_t pitchfrac = 0x48; // int32_t + constexpr std::ptrdiff_t vol = 0x4C; // int32_t + constexpr std::ptrdiff_t fadeinsav = 0x50; // int32_t + constexpr std::ptrdiff_t fadeoutsav = 0x54; // int32_t + constexpr std::ptrdiff_t volfrac = 0x58; // int32_t + constexpr std::ptrdiff_t lfofrac = 0x5C; // int32_t + constexpr std::ptrdiff_t lfomult = 0x60; // int32_t +} + +namespace dynpitchvol_t { // dynpitchvol_base_t +} + +namespace fogparams_t { + constexpr std::ptrdiff_t dirPrimary = 0x8; // Vector + constexpr std::ptrdiff_t colorPrimary = 0x14; // Color + constexpr std::ptrdiff_t colorSecondary = 0x18; // Color + constexpr std::ptrdiff_t colorPrimaryLerpTo = 0x1C; // Color + constexpr std::ptrdiff_t colorSecondaryLerpTo = 0x20; // Color + constexpr std::ptrdiff_t start = 0x24; // float + constexpr std::ptrdiff_t end = 0x28; // float + constexpr std::ptrdiff_t farz = 0x2C; // float + constexpr std::ptrdiff_t maxdensity = 0x30; // float + constexpr std::ptrdiff_t exponent = 0x34; // float + constexpr std::ptrdiff_t HDRColorScale = 0x38; // float + constexpr std::ptrdiff_t skyboxFogFactor = 0x3C; // float + constexpr std::ptrdiff_t skyboxFogFactorLerpTo = 0x40; // float + constexpr std::ptrdiff_t startLerpTo = 0x44; // float + constexpr std::ptrdiff_t endLerpTo = 0x48; // float + constexpr std::ptrdiff_t maxdensityLerpTo = 0x4C; // float + constexpr std::ptrdiff_t lerptime = 0x50; // GameTime_t + constexpr std::ptrdiff_t duration = 0x54; // float + constexpr std::ptrdiff_t blendtobackground = 0x58; // float + constexpr std::ptrdiff_t scattering = 0x5C; // float + constexpr std::ptrdiff_t locallightscale = 0x60; // float + constexpr std::ptrdiff_t enable = 0x64; // bool + constexpr std::ptrdiff_t blend = 0x65; // bool + constexpr std::ptrdiff_t m_bNoReflectionFog = 0x66; // bool + constexpr std::ptrdiff_t m_bPadding = 0x67; // bool +} + +namespace fogplayerparams_t { + constexpr std::ptrdiff_t m_hCtrl = 0x8; // CHandle + constexpr std::ptrdiff_t m_flTransitionTime = 0xC; // float + constexpr std::ptrdiff_t m_OldColor = 0x10; // Color + constexpr std::ptrdiff_t m_flOldStart = 0x14; // float + constexpr std::ptrdiff_t m_flOldEnd = 0x18; // float + constexpr std::ptrdiff_t m_flOldMaxDensity = 0x1C; // float + constexpr std::ptrdiff_t m_flOldHDRColorScale = 0x20; // float + constexpr std::ptrdiff_t m_flOldFarZ = 0x24; // float + constexpr std::ptrdiff_t m_NewColor = 0x28; // Color + constexpr std::ptrdiff_t m_flNewStart = 0x2C; // float + constexpr std::ptrdiff_t m_flNewEnd = 0x30; // float + constexpr std::ptrdiff_t m_flNewMaxDensity = 0x34; // float + constexpr std::ptrdiff_t m_flNewHDRColorScale = 0x38; // float + constexpr std::ptrdiff_t m_flNewFarZ = 0x3C; // float +} + +namespace hudtextparms_t { + constexpr std::ptrdiff_t color1 = 0x0; // Color + constexpr std::ptrdiff_t color2 = 0x4; // Color + constexpr std::ptrdiff_t effect = 0x8; // uint8_t + constexpr std::ptrdiff_t channel = 0x9; // uint8_t + constexpr std::ptrdiff_t x = 0xC; // float + constexpr std::ptrdiff_t y = 0x10; // float +} + +namespace lerpdata_t { + constexpr std::ptrdiff_t m_hEnt = 0x0; // CHandle + constexpr std::ptrdiff_t m_MoveType = 0x4; // MoveType_t + constexpr std::ptrdiff_t m_flStartTime = 0x8; // GameTime_t + constexpr std::ptrdiff_t m_vecStartOrigin = 0xC; // Vector + constexpr std::ptrdiff_t m_qStartRot = 0x20; // Quaternion + constexpr std::ptrdiff_t m_nFXIndex = 0x30; // ParticleIndex_t +} + +namespace locksound_t { + constexpr std::ptrdiff_t sLockedSound = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t sUnlockedSound = 0x10; // CUtlSymbolLarge + constexpr std::ptrdiff_t flwaitSound = 0x18; // GameTime_t +} + +namespace magnetted_objects_t { + constexpr std::ptrdiff_t hEntity = 0x8; // CHandle +} + +namespace ragdoll_t { + constexpr std::ptrdiff_t list = 0x0; // CUtlVector + constexpr std::ptrdiff_t boneIndex = 0x18; // CUtlVector + constexpr std::ptrdiff_t allowStretch = 0x30; // bool + constexpr std::ptrdiff_t unused = 0x31; // bool +} + +namespace ragdollelement_t { + constexpr std::ptrdiff_t originParentSpace = 0x0; // Vector + constexpr std::ptrdiff_t parentIndex = 0x20; // int32_t + constexpr std::ptrdiff_t m_flRadius = 0x24; // float +} + +namespace shard_model_desc_t { + constexpr std::ptrdiff_t m_nModelID = 0x8; // int32_t + constexpr std::ptrdiff_t m_hMaterial = 0x10; // CStrongHandle + constexpr std::ptrdiff_t m_solid = 0x18; // ShardSolid_t + constexpr std::ptrdiff_t m_ShatterPanelMode = 0x19; // ShatterPanelMode + constexpr std::ptrdiff_t m_vecPanelSize = 0x1C; // Vector2D + constexpr std::ptrdiff_t m_vecStressPositionA = 0x24; // Vector2D + constexpr std::ptrdiff_t m_vecStressPositionB = 0x2C; // Vector2D + constexpr std::ptrdiff_t m_vecPanelVertices = 0x38; // CNetworkUtlVectorBase + constexpr std::ptrdiff_t m_flGlassHalfThickness = 0x50; // float + constexpr std::ptrdiff_t m_bHasParent = 0x54; // bool + constexpr std::ptrdiff_t m_bParentFrozen = 0x55; // bool + constexpr std::ptrdiff_t m_SurfacePropStringToken = 0x58; // CUtlStringToken +} + +namespace sky3dparams_t { + constexpr std::ptrdiff_t scale = 0x8; // int16_t + constexpr std::ptrdiff_t origin = 0xC; // Vector + constexpr std::ptrdiff_t bClip3DSkyBoxNearToWorldFar = 0x18; // bool + constexpr std::ptrdiff_t flClip3DSkyBoxNearToWorldFarOffset = 0x1C; // float + constexpr std::ptrdiff_t fog = 0x20; // fogparams_t + constexpr std::ptrdiff_t m_nWorldGroupID = 0x88; // WorldGroupId_t +} + +namespace thinkfunc_t { + constexpr std::ptrdiff_t m_hFn = 0x8; // HSCRIPT + constexpr std::ptrdiff_t m_nContext = 0x10; // CUtlStringToken + constexpr std::ptrdiff_t m_nNextThinkTick = 0x14; // GameTick_t + constexpr std::ptrdiff_t m_nLastThinkTick = 0x18; // GameTick_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/soundsystem.dll.hpp b/HPCS2/HPCS2/offset/soundsystem.dll.hpp new file mode 100644 index 0000000..e8c8acc --- /dev/null +++ b/HPCS2/HPCS2/offset/soundsystem.dll.hpp @@ -0,0 +1,313 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace CDSPMixgroupModifier { + constexpr std::ptrdiff_t m_mixgroup = 0x0; // CUtlString + constexpr std::ptrdiff_t m_flModifier = 0x8; // float + constexpr std::ptrdiff_t m_flModifierMin = 0xC; // float + constexpr std::ptrdiff_t m_flSourceModifier = 0x10; // float + constexpr std::ptrdiff_t m_flSourceModifierMin = 0x14; // float + constexpr std::ptrdiff_t m_flListenerReverbModifierWhenSourceReverbIsActive = 0x18; // float +} + +namespace CDSPPresetMixgroupModifierTable { + constexpr std::ptrdiff_t m_table = 0x0; // CUtlVector +} + +namespace CDspPresetModifierList { + constexpr std::ptrdiff_t m_dspName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_modifiers = 0x8; // CUtlVector +} + +namespace CSosGroupActionLimitSchema { // CSosGroupActionSchema + constexpr std::ptrdiff_t m_nMaxCount = 0x18; // int32_t + constexpr std::ptrdiff_t m_nStopType = 0x1C; // SosActionStopType_t + constexpr std::ptrdiff_t m_nSortType = 0x20; // SosActionSortType_t +} + +namespace CSosGroupActionSchema { + constexpr std::ptrdiff_t m_name = 0x8; // CUtlString + constexpr std::ptrdiff_t m_actionType = 0x10; // ActionType_t + constexpr std::ptrdiff_t m_actionInstanceType = 0x14; // ActionType_t +} + +namespace CSosGroupActionSetSoundeventParameterSchema { // CSosGroupActionSchema + constexpr std::ptrdiff_t m_nMaxCount = 0x18; // int32_t + constexpr std::ptrdiff_t m_flMinValue = 0x1C; // float + constexpr std::ptrdiff_t m_flMaxValue = 0x20; // float + constexpr std::ptrdiff_t m_opvarName = 0x28; // CUtlString + constexpr std::ptrdiff_t m_nSortType = 0x30; // SosActionSortType_t +} + +namespace CSosGroupActionTimeLimitSchema { // CSosGroupActionSchema + constexpr std::ptrdiff_t m_flMaxDuration = 0x18; // float +} + +namespace CSosGroupBranchPattern { + constexpr std::ptrdiff_t m_bMatchEventName = 0x8; // bool + constexpr std::ptrdiff_t m_bMatchEventSubString = 0x9; // bool + constexpr std::ptrdiff_t m_bMatchEntIndex = 0xA; // bool + constexpr std::ptrdiff_t m_bMatchOpvar = 0xB; // bool +} + +namespace CSosGroupMatchPattern { // CSosGroupBranchPattern + constexpr std::ptrdiff_t m_matchSoundEventName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_matchSoundEventSubString = 0x18; // CUtlString + constexpr std::ptrdiff_t m_flEntIndex = 0x20; // float + constexpr std::ptrdiff_t m_flOpvar = 0x24; // float +} + +namespace CSosSoundEventGroupListSchema { + constexpr std::ptrdiff_t m_groupList = 0x0; // CUtlVector +} + +namespace CSosSoundEventGroupSchema { + constexpr std::ptrdiff_t m_name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nType = 0x8; // SosGroupType_t + constexpr std::ptrdiff_t m_bIsBlocking = 0xC; // bool + constexpr std::ptrdiff_t m_nBlockMaxCount = 0x10; // int32_t + constexpr std::ptrdiff_t m_bInvertMatch = 0x14; // bool + constexpr std::ptrdiff_t m_matchPattern = 0x18; // CSosGroupMatchPattern + constexpr std::ptrdiff_t m_branchPattern = 0x40; // CSosGroupBranchPattern + constexpr std::ptrdiff_t m_vActions = 0xB0; // CSosGroupActionSchema*[4] +} + +namespace CSoundEventMetaData { + constexpr std::ptrdiff_t m_soundEventVMix = 0x0; // CStrongHandle +} + +namespace SelectedEditItemInfo_t { + constexpr std::ptrdiff_t m_EditItems = 0x0; // CUtlVector +} + +namespace SosEditItemInfo_t { + constexpr std::ptrdiff_t itemType = 0x0; // SosEditItemType_t + constexpr std::ptrdiff_t itemName = 0x8; // CUtlString + constexpr std::ptrdiff_t itemTypeName = 0x10; // CUtlString + constexpr std::ptrdiff_t itemKVString = 0x20; // CUtlString + constexpr std::ptrdiff_t itemPos = 0x28; // Vector2D +} + +namespace VMixAutoFilterDesc_t { + constexpr std::ptrdiff_t m_flEnvelopeAmount = 0x0; // float + constexpr std::ptrdiff_t m_flAttackTimeMS = 0x4; // float + constexpr std::ptrdiff_t m_flReleaseTimeMS = 0x8; // float + constexpr std::ptrdiff_t m_filter = 0xC; // VMixFilterDesc_t + constexpr std::ptrdiff_t m_flLFOAmount = 0x1C; // float + constexpr std::ptrdiff_t m_flLFORate = 0x20; // float + constexpr std::ptrdiff_t m_flPhase = 0x24; // float + constexpr std::ptrdiff_t m_nLFOShape = 0x28; // VMixLFOShape_t +} + +namespace VMixBoxverbDesc_t { + constexpr std::ptrdiff_t m_flSizeMax = 0x0; // float + constexpr std::ptrdiff_t m_flSizeMin = 0x4; // float + constexpr std::ptrdiff_t m_flComplexity = 0x8; // float + constexpr std::ptrdiff_t m_flDiffusion = 0xC; // float + constexpr std::ptrdiff_t m_flModDepth = 0x10; // float + constexpr std::ptrdiff_t m_flModRate = 0x14; // float + constexpr std::ptrdiff_t m_bParallel = 0x18; // bool + constexpr std::ptrdiff_t m_filterType = 0x1C; // VMixFilterDesc_t + constexpr std::ptrdiff_t m_flWidth = 0x2C; // float + constexpr std::ptrdiff_t m_flHeight = 0x30; // float + constexpr std::ptrdiff_t m_flDepth = 0x34; // float + constexpr std::ptrdiff_t m_flFeedbackScale = 0x38; // float + constexpr std::ptrdiff_t m_flFeedbackWidth = 0x3C; // float + constexpr std::ptrdiff_t m_flFeedbackHeight = 0x40; // float + constexpr std::ptrdiff_t m_flFeedbackDepth = 0x44; // float + constexpr std::ptrdiff_t m_flOutputGain = 0x48; // float + constexpr std::ptrdiff_t m_flTaps = 0x4C; // float +} + +namespace VMixConvolutionDesc_t { + constexpr std::ptrdiff_t m_fldbGain = 0x0; // float + constexpr std::ptrdiff_t m_flPreDelayMS = 0x4; // float + constexpr std::ptrdiff_t m_flWetMix = 0x8; // float + constexpr std::ptrdiff_t m_fldbLow = 0xC; // float + constexpr std::ptrdiff_t m_fldbMid = 0x10; // float + constexpr std::ptrdiff_t m_fldbHigh = 0x14; // float + constexpr std::ptrdiff_t m_flLowCutoffFreq = 0x18; // float + constexpr std::ptrdiff_t m_flHighCutoffFreq = 0x1C; // float +} + +namespace VMixDelayDesc_t { + constexpr std::ptrdiff_t m_feedbackFilter = 0x0; // VMixFilterDesc_t + constexpr std::ptrdiff_t m_bEnableFilter = 0x10; // bool + constexpr std::ptrdiff_t m_flDelay = 0x14; // float + constexpr std::ptrdiff_t m_flDirectGain = 0x18; // float + constexpr std::ptrdiff_t m_flDelayGain = 0x1C; // float + constexpr std::ptrdiff_t m_flFeedbackGain = 0x20; // float + constexpr std::ptrdiff_t m_flWidth = 0x24; // float +} + +namespace VMixDiffusorDesc_t { + constexpr std::ptrdiff_t m_flSize = 0x0; // float + constexpr std::ptrdiff_t m_flComplexity = 0x4; // float + constexpr std::ptrdiff_t m_flFeedback = 0x8; // float + constexpr std::ptrdiff_t m_flOutputGain = 0xC; // float +} + +namespace VMixDynamics3BandDesc_t { + constexpr std::ptrdiff_t m_fldbGainOutput = 0x0; // float + constexpr std::ptrdiff_t m_flRMSTimeMS = 0x4; // float + constexpr std::ptrdiff_t m_fldbKneeWidth = 0x8; // float + constexpr std::ptrdiff_t m_flDepth = 0xC; // float + constexpr std::ptrdiff_t m_flWetMix = 0x10; // float + constexpr std::ptrdiff_t m_flTimeScale = 0x14; // float + constexpr std::ptrdiff_t m_flLowCutoffFreq = 0x18; // float + constexpr std::ptrdiff_t m_flHighCutoffFreq = 0x1C; // float + constexpr std::ptrdiff_t m_bPeakMode = 0x20; // bool + constexpr std::ptrdiff_t m_bandDesc = 0x24; // VMixDynamicsBand_t[3] +} + +namespace VMixDynamicsBand_t { + constexpr std::ptrdiff_t m_fldbGainInput = 0x0; // float + constexpr std::ptrdiff_t m_fldbGainOutput = 0x4; // float + constexpr std::ptrdiff_t m_fldbThresholdBelow = 0x8; // float + constexpr std::ptrdiff_t m_fldbThresholdAbove = 0xC; // float + constexpr std::ptrdiff_t m_flRatioBelow = 0x10; // float + constexpr std::ptrdiff_t m_flRatioAbove = 0x14; // float + constexpr std::ptrdiff_t m_flAttackTimeMS = 0x18; // float + constexpr std::ptrdiff_t m_flReleaseTimeMS = 0x1C; // float + constexpr std::ptrdiff_t m_bEnable = 0x20; // bool + constexpr std::ptrdiff_t m_bSolo = 0x21; // bool +} + +namespace VMixDynamicsCompressorDesc_t { + constexpr std::ptrdiff_t m_fldbOutputGain = 0x0; // float + constexpr std::ptrdiff_t m_fldbCompressionThreshold = 0x4; // float + constexpr std::ptrdiff_t m_fldbKneeWidth = 0x8; // float + constexpr std::ptrdiff_t m_flCompressionRatio = 0xC; // float + constexpr std::ptrdiff_t m_flAttackTimeMS = 0x10; // float + constexpr std::ptrdiff_t m_flReleaseTimeMS = 0x14; // float + constexpr std::ptrdiff_t m_flRMSTimeMS = 0x18; // float + constexpr std::ptrdiff_t m_flWetMix = 0x1C; // float + constexpr std::ptrdiff_t m_bPeakMode = 0x20; // bool +} + +namespace VMixDynamicsDesc_t { + constexpr std::ptrdiff_t m_fldbGain = 0x0; // float + constexpr std::ptrdiff_t m_fldbNoiseGateThreshold = 0x4; // float + constexpr std::ptrdiff_t m_fldbCompressionThreshold = 0x8; // float + constexpr std::ptrdiff_t m_fldbLimiterThreshold = 0xC; // float + constexpr std::ptrdiff_t m_fldbKneeWidth = 0x10; // float + constexpr std::ptrdiff_t m_flRatio = 0x14; // float + constexpr std::ptrdiff_t m_flLimiterRatio = 0x18; // float + constexpr std::ptrdiff_t m_flAttackTimeMS = 0x1C; // float + constexpr std::ptrdiff_t m_flReleaseTimeMS = 0x20; // float + constexpr std::ptrdiff_t m_flRMSTimeMS = 0x24; // float + constexpr std::ptrdiff_t m_flWetMix = 0x28; // float + constexpr std::ptrdiff_t m_bPeakMode = 0x2C; // bool +} + +namespace VMixEQ8Desc_t { + constexpr std::ptrdiff_t m_stages = 0x0; // VMixFilterDesc_t[8] +} + +namespace VMixEffectChainDesc_t { + constexpr std::ptrdiff_t m_flCrossfadeTime = 0x0; // float +} + +namespace VMixEnvelopeDesc_t { + constexpr std::ptrdiff_t m_flAttackTimeMS = 0x0; // float + constexpr std::ptrdiff_t m_flHoldTimeMS = 0x4; // float + constexpr std::ptrdiff_t m_flReleaseTimeMS = 0x8; // float +} + +namespace VMixFilterDesc_t { + constexpr std::ptrdiff_t m_nFilterType = 0x0; // VMixFilterType_t + constexpr std::ptrdiff_t m_nFilterSlope = 0x2; // VMixFilterSlope_t + constexpr std::ptrdiff_t m_bEnabled = 0x3; // bool + constexpr std::ptrdiff_t m_fldbGain = 0x4; // float + constexpr std::ptrdiff_t m_flCutoffFreq = 0x8; // float + constexpr std::ptrdiff_t m_flQ = 0xC; // float +} + +namespace VMixFreeverbDesc_t { + constexpr std::ptrdiff_t m_flRoomSize = 0x0; // float + constexpr std::ptrdiff_t m_flDamp = 0x4; // float + constexpr std::ptrdiff_t m_flWidth = 0x8; // float + constexpr std::ptrdiff_t m_flLateReflections = 0xC; // float +} + +namespace VMixModDelayDesc_t { + constexpr std::ptrdiff_t m_feedbackFilter = 0x0; // VMixFilterDesc_t + constexpr std::ptrdiff_t m_bPhaseInvert = 0x10; // bool + constexpr std::ptrdiff_t m_flGlideTime = 0x14; // float + constexpr std::ptrdiff_t m_flDelay = 0x18; // float + constexpr std::ptrdiff_t m_flOutputGain = 0x1C; // float + constexpr std::ptrdiff_t m_flFeedbackGain = 0x20; // float + constexpr std::ptrdiff_t m_flModRate = 0x24; // float + constexpr std::ptrdiff_t m_flModDepth = 0x28; // float + constexpr std::ptrdiff_t m_bApplyAntialiasing = 0x2C; // bool +} + +namespace VMixOscDesc_t { + constexpr std::ptrdiff_t oscType = 0x0; // VMixLFOShape_t + constexpr std::ptrdiff_t m_freq = 0x4; // float + constexpr std::ptrdiff_t m_flPhase = 0x8; // float +} + +namespace VMixPannerDesc_t { + constexpr std::ptrdiff_t m_type = 0x0; // VMixPannerType_t + constexpr std::ptrdiff_t m_flStrength = 0x4; // float +} + +namespace VMixPitchShiftDesc_t { + constexpr std::ptrdiff_t m_nGrainSampleCount = 0x0; // int32_t + constexpr std::ptrdiff_t m_flPitchShift = 0x4; // float + constexpr std::ptrdiff_t m_nQuality = 0x8; // int32_t + constexpr std::ptrdiff_t m_nProcType = 0xC; // int32_t +} + +namespace VMixPlateverbDesc_t { + constexpr std::ptrdiff_t m_flPrefilter = 0x0; // float + constexpr std::ptrdiff_t m_flInputDiffusion1 = 0x4; // float + constexpr std::ptrdiff_t m_flInputDiffusion2 = 0x8; // float + constexpr std::ptrdiff_t m_flDecay = 0xC; // float + constexpr std::ptrdiff_t m_flDamp = 0x10; // float + constexpr std::ptrdiff_t m_flFeedbackDiffusion1 = 0x14; // float + constexpr std::ptrdiff_t m_flFeedbackDiffusion2 = 0x18; // float +} + +namespace VMixShaperDesc_t { + constexpr std::ptrdiff_t m_nShape = 0x0; // int32_t + constexpr std::ptrdiff_t m_fldbDrive = 0x4; // float + constexpr std::ptrdiff_t m_fldbOutputGain = 0x8; // float + constexpr std::ptrdiff_t m_flWetMix = 0xC; // float + constexpr std::ptrdiff_t m_nOversampleFactor = 0x10; // int32_t +} + +namespace VMixSubgraphSwitchDesc_t { + constexpr std::ptrdiff_t m_interpolationMode = 0x0; // VMixSubgraphSwitchInterpolationType_t + constexpr std::ptrdiff_t m_bOnlyTailsOnFadeOut = 0x4; // bool + constexpr std::ptrdiff_t m_flInterpolationTime = 0x8; // float +} + +namespace VMixUtilityDesc_t { + constexpr std::ptrdiff_t m_nOp = 0x0; // VMixChannelOperation_t + constexpr std::ptrdiff_t m_flInputPan = 0x4; // float + constexpr std::ptrdiff_t m_flOutputBalance = 0x8; // float + constexpr std::ptrdiff_t m_fldbOutputGain = 0xC; // float + constexpr std::ptrdiff_t m_bBassMono = 0x10; // bool + constexpr std::ptrdiff_t m_flBassFreq = 0x14; // float +} + +namespace VMixVocoderDesc_t { + constexpr std::ptrdiff_t m_nBandCount = 0x0; // int32_t + constexpr std::ptrdiff_t m_flBandwidth = 0x4; // float + constexpr std::ptrdiff_t m_fldBModGain = 0x8; // float + constexpr std::ptrdiff_t m_flFreqRangeStart = 0xC; // float + constexpr std::ptrdiff_t m_flFreqRangeEnd = 0x10; // float + constexpr std::ptrdiff_t m_fldBUnvoicedGain = 0x14; // float + constexpr std::ptrdiff_t m_flAttackTimeMS = 0x18; // float + constexpr std::ptrdiff_t m_flReleaseTimeMS = 0x1C; // float + constexpr std::ptrdiff_t m_nDebugBand = 0x20; // int32_t + constexpr std::ptrdiff_t m_bPeakMode = 0x24; // bool +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/vphysics2.dll.hpp b/HPCS2/HPCS2/offset/vphysics2.dll.hpp new file mode 100644 index 0000000..d1bbe40 --- /dev/null +++ b/HPCS2/HPCS2/offset/vphysics2.dll.hpp @@ -0,0 +1,755 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace CFeIndexedJiggleBone { + constexpr std::ptrdiff_t m_nNode = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nJiggleParent = 0x4; // uint32_t + constexpr std::ptrdiff_t m_jiggleBone = 0x8; // CFeJiggleBone +} + +namespace CFeJiggleBone { + constexpr std::ptrdiff_t m_nFlags = 0x0; // uint32_t + constexpr std::ptrdiff_t m_flLength = 0x4; // float + constexpr std::ptrdiff_t m_flTipMass = 0x8; // float + constexpr std::ptrdiff_t m_flYawStiffness = 0xC; // float + constexpr std::ptrdiff_t m_flYawDamping = 0x10; // float + constexpr std::ptrdiff_t m_flPitchStiffness = 0x14; // float + constexpr std::ptrdiff_t m_flPitchDamping = 0x18; // float + constexpr std::ptrdiff_t m_flAlongStiffness = 0x1C; // float + constexpr std::ptrdiff_t m_flAlongDamping = 0x20; // float + constexpr std::ptrdiff_t m_flAngleLimit = 0x24; // float + constexpr std::ptrdiff_t m_flMinYaw = 0x28; // float + constexpr std::ptrdiff_t m_flMaxYaw = 0x2C; // float + constexpr std::ptrdiff_t m_flYawFriction = 0x30; // float + constexpr std::ptrdiff_t m_flYawBounce = 0x34; // float + constexpr std::ptrdiff_t m_flMinPitch = 0x38; // float + constexpr std::ptrdiff_t m_flMaxPitch = 0x3C; // float + constexpr std::ptrdiff_t m_flPitchFriction = 0x40; // float + constexpr std::ptrdiff_t m_flPitchBounce = 0x44; // float + constexpr std::ptrdiff_t m_flBaseMass = 0x48; // float + constexpr std::ptrdiff_t m_flBaseStiffness = 0x4C; // float + constexpr std::ptrdiff_t m_flBaseDamping = 0x50; // float + constexpr std::ptrdiff_t m_flBaseMinLeft = 0x54; // float + constexpr std::ptrdiff_t m_flBaseMaxLeft = 0x58; // float + constexpr std::ptrdiff_t m_flBaseLeftFriction = 0x5C; // float + constexpr std::ptrdiff_t m_flBaseMinUp = 0x60; // float + constexpr std::ptrdiff_t m_flBaseMaxUp = 0x64; // float + constexpr std::ptrdiff_t m_flBaseUpFriction = 0x68; // float + constexpr std::ptrdiff_t m_flBaseMinForward = 0x6C; // float + constexpr std::ptrdiff_t m_flBaseMaxForward = 0x70; // float + constexpr std::ptrdiff_t m_flBaseForwardFriction = 0x74; // float + constexpr std::ptrdiff_t m_flRadius0 = 0x78; // float + constexpr std::ptrdiff_t m_flRadius1 = 0x7C; // float + constexpr std::ptrdiff_t m_vPoint0 = 0x80; // Vector + constexpr std::ptrdiff_t m_vPoint1 = 0x8C; // Vector + constexpr std::ptrdiff_t m_nCollisionMask = 0x98; // uint16_t +} + +namespace CFeMorphLayer { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nNameHash = 0x8; // uint32_t + constexpr std::ptrdiff_t m_Nodes = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_InitPos = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_Gravity = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_GoalStrength = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_GoalDamping = 0x70; // CUtlVector +} + +namespace CFeNamedJiggleBone { + constexpr std::ptrdiff_t m_strParentBone = 0x0; // CUtlString + constexpr std::ptrdiff_t m_transform = 0x10; // CTransform + constexpr std::ptrdiff_t m_nJiggleParent = 0x30; // uint32_t + constexpr std::ptrdiff_t m_jiggleBone = 0x34; // CFeJiggleBone +} + +namespace CFeVertexMapBuildArray { + constexpr std::ptrdiff_t m_Array = 0x0; // CUtlVector +} + +namespace CRegionSVM { + constexpr std::ptrdiff_t m_Planes = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_Nodes = 0x18; // CUtlVector +} + +namespace CastSphereSATParams_t { + constexpr std::ptrdiff_t m_vRayStart = 0x0; // Vector + constexpr std::ptrdiff_t m_vRayDelta = 0xC; // Vector + constexpr std::ptrdiff_t m_flRadius = 0x18; // float + constexpr std::ptrdiff_t m_flMaxFraction = 0x1C; // float + constexpr std::ptrdiff_t m_flScale = 0x20; // float + constexpr std::ptrdiff_t m_pHull = 0x28; // RnHull_t* +} + +namespace CovMatrix3 { + constexpr std::ptrdiff_t m_vDiag = 0x0; // Vector + constexpr std::ptrdiff_t m_flXY = 0xC; // float + constexpr std::ptrdiff_t m_flXZ = 0x10; // float + constexpr std::ptrdiff_t m_flYZ = 0x14; // float +} + +namespace Dop26_t { + constexpr std::ptrdiff_t m_flSupport = 0x0; // float[26] +} + +namespace FeAnimStrayRadius_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[2] + constexpr std::ptrdiff_t flMaxDist = 0x4; // float + constexpr std::ptrdiff_t flRelaxationFactor = 0x8; // float +} + +namespace FeAxialEdgeBend_t { + constexpr std::ptrdiff_t te = 0x0; // float + constexpr std::ptrdiff_t tv = 0x4; // float + constexpr std::ptrdiff_t flDist = 0x8; // float + constexpr std::ptrdiff_t flWeight = 0xC; // float[4] + constexpr std::ptrdiff_t nNode = 0x1C; // uint16_t[6] +} + +namespace FeBandBendLimit_t { + constexpr std::ptrdiff_t flDistMin = 0x0; // float + constexpr std::ptrdiff_t flDistMax = 0x4; // float + constexpr std::ptrdiff_t nNode = 0x8; // uint16_t[6] +} + +namespace FeBoxRigid_t { + constexpr std::ptrdiff_t tmFrame2 = 0x0; // CTransform + constexpr std::ptrdiff_t nNode = 0x20; // uint16_t + constexpr std::ptrdiff_t nCollisionMask = 0x22; // uint16_t + constexpr std::ptrdiff_t vSize = 0x24; // Vector + constexpr std::ptrdiff_t nVertexMapIndex = 0x30; // uint16_t + constexpr std::ptrdiff_t nFlags = 0x32; // uint16_t +} + +namespace FeBuildBoxRigid_t { // FeBoxRigid_t + constexpr std::ptrdiff_t m_nPriority = 0x40; // int32_t + constexpr std::ptrdiff_t m_nVertexMapHash = 0x44; // uint32_t +} + +namespace FeBuildSphereRigid_t { // FeSphereRigid_t + constexpr std::ptrdiff_t m_nPriority = 0x20; // int32_t + constexpr std::ptrdiff_t m_nVertexMapHash = 0x24; // uint32_t +} + +namespace FeBuildTaperedCapsuleRigid_t { // FeTaperedCapsuleRigid_t + constexpr std::ptrdiff_t m_nPriority = 0x30; // int32_t + constexpr std::ptrdiff_t m_nVertexMapHash = 0x34; // uint32_t +} + +namespace FeCollisionPlane_t { + constexpr std::ptrdiff_t nCtrlParent = 0x0; // uint16_t + constexpr std::ptrdiff_t nChildNode = 0x2; // uint16_t + constexpr std::ptrdiff_t m_Plane = 0x4; // RnPlane_t + constexpr std::ptrdiff_t flStrength = 0x14; // float +} + +namespace FeCtrlOffset_t { + constexpr std::ptrdiff_t vOffset = 0x0; // Vector + constexpr std::ptrdiff_t nCtrlParent = 0xC; // uint16_t + constexpr std::ptrdiff_t nCtrlChild = 0xE; // uint16_t +} + +namespace FeCtrlOsOffset_t { + constexpr std::ptrdiff_t nCtrlParent = 0x0; // uint16_t + constexpr std::ptrdiff_t nCtrlChild = 0x2; // uint16_t +} + +namespace FeCtrlSoftOffset_t { + constexpr std::ptrdiff_t nCtrlParent = 0x0; // uint16_t + constexpr std::ptrdiff_t nCtrlChild = 0x2; // uint16_t + constexpr std::ptrdiff_t vOffset = 0x4; // Vector + constexpr std::ptrdiff_t flAlpha = 0x10; // float +} + +namespace FeEdgeDesc_t { + constexpr std::ptrdiff_t nEdge = 0x0; // uint16_t[2] + constexpr std::ptrdiff_t nSide = 0x4; // uint16_t[2][2] + constexpr std::ptrdiff_t nVirtElem = 0xC; // uint16_t[2] +} + +namespace FeEffectDesc_t { + constexpr std::ptrdiff_t sName = 0x0; // CUtlString + constexpr std::ptrdiff_t nNameHash = 0x8; // uint32_t + constexpr std::ptrdiff_t nType = 0xC; // int32_t + constexpr std::ptrdiff_t m_Params = 0x10; // KeyValues3 +} + +namespace FeFitInfluence_t { + constexpr std::ptrdiff_t nVertexNode = 0x0; // uint32_t + constexpr std::ptrdiff_t flWeight = 0x4; // float + constexpr std::ptrdiff_t nMatrixNode = 0x8; // uint32_t +} + +namespace FeFitMatrix_t { + constexpr std::ptrdiff_t bone = 0x0; // CTransform + constexpr std::ptrdiff_t vCenter = 0x20; // Vector + constexpr std::ptrdiff_t nEnd = 0x2C; // uint16_t + constexpr std::ptrdiff_t nNode = 0x2E; // uint16_t + constexpr std::ptrdiff_t nBeginDynamic = 0x30; // uint16_t +} + +namespace FeFitWeight_t { + constexpr std::ptrdiff_t flWeight = 0x0; // float + constexpr std::ptrdiff_t nNode = 0x4; // uint16_t + constexpr std::ptrdiff_t nDummy = 0x6; // uint16_t +} + +namespace FeFollowNode_t { + constexpr std::ptrdiff_t nParentNode = 0x0; // uint16_t + constexpr std::ptrdiff_t nChildNode = 0x2; // uint16_t + constexpr std::ptrdiff_t flWeight = 0x4; // float +} + +namespace FeKelagerBend2_t { + constexpr std::ptrdiff_t flWeight = 0x0; // float[3] + constexpr std::ptrdiff_t flHeight0 = 0xC; // float + constexpr std::ptrdiff_t nNode = 0x10; // uint16_t[3] + constexpr std::ptrdiff_t nReserved = 0x16; // uint16_t +} + +namespace FeMorphLayerDepr_t { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nNameHash = 0x8; // uint32_t + constexpr std::ptrdiff_t m_Nodes = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_InitPos = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_Gravity = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_GoalStrength = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_GoalDamping = 0x70; // CUtlVector + constexpr std::ptrdiff_t m_nFlags = 0x88; // uint32_t +} + +namespace FeNodeBase_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t + constexpr std::ptrdiff_t nDummy = 0x2; // uint16_t[3] + constexpr std::ptrdiff_t nNodeX0 = 0x8; // uint16_t + constexpr std::ptrdiff_t nNodeX1 = 0xA; // uint16_t + constexpr std::ptrdiff_t nNodeY0 = 0xC; // uint16_t + constexpr std::ptrdiff_t nNodeY1 = 0xE; // uint16_t + constexpr std::ptrdiff_t qAdjust = 0x10; // QuaternionStorage +} + +namespace FeNodeIntegrator_t { + constexpr std::ptrdiff_t flPointDamping = 0x0; // float + constexpr std::ptrdiff_t flAnimationForceAttraction = 0x4; // float + constexpr std::ptrdiff_t flAnimationVertexAttraction = 0x8; // float + constexpr std::ptrdiff_t flGravity = 0xC; // float +} + +namespace FeNodeReverseOffset_t { + constexpr std::ptrdiff_t vOffset = 0x0; // Vector + constexpr std::ptrdiff_t nBoneCtrl = 0xC; // uint16_t + constexpr std::ptrdiff_t nTargetNode = 0xE; // uint16_t +} + +namespace FeNodeWindBase_t { + constexpr std::ptrdiff_t nNodeX0 = 0x0; // uint16_t + constexpr std::ptrdiff_t nNodeX1 = 0x2; // uint16_t + constexpr std::ptrdiff_t nNodeY0 = 0x4; // uint16_t + constexpr std::ptrdiff_t nNodeY1 = 0x6; // uint16_t +} + +namespace FeProxyVertexMap_t { + constexpr std::ptrdiff_t m_Name = 0x0; // CUtlString + constexpr std::ptrdiff_t m_flWeight = 0x8; // float +} + +namespace FeQuad_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[4] + constexpr std::ptrdiff_t flSlack = 0x8; // float + constexpr std::ptrdiff_t vShape = 0xC; // Vector4D[4] +} + +namespace FeRigidColliderIndices_t { + constexpr std::ptrdiff_t m_nTaperedCapsuleRigidIndex = 0x0; // uint16_t + constexpr std::ptrdiff_t m_nSphereRigidIndex = 0x2; // uint16_t + constexpr std::ptrdiff_t m_nBoxRigidIndex = 0x4; // uint16_t + constexpr std::ptrdiff_t m_nCollisionPlaneIndex = 0x6; // uint16_t +} + +namespace FeRodConstraint_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[2] + constexpr std::ptrdiff_t flMaxDist = 0x4; // float + constexpr std::ptrdiff_t flMinDist = 0x8; // float + constexpr std::ptrdiff_t flWeight0 = 0xC; // float + constexpr std::ptrdiff_t flRelaxationFactor = 0x10; // float +} + +namespace FeSimdAnimStrayRadius_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[4][2] + constexpr std::ptrdiff_t flMaxDist = 0x10; // fltx4 + constexpr std::ptrdiff_t flRelaxationFactor = 0x20; // fltx4 +} + +namespace FeSimdNodeBase_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[4] + constexpr std::ptrdiff_t nNodeX0 = 0x8; // uint16_t[4] + constexpr std::ptrdiff_t nNodeX1 = 0x10; // uint16_t[4] + constexpr std::ptrdiff_t nNodeY0 = 0x18; // uint16_t[4] + constexpr std::ptrdiff_t nNodeY1 = 0x20; // uint16_t[4] + constexpr std::ptrdiff_t nDummy = 0x28; // uint16_t[4] + constexpr std::ptrdiff_t qAdjust = 0x30; // FourQuaternions +} + +namespace FeSimdQuad_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[4][4] + constexpr std::ptrdiff_t f4Slack = 0x20; // fltx4 + constexpr std::ptrdiff_t vShape = 0x30; // FourVectors[4] + constexpr std::ptrdiff_t f4Weights = 0xF0; // fltx4[4] +} + +namespace FeSimdRodConstraint_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[4][2] + constexpr std::ptrdiff_t f4MaxDist = 0x10; // fltx4 + constexpr std::ptrdiff_t f4MinDist = 0x20; // fltx4 + constexpr std::ptrdiff_t f4Weight0 = 0x30; // fltx4 + constexpr std::ptrdiff_t f4RelaxationFactor = 0x40; // fltx4 +} + +namespace FeSimdSpringIntegrator_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[4][2] + constexpr std::ptrdiff_t flSpringRestLength = 0x10; // fltx4 + constexpr std::ptrdiff_t flSpringConstant = 0x20; // fltx4 + constexpr std::ptrdiff_t flSpringDamping = 0x30; // fltx4 + constexpr std::ptrdiff_t flNodeWeight0 = 0x40; // fltx4 +} + +namespace FeSimdTri_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint32_t[4][3] + constexpr std::ptrdiff_t w1 = 0x30; // fltx4 + constexpr std::ptrdiff_t w2 = 0x40; // fltx4 + constexpr std::ptrdiff_t v1x = 0x50; // fltx4 + constexpr std::ptrdiff_t v2 = 0x60; // FourVectors2D +} + +namespace FeSoftParent_t { + constexpr std::ptrdiff_t nParent = 0x0; // int32_t + constexpr std::ptrdiff_t flAlpha = 0x4; // float +} + +namespace FeSourceEdge_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[2] +} + +namespace FeSphereRigid_t { + constexpr std::ptrdiff_t vSphere = 0x0; // fltx4 + constexpr std::ptrdiff_t nNode = 0x10; // uint16_t + constexpr std::ptrdiff_t nCollisionMask = 0x12; // uint16_t + constexpr std::ptrdiff_t nVertexMapIndex = 0x14; // uint16_t + constexpr std::ptrdiff_t nFlags = 0x16; // uint16_t +} + +namespace FeSpringIntegrator_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[2] + constexpr std::ptrdiff_t flSpringRestLength = 0x4; // float + constexpr std::ptrdiff_t flSpringConstant = 0x8; // float + constexpr std::ptrdiff_t flSpringDamping = 0xC; // float + constexpr std::ptrdiff_t flNodeWeight0 = 0x10; // float +} + +namespace FeStiffHingeBuild_t { + constexpr std::ptrdiff_t flMaxAngle = 0x0; // float + constexpr std::ptrdiff_t flStrength = 0x4; // float + constexpr std::ptrdiff_t flMotionBias = 0x8; // float[3] + constexpr std::ptrdiff_t nNode = 0x14; // uint16_t[3] +} + +namespace FeTaperedCapsuleRigid_t { + constexpr std::ptrdiff_t vSphere = 0x0; // fltx4[2] + constexpr std::ptrdiff_t nNode = 0x20; // uint16_t + constexpr std::ptrdiff_t nCollisionMask = 0x22; // uint16_t + constexpr std::ptrdiff_t nVertexMapIndex = 0x24; // uint16_t + constexpr std::ptrdiff_t nFlags = 0x26; // uint16_t +} + +namespace FeTaperedCapsuleStretch_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[2] + constexpr std::ptrdiff_t nCollisionMask = 0x4; // uint16_t + constexpr std::ptrdiff_t nDummy = 0x6; // uint16_t + constexpr std::ptrdiff_t flRadius = 0x8; // float[2] +} + +namespace FeTreeChildren_t { + constexpr std::ptrdiff_t nChild = 0x0; // uint16_t[2] +} + +namespace FeTri_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t[3] + constexpr std::ptrdiff_t w1 = 0x8; // float + constexpr std::ptrdiff_t w2 = 0xC; // float + constexpr std::ptrdiff_t v1x = 0x10; // float + constexpr std::ptrdiff_t v2 = 0x14; // Vector2D +} + +namespace FeTwistConstraint_t { + constexpr std::ptrdiff_t nNodeOrient = 0x0; // uint16_t + constexpr std::ptrdiff_t nNodeEnd = 0x2; // uint16_t + constexpr std::ptrdiff_t flTwistRelax = 0x4; // float + constexpr std::ptrdiff_t flSwingRelax = 0x8; // float +} + +namespace FeVertexMapBuild_t { + constexpr std::ptrdiff_t m_VertexMapName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_nNameHash = 0x8; // uint32_t + constexpr std::ptrdiff_t m_Color = 0xC; // Color + constexpr std::ptrdiff_t m_flVolumetricSolveStrength = 0x10; // float + constexpr std::ptrdiff_t m_nScaleSourceNode = 0x14; // int32_t + constexpr std::ptrdiff_t m_Weights = 0x18; // CUtlVector +} + +namespace FeVertexMapDesc_t { + constexpr std::ptrdiff_t sName = 0x0; // CUtlString + constexpr std::ptrdiff_t nNameHash = 0x8; // uint32_t + constexpr std::ptrdiff_t nColor = 0xC; // uint32_t + constexpr std::ptrdiff_t nFlags = 0x10; // uint32_t + constexpr std::ptrdiff_t nVertexBase = 0x14; // uint16_t + constexpr std::ptrdiff_t nVertexCount = 0x16; // uint16_t + constexpr std::ptrdiff_t nMapOffset = 0x18; // uint32_t + constexpr std::ptrdiff_t nNodeListOffset = 0x1C; // uint32_t + constexpr std::ptrdiff_t vCenterOfMass = 0x20; // Vector + constexpr std::ptrdiff_t flVolumetricSolveStrength = 0x2C; // float + constexpr std::ptrdiff_t nScaleSourceNode = 0x30; // int16_t + constexpr std::ptrdiff_t nNodeListCount = 0x32; // uint16_t +} + +namespace FeWeightedNode_t { + constexpr std::ptrdiff_t nNode = 0x0; // uint16_t + constexpr std::ptrdiff_t nWeight = 0x2; // uint16_t +} + +namespace FeWorldCollisionParams_t { + constexpr std::ptrdiff_t flWorldFriction = 0x0; // float + constexpr std::ptrdiff_t flGroundFriction = 0x4; // float + constexpr std::ptrdiff_t nListBegin = 0x8; // uint16_t + constexpr std::ptrdiff_t nListEnd = 0xA; // uint16_t +} + +namespace FourCovMatrices3 { + constexpr std::ptrdiff_t m_vDiag = 0x0; // FourVectors + constexpr std::ptrdiff_t m_flXY = 0x30; // fltx4 + constexpr std::ptrdiff_t m_flXZ = 0x40; // fltx4 + constexpr std::ptrdiff_t m_flYZ = 0x50; // fltx4 +} + +namespace FourVectors2D { + constexpr std::ptrdiff_t x = 0x0; // fltx4 + constexpr std::ptrdiff_t y = 0x10; // fltx4 +} + +namespace IPhysicsPlayerController { +} + +namespace OldFeEdge_t { + constexpr std::ptrdiff_t m_flK = 0x0; // float[3] + constexpr std::ptrdiff_t invA = 0xC; // float + constexpr std::ptrdiff_t t = 0x10; // float + constexpr std::ptrdiff_t flThetaRelaxed = 0x14; // float + constexpr std::ptrdiff_t flThetaFactor = 0x18; // float + constexpr std::ptrdiff_t c01 = 0x1C; // float + constexpr std::ptrdiff_t c02 = 0x20; // float + constexpr std::ptrdiff_t c03 = 0x24; // float + constexpr std::ptrdiff_t c04 = 0x28; // float + constexpr std::ptrdiff_t flAxialModelDist = 0x2C; // float + constexpr std::ptrdiff_t flAxialModelWeights = 0x30; // float[4] + constexpr std::ptrdiff_t m_nNode = 0x40; // uint16_t[4] +} + +namespace PhysFeModelDesc_t { + constexpr std::ptrdiff_t m_CtrlHash = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_CtrlName = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_nStaticNodeFlags = 0x30; // uint32_t + constexpr std::ptrdiff_t m_nDynamicNodeFlags = 0x34; // uint32_t + constexpr std::ptrdiff_t m_flLocalForce = 0x38; // float + constexpr std::ptrdiff_t m_flLocalRotation = 0x3C; // float + constexpr std::ptrdiff_t m_nNodeCount = 0x40; // uint16_t + constexpr std::ptrdiff_t m_nStaticNodes = 0x42; // uint16_t + constexpr std::ptrdiff_t m_nRotLockStaticNodes = 0x44; // uint16_t + constexpr std::ptrdiff_t m_nFirstPositionDrivenNode = 0x46; // uint16_t + constexpr std::ptrdiff_t m_nSimdTriCount1 = 0x48; // uint16_t + constexpr std::ptrdiff_t m_nSimdTriCount2 = 0x4A; // uint16_t + constexpr std::ptrdiff_t m_nSimdQuadCount1 = 0x4C; // uint16_t + constexpr std::ptrdiff_t m_nSimdQuadCount2 = 0x4E; // uint16_t + constexpr std::ptrdiff_t m_nQuadCount1 = 0x50; // uint16_t + constexpr std::ptrdiff_t m_nQuadCount2 = 0x52; // uint16_t + constexpr std::ptrdiff_t m_nTreeDepth = 0x54; // uint16_t + constexpr std::ptrdiff_t m_nNodeBaseJiggleboneDependsCount = 0x56; // uint16_t + constexpr std::ptrdiff_t m_nRopeCount = 0x58; // uint16_t + constexpr std::ptrdiff_t m_Ropes = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_NodeBases = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_SimdNodeBases = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_Quads = 0xA8; // CUtlVector + constexpr std::ptrdiff_t m_SimdQuads = 0xC0; // CUtlVector + constexpr std::ptrdiff_t m_SimdTris = 0xD8; // CUtlVector + constexpr std::ptrdiff_t m_SimdRods = 0xF0; // CUtlVector + constexpr std::ptrdiff_t m_InitPose = 0x108; // CUtlVector + constexpr std::ptrdiff_t m_Rods = 0x120; // CUtlVector + constexpr std::ptrdiff_t m_Twists = 0x138; // CUtlVector + constexpr std::ptrdiff_t m_AxialEdges = 0x150; // CUtlVector + constexpr std::ptrdiff_t m_NodeInvMasses = 0x168; // CUtlVector + constexpr std::ptrdiff_t m_CtrlOffsets = 0x180; // CUtlVector + constexpr std::ptrdiff_t m_CtrlOsOffsets = 0x198; // CUtlVector + constexpr std::ptrdiff_t m_FollowNodes = 0x1B0; // CUtlVector + constexpr std::ptrdiff_t m_CollisionPlanes = 0x1C8; // CUtlVector + constexpr std::ptrdiff_t m_NodeIntegrator = 0x1E0; // CUtlVector + constexpr std::ptrdiff_t m_SpringIntegrator = 0x1F8; // CUtlVector + constexpr std::ptrdiff_t m_SimdSpringIntegrator = 0x210; // CUtlVector + constexpr std::ptrdiff_t m_WorldCollisionParams = 0x228; // CUtlVector + constexpr std::ptrdiff_t m_LegacyStretchForce = 0x240; // CUtlVector + constexpr std::ptrdiff_t m_NodeCollisionRadii = 0x258; // CUtlVector + constexpr std::ptrdiff_t m_DynNodeFriction = 0x270; // CUtlVector + constexpr std::ptrdiff_t m_LocalRotation = 0x288; // CUtlVector + constexpr std::ptrdiff_t m_LocalForce = 0x2A0; // CUtlVector + constexpr std::ptrdiff_t m_TaperedCapsuleStretches = 0x2B8; // CUtlVector + constexpr std::ptrdiff_t m_TaperedCapsuleRigids = 0x2D0; // CUtlVector + constexpr std::ptrdiff_t m_SphereRigids = 0x2E8; // CUtlVector + constexpr std::ptrdiff_t m_WorldCollisionNodes = 0x300; // CUtlVector + constexpr std::ptrdiff_t m_TreeParents = 0x318; // CUtlVector + constexpr std::ptrdiff_t m_TreeCollisionMasks = 0x330; // CUtlVector + constexpr std::ptrdiff_t m_TreeChildren = 0x348; // CUtlVector + constexpr std::ptrdiff_t m_FreeNodes = 0x360; // CUtlVector + constexpr std::ptrdiff_t m_FitMatrices = 0x378; // CUtlVector + constexpr std::ptrdiff_t m_FitWeights = 0x390; // CUtlVector + constexpr std::ptrdiff_t m_ReverseOffsets = 0x3A8; // CUtlVector + constexpr std::ptrdiff_t m_AnimStrayRadii = 0x3C0; // CUtlVector + constexpr std::ptrdiff_t m_SimdAnimStrayRadii = 0x3D8; // CUtlVector + constexpr std::ptrdiff_t m_KelagerBends = 0x3F0; // CUtlVector + constexpr std::ptrdiff_t m_CtrlSoftOffsets = 0x408; // CUtlVector + constexpr std::ptrdiff_t m_JiggleBones = 0x420; // CUtlVector + constexpr std::ptrdiff_t m_SourceElems = 0x438; // CUtlVector + constexpr std::ptrdiff_t m_GoalDampedSpringIntegrators = 0x450; // CUtlVector + constexpr std::ptrdiff_t m_Tris = 0x468; // CUtlVector + constexpr std::ptrdiff_t m_nTriCount1 = 0x480; // uint16_t + constexpr std::ptrdiff_t m_nTriCount2 = 0x482; // uint16_t + constexpr std::ptrdiff_t m_nReservedUint8 = 0x484; // uint8_t + constexpr std::ptrdiff_t m_nExtraPressureIterations = 0x485; // uint8_t + constexpr std::ptrdiff_t m_nExtraGoalIterations = 0x486; // uint8_t + constexpr std::ptrdiff_t m_nExtraIterations = 0x487; // uint8_t + constexpr std::ptrdiff_t m_BoxRigids = 0x488; // CUtlVector + constexpr std::ptrdiff_t m_DynNodeVertexSet = 0x4A0; // CUtlVector + constexpr std::ptrdiff_t m_VertexSetNames = 0x4B8; // CUtlVector + constexpr std::ptrdiff_t m_RigidColliderPriorities = 0x4D0; // CUtlVector + constexpr std::ptrdiff_t m_MorphLayers = 0x4E8; // CUtlVector + constexpr std::ptrdiff_t m_MorphSetData = 0x500; // CUtlVector + constexpr std::ptrdiff_t m_VertexMaps = 0x518; // CUtlVector + constexpr std::ptrdiff_t m_VertexMapValues = 0x530; // CUtlVector + constexpr std::ptrdiff_t m_Effects = 0x548; // CUtlVector + constexpr std::ptrdiff_t m_LockToParent = 0x560; // CUtlVector + constexpr std::ptrdiff_t m_LockToGoal = 0x578; // CUtlVector + constexpr std::ptrdiff_t m_DynNodeWindBases = 0x590; // CUtlVector + constexpr std::ptrdiff_t m_flInternalPressure = 0x5A8; // float + constexpr std::ptrdiff_t m_flDefaultTimeDilation = 0x5AC; // float + constexpr std::ptrdiff_t m_flWindage = 0x5B0; // float + constexpr std::ptrdiff_t m_flWindDrag = 0x5B4; // float + constexpr std::ptrdiff_t m_flDefaultSurfaceStretch = 0x5B8; // float + constexpr std::ptrdiff_t m_flDefaultThreadStretch = 0x5BC; // float + constexpr std::ptrdiff_t m_flDefaultGravityScale = 0x5C0; // float + constexpr std::ptrdiff_t m_flDefaultVelAirDrag = 0x5C4; // float + constexpr std::ptrdiff_t m_flDefaultExpAirDrag = 0x5C8; // float + constexpr std::ptrdiff_t m_flDefaultVelQuadAirDrag = 0x5CC; // float + constexpr std::ptrdiff_t m_flDefaultExpQuadAirDrag = 0x5D0; // float + constexpr std::ptrdiff_t m_flRodVelocitySmoothRate = 0x5D4; // float + constexpr std::ptrdiff_t m_flQuadVelocitySmoothRate = 0x5D8; // float + constexpr std::ptrdiff_t m_flAddWorldCollisionRadius = 0x5DC; // float + constexpr std::ptrdiff_t m_flDefaultVolumetricSolveAmount = 0x5E0; // float + constexpr std::ptrdiff_t m_nRodVelocitySmoothIterations = 0x5E4; // uint16_t + constexpr std::ptrdiff_t m_nQuadVelocitySmoothIterations = 0x5E6; // uint16_t +} + +namespace RnBlendVertex_t { + constexpr std::ptrdiff_t m_nWeight0 = 0x0; // uint16_t + constexpr std::ptrdiff_t m_nIndex0 = 0x2; // uint16_t + constexpr std::ptrdiff_t m_nWeight1 = 0x4; // uint16_t + constexpr std::ptrdiff_t m_nIndex1 = 0x6; // uint16_t + constexpr std::ptrdiff_t m_nWeight2 = 0x8; // uint16_t + constexpr std::ptrdiff_t m_nIndex2 = 0xA; // uint16_t + constexpr std::ptrdiff_t m_nFlags = 0xC; // uint16_t + constexpr std::ptrdiff_t m_nTargetIndex = 0xE; // uint16_t +} + +namespace RnBodyDesc_t { + constexpr std::ptrdiff_t m_sDebugName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_vPosition = 0x8; // Vector + constexpr std::ptrdiff_t m_qOrientation = 0x14; // QuaternionStorage + constexpr std::ptrdiff_t m_vLinearVelocity = 0x24; // Vector + constexpr std::ptrdiff_t m_vAngularVelocity = 0x30; // Vector + constexpr std::ptrdiff_t m_vLocalMassCenter = 0x3C; // Vector + constexpr std::ptrdiff_t m_LocalInertiaInv = 0x48; // Vector[3] + constexpr std::ptrdiff_t m_flMassInv = 0x6C; // float + constexpr std::ptrdiff_t m_flGameMass = 0x70; // float + constexpr std::ptrdiff_t m_flInertiaScaleInv = 0x74; // float + constexpr std::ptrdiff_t m_flLinearDamping = 0x78; // float + constexpr std::ptrdiff_t m_flAngularDamping = 0x7C; // float + constexpr std::ptrdiff_t m_flLinearDrag = 0x80; // float + constexpr std::ptrdiff_t m_flAngularDrag = 0x84; // float + constexpr std::ptrdiff_t m_flLinearBuoyancyDrag = 0x88; // float + constexpr std::ptrdiff_t m_flAngularBuoyancyDrag = 0x8C; // float + constexpr std::ptrdiff_t m_vLastAwakeForceAccum = 0x90; // Vector + constexpr std::ptrdiff_t m_vLastAwakeTorqueAccum = 0x9C; // Vector + constexpr std::ptrdiff_t m_flBuoyancyFactor = 0xA8; // float + constexpr std::ptrdiff_t m_flGravityScale = 0xAC; // float + constexpr std::ptrdiff_t m_flTimeScale = 0xB0; // float + constexpr std::ptrdiff_t m_nBodyType = 0xB4; // int32_t + constexpr std::ptrdiff_t m_nGameIndex = 0xB8; // uint32_t + constexpr std::ptrdiff_t m_nGameFlags = 0xBC; // uint32_t + constexpr std::ptrdiff_t m_nMinVelocityIterations = 0xC0; // int8_t + constexpr std::ptrdiff_t m_nMinPositionIterations = 0xC1; // int8_t + constexpr std::ptrdiff_t m_nMassPriority = 0xC2; // int8_t + constexpr std::ptrdiff_t m_bEnabled = 0xC3; // bool + constexpr std::ptrdiff_t m_bSleeping = 0xC4; // bool + constexpr std::ptrdiff_t m_bIsContinuousEnabled = 0xC5; // bool + constexpr std::ptrdiff_t m_bDragEnabled = 0xC6; // bool + constexpr std::ptrdiff_t m_bBuoyancyDragEnabled = 0xC7; // bool + constexpr std::ptrdiff_t m_bGravityDisabled = 0xC8; // bool + constexpr std::ptrdiff_t m_bSpeculativeEnabled = 0xC9; // bool + constexpr std::ptrdiff_t m_bHasShadowController = 0xCA; // bool +} + +namespace RnCapsuleDesc_t { // RnShapeDesc_t + constexpr std::ptrdiff_t m_Capsule = 0x10; // RnCapsule_t +} + +namespace RnCapsule_t { + constexpr std::ptrdiff_t m_vCenter = 0x0; // Vector[2] + constexpr std::ptrdiff_t m_flRadius = 0x18; // float +} + +namespace RnFace_t { + constexpr std::ptrdiff_t m_nEdge = 0x0; // uint8_t +} + +namespace RnHalfEdge_t { + constexpr std::ptrdiff_t m_nNext = 0x0; // uint8_t + constexpr std::ptrdiff_t m_nTwin = 0x1; // uint8_t + constexpr std::ptrdiff_t m_nOrigin = 0x2; // uint8_t + constexpr std::ptrdiff_t m_nFace = 0x3; // uint8_t +} + +namespace RnHullDesc_t { // RnShapeDesc_t + constexpr std::ptrdiff_t m_Hull = 0x10; // RnHull_t +} + +namespace RnHull_t { + constexpr std::ptrdiff_t m_vCentroid = 0x0; // Vector + constexpr std::ptrdiff_t m_flMaxAngularRadius = 0xC; // float + constexpr std::ptrdiff_t m_Bounds = 0x10; // AABB_t + constexpr std::ptrdiff_t m_vOrthographicAreas = 0x28; // Vector + constexpr std::ptrdiff_t m_MassProperties = 0x34; // matrix3x4_t + constexpr std::ptrdiff_t m_flVolume = 0x64; // float + constexpr std::ptrdiff_t m_Vertices = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_VertexPositions = 0x80; // CUtlVector + constexpr std::ptrdiff_t m_Edges = 0x98; // CUtlVector + constexpr std::ptrdiff_t m_Faces = 0xB0; // CUtlVector + constexpr std::ptrdiff_t m_FacePlanes = 0xC8; // CUtlVector + constexpr std::ptrdiff_t m_nFlags = 0xE0; // uint32_t + constexpr std::ptrdiff_t m_pRegionSVM = 0xE8; // CRegionSVM* +} + +namespace RnMeshDesc_t { // RnShapeDesc_t + constexpr std::ptrdiff_t m_Mesh = 0x10; // RnMesh_t +} + +namespace RnMesh_t { + constexpr std::ptrdiff_t m_vMin = 0x0; // Vector + constexpr std::ptrdiff_t m_vMax = 0xC; // Vector + constexpr std::ptrdiff_t m_Nodes = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_Vertices = 0x30; // CUtlVectorSIMDPaddedVector + constexpr std::ptrdiff_t m_Triangles = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_Wings = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_Materials = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_vOrthographicAreas = 0x90; // Vector + constexpr std::ptrdiff_t m_nFlags = 0x9C; // uint32_t + constexpr std::ptrdiff_t m_nDebugFlags = 0xA0; // uint32_t +} + +namespace RnNode_t { + constexpr std::ptrdiff_t m_vMin = 0x0; // Vector + constexpr std::ptrdiff_t m_nChildren = 0xC; // uint32_t + constexpr std::ptrdiff_t m_vMax = 0x10; // Vector + constexpr std::ptrdiff_t m_nTriangleOffset = 0x1C; // uint32_t +} + +namespace RnPlane_t { + constexpr std::ptrdiff_t m_vNormal = 0x0; // Vector + constexpr std::ptrdiff_t m_flOffset = 0xC; // float +} + +namespace RnShapeDesc_t { + constexpr std::ptrdiff_t m_nCollisionAttributeIndex = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nSurfacePropertyIndex = 0x4; // uint32_t + constexpr std::ptrdiff_t m_UserFriendlyName = 0x8; // CUtlString +} + +namespace RnSoftbodyCapsule_t { + constexpr std::ptrdiff_t m_vCenter = 0x0; // Vector[2] + constexpr std::ptrdiff_t m_flRadius = 0x18; // float + constexpr std::ptrdiff_t m_nParticle = 0x1C; // uint16_t[2] +} + +namespace RnSoftbodyParticle_t { + constexpr std::ptrdiff_t m_flMassInv = 0x0; // float +} + +namespace RnSoftbodySpring_t { + constexpr std::ptrdiff_t m_nParticle = 0x0; // uint16_t[2] + constexpr std::ptrdiff_t m_flLength = 0x4; // float +} + +namespace RnSphereDesc_t { // RnShapeDesc_t + constexpr std::ptrdiff_t m_Sphere = 0x10; // RnSphere_t +} + +namespace RnSphere_t { + constexpr std::ptrdiff_t m_vCenter = 0x0; // Vector + constexpr std::ptrdiff_t m_flRadius = 0xC; // float +} + +namespace RnTriangle_t { + constexpr std::ptrdiff_t m_nIndex = 0x0; // int32_t[3] +} + +namespace RnVertex_t { + constexpr std::ptrdiff_t m_nEdge = 0x0; // uint8_t +} + +namespace RnWing_t { + constexpr std::ptrdiff_t m_nIndex = 0x0; // int32_t[3] +} + +namespace VertexPositionColor_t { + constexpr std::ptrdiff_t m_vPosition = 0x0; // Vector +} + +namespace VertexPositionNormal_t { + constexpr std::ptrdiff_t m_vPosition = 0x0; // Vector + constexpr std::ptrdiff_t m_vNormal = 0xC; // Vector +} + +namespace constraint_axislimit_t { + constexpr std::ptrdiff_t flMinRotation = 0x0; // float + constexpr std::ptrdiff_t flMaxRotation = 0x4; // float + constexpr std::ptrdiff_t flMotorTargetAngSpeed = 0x8; // float + constexpr std::ptrdiff_t flMotorMaxTorque = 0xC; // float +} + +namespace constraint_breakableparams_t { + constexpr std::ptrdiff_t strength = 0x0; // float + constexpr std::ptrdiff_t forceLimit = 0x4; // float + constexpr std::ptrdiff_t torqueLimit = 0x8; // float + constexpr std::ptrdiff_t bodyMassScale = 0xC; // float[2] + constexpr std::ptrdiff_t isActive = 0x14; // bool +} + +namespace constraint_hingeparams_t { + constexpr std::ptrdiff_t worldPosition = 0x0; // Vector + constexpr std::ptrdiff_t worldAxisDirection = 0xC; // Vector + constexpr std::ptrdiff_t hingeAxis = 0x18; // constraint_axislimit_t + constexpr std::ptrdiff_t constraint = 0x28; // constraint_breakableparams_t +} + +namespace vphysics_save_cphysicsbody_t { // RnBodyDesc_t + constexpr std::ptrdiff_t m_nOldPointer = 0xD0; // uint64_t +} \ No newline at end of file diff --git a/HPCS2/HPCS2/offset/worldrenderer.dll.hpp b/HPCS2/HPCS2/offset/worldrenderer.dll.hpp new file mode 100644 index 0000000..662af6d --- /dev/null +++ b/HPCS2/HPCS2/offset/worldrenderer.dll.hpp @@ -0,0 +1,233 @@ +/* + * Created using https://github.com/a2x/cs2-dumper + * Sat, 4 Nov 2023 21:18:20 +0000 + */ + +#pragma once + +#include + +namespace AggregateLODSetup_t { + constexpr std::ptrdiff_t m_vLODOrigin = 0x0; // Vector + constexpr std::ptrdiff_t m_fMaxObjectScale = 0xC; // float + constexpr std::ptrdiff_t m_fSwitchDistances = 0x10; // CUtlVectorFixedGrowable +} + +namespace AggregateMeshInfo_t { + constexpr std::ptrdiff_t m_nVisClusterMemberOffset = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nVisClusterMemberCount = 0x4; // uint8_t + constexpr std::ptrdiff_t m_bHasTransform = 0x5; // bool + constexpr std::ptrdiff_t m_nDrawCallIndex = 0x6; // int16_t + constexpr std::ptrdiff_t m_nLODSetupIndex = 0x8; // int16_t + constexpr std::ptrdiff_t m_nLODGroupMask = 0xA; // uint8_t + constexpr std::ptrdiff_t m_vTintColor = 0xB; // Color + constexpr std::ptrdiff_t m_objectFlags = 0x10; // ObjectTypeFlags_t + constexpr std::ptrdiff_t m_nLightProbeVolumePrecomputedHandshake = 0x14; // int32_t +} + +namespace AggregateSceneObject_t { + constexpr std::ptrdiff_t m_allFlags = 0x0; // ObjectTypeFlags_t + constexpr std::ptrdiff_t m_anyFlags = 0x4; // ObjectTypeFlags_t + constexpr std::ptrdiff_t m_nLayer = 0x8; // int16_t + constexpr std::ptrdiff_t m_aggregateMeshes = 0x10; // CUtlVector + constexpr std::ptrdiff_t m_lodSetups = 0x28; // CUtlVector + constexpr std::ptrdiff_t m_visClusterMembership = 0x40; // CUtlVector + constexpr std::ptrdiff_t m_fragmentTransforms = 0x58; // CUtlVector + constexpr std::ptrdiff_t m_renderableModel = 0x70; // CStrongHandle +} + +namespace BakedLightingInfo_t { + constexpr std::ptrdiff_t m_nLightmapVersionNumber = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nLightmapGameVersionNumber = 0x4; // uint32_t + constexpr std::ptrdiff_t m_vLightmapUvScale = 0x8; // Vector2D + constexpr std::ptrdiff_t m_bHasLightmaps = 0x10; // bool + constexpr std::ptrdiff_t m_lightMaps = 0x18; // CUtlVector> +} + +namespace BaseSceneObjectOverride_t { + constexpr std::ptrdiff_t m_nSceneObjectIndex = 0x0; // uint32_t +} + +namespace CEntityComponent { +} + +namespace CEntityIdentity { + constexpr std::ptrdiff_t m_nameStringableIndex = 0x14; // int32_t + constexpr std::ptrdiff_t m_name = 0x18; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_designerName = 0x20; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_flags = 0x30; // uint32_t + constexpr std::ptrdiff_t m_worldGroupId = 0x38; // WorldGroupId_t + constexpr std::ptrdiff_t m_fDataObjectTypes = 0x3C; // uint32_t + constexpr std::ptrdiff_t m_PathIndex = 0x40; // ChangeAccessorFieldPathIndex_t + constexpr std::ptrdiff_t m_pPrev = 0x58; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNext = 0x60; // CEntityIdentity* + constexpr std::ptrdiff_t m_pPrevByClass = 0x68; // CEntityIdentity* + constexpr std::ptrdiff_t m_pNextByClass = 0x70; // CEntityIdentity* +} + +namespace CEntityInstance { + constexpr std::ptrdiff_t m_iszPrivateVScripts = 0x8; // CUtlSymbolLarge + constexpr std::ptrdiff_t m_pEntity = 0x10; // CEntityIdentity* + constexpr std::ptrdiff_t m_CScriptComponent = 0x28; // CScriptComponent* +} + +namespace CScriptComponent { // CEntityComponent + constexpr std::ptrdiff_t m_scriptClassName = 0x30; // CUtlSymbolLarge +} + +namespace CVoxelVisibility { + constexpr std::ptrdiff_t m_nBaseClusterCount = 0x40; // uint32_t + constexpr std::ptrdiff_t m_nPVSBytesPerCluster = 0x44; // uint32_t + constexpr std::ptrdiff_t m_vMinBounds = 0x48; // Vector + constexpr std::ptrdiff_t m_vMaxBounds = 0x54; // Vector + constexpr std::ptrdiff_t m_flGridSize = 0x60; // float + constexpr std::ptrdiff_t m_nSkyVisibilityCluster = 0x64; // uint32_t + constexpr std::ptrdiff_t m_nSunVisibilityCluster = 0x68; // uint32_t + constexpr std::ptrdiff_t m_NodeBlock = 0x6C; // VoxelVisBlockOffset_t + constexpr std::ptrdiff_t m_RegionBlock = 0x74; // VoxelVisBlockOffset_t + constexpr std::ptrdiff_t m_EnclosedClusterListBlock = 0x7C; // VoxelVisBlockOffset_t + constexpr std::ptrdiff_t m_EnclosedClustersBlock = 0x84; // VoxelVisBlockOffset_t + constexpr std::ptrdiff_t m_MasksBlock = 0x8C; // VoxelVisBlockOffset_t + constexpr std::ptrdiff_t m_nVisBlocks = 0x94; // VoxelVisBlockOffset_t +} + +namespace ClutterSceneObject_t { + constexpr std::ptrdiff_t m_Bounds = 0x0; // AABB_t + constexpr std::ptrdiff_t m_flags = 0x18; // ObjectTypeFlags_t + constexpr std::ptrdiff_t m_nLayer = 0x1C; // int16_t + constexpr std::ptrdiff_t m_instancePositions = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_instanceScales = 0x50; // CUtlVector + constexpr std::ptrdiff_t m_instanceTintSrgb = 0x68; // CUtlVector + constexpr std::ptrdiff_t m_tiles = 0x80; // CUtlVector + constexpr std::ptrdiff_t m_renderableModel = 0x98; // CStrongHandle +} + +namespace ClutterTile_t { + constexpr std::ptrdiff_t m_nFirstInstance = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nLastInstance = 0x4; // uint32_t + constexpr std::ptrdiff_t m_BoundsWs = 0x8; // AABB_t +} + +namespace EntityIOConnectionData_t { + constexpr std::ptrdiff_t m_outputName = 0x0; // CUtlString + constexpr std::ptrdiff_t m_targetType = 0x8; // uint32_t + constexpr std::ptrdiff_t m_targetName = 0x10; // CUtlString + constexpr std::ptrdiff_t m_inputName = 0x18; // CUtlString + constexpr std::ptrdiff_t m_overrideParam = 0x20; // CUtlString + constexpr std::ptrdiff_t m_flDelay = 0x28; // float + constexpr std::ptrdiff_t m_nTimesToFire = 0x2C; // int32_t +} + +namespace EntityKeyValueData_t { + constexpr std::ptrdiff_t m_connections = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_keyValuesData = 0x20; // CUtlBinaryBlock +} + +namespace ExtraVertexStreamOverride_t { // BaseSceneObjectOverride_t + constexpr std::ptrdiff_t m_nSubSceneObject = 0x4; // uint32_t + constexpr std::ptrdiff_t m_nDrawCallIndex = 0x8; // uint32_t + constexpr std::ptrdiff_t m_nAdditionalMeshDrawPrimitiveFlags = 0xC; // MeshDrawPrimitiveFlags_t + constexpr std::ptrdiff_t m_extraBufferBinding = 0x10; // CRenderBufferBinding +} + +namespace InfoForResourceTypeVMapResourceData_t { +} + +namespace InfoOverlayData_t { + constexpr std::ptrdiff_t m_transform = 0x0; // matrix3x4_t + constexpr std::ptrdiff_t m_flWidth = 0x30; // float + constexpr std::ptrdiff_t m_flHeight = 0x34; // float + constexpr std::ptrdiff_t m_flDepth = 0x38; // float + constexpr std::ptrdiff_t m_vUVStart = 0x3C; // Vector2D + constexpr std::ptrdiff_t m_vUVEnd = 0x44; // Vector2D + constexpr std::ptrdiff_t m_pMaterial = 0x50; // CStrongHandle + constexpr std::ptrdiff_t m_nRenderOrder = 0x58; // int32_t + constexpr std::ptrdiff_t m_vTintColor = 0x5C; // Vector4D + constexpr std::ptrdiff_t m_nSequenceOverride = 0x6C; // int32_t +} + +namespace MaterialOverride_t { // BaseSceneObjectOverride_t + constexpr std::ptrdiff_t m_nSubSceneObject = 0x4; // uint32_t + constexpr std::ptrdiff_t m_nDrawCallIndex = 0x8; // uint32_t + constexpr std::ptrdiff_t m_pMaterial = 0x10; // CStrongHandle +} + +namespace NodeData_t { + constexpr std::ptrdiff_t m_nParent = 0x0; // int32_t + constexpr std::ptrdiff_t m_vOrigin = 0x4; // Vector + constexpr std::ptrdiff_t m_vMinBounds = 0x10; // Vector + constexpr std::ptrdiff_t m_vMaxBounds = 0x1C; // Vector + constexpr std::ptrdiff_t m_flMinimumDistance = 0x28; // float + constexpr std::ptrdiff_t m_ChildNodeIndices = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_worldNodePrefix = 0x48; // CUtlString +} + +namespace PermEntityLumpData_t { + constexpr std::ptrdiff_t m_name = 0x8; // CUtlString + constexpr std::ptrdiff_t m_hammerUniqueId = 0x10; // CUtlString + constexpr std::ptrdiff_t m_childLumps = 0x18; // CUtlVector> + constexpr std::ptrdiff_t m_entityKeyValues = 0x30; // CUtlLeanVector +} + +namespace SceneObject_t { + constexpr std::ptrdiff_t m_nObjectID = 0x0; // uint32_t + constexpr std::ptrdiff_t m_vTransform = 0x4; // Vector4D[3] + constexpr std::ptrdiff_t m_flFadeStartDistance = 0x34; // float + constexpr std::ptrdiff_t m_flFadeEndDistance = 0x38; // float + constexpr std::ptrdiff_t m_vTintColor = 0x3C; // Vector4D + constexpr std::ptrdiff_t m_skin = 0x50; // CUtlString + constexpr std::ptrdiff_t m_nObjectTypeFlags = 0x58; // ObjectTypeFlags_t + constexpr std::ptrdiff_t m_vLightingOrigin = 0x5C; // Vector + constexpr std::ptrdiff_t m_nOverlayRenderOrder = 0x68; // int16_t + constexpr std::ptrdiff_t m_nLODOverride = 0x6A; // int16_t + constexpr std::ptrdiff_t m_nCubeMapPrecomputedHandshake = 0x6C; // int32_t + constexpr std::ptrdiff_t m_nLightProbeVolumePrecomputedHandshake = 0x70; // int32_t + constexpr std::ptrdiff_t m_renderableModel = 0x78; // CStrongHandle + constexpr std::ptrdiff_t m_renderable = 0x80; // CStrongHandle +} + +namespace VMapResourceData_t { +} + +namespace VoxelVisBlockOffset_t { + constexpr std::ptrdiff_t m_nOffset = 0x0; // uint32_t + constexpr std::ptrdiff_t m_nElementCount = 0x4; // uint32_t +} + +namespace WorldBuilderParams_t { + constexpr std::ptrdiff_t m_flMinDrawVolumeSize = 0x0; // float + constexpr std::ptrdiff_t m_bBuildBakedLighting = 0x4; // bool + constexpr std::ptrdiff_t m_vLightmapUvScale = 0x8; // Vector2D + constexpr std::ptrdiff_t m_nCompileTimestamp = 0x10; // uint64_t + constexpr std::ptrdiff_t m_nCompileFingerprint = 0x18; // uint64_t +} + +namespace WorldNodeOnDiskBufferData_t { + constexpr std::ptrdiff_t m_nElementCount = 0x0; // int32_t + constexpr std::ptrdiff_t m_nElementSizeInBytes = 0x4; // int32_t + constexpr std::ptrdiff_t m_inputLayoutFields = 0x8; // CUtlVector + constexpr std::ptrdiff_t m_pData = 0x20; // CUtlVector +} + +namespace WorldNode_t { + constexpr std::ptrdiff_t m_sceneObjects = 0x0; // CUtlVector + constexpr std::ptrdiff_t m_infoOverlays = 0x18; // CUtlVector + constexpr std::ptrdiff_t m_visClusterMembership = 0x30; // CUtlVector + constexpr std::ptrdiff_t m_aggregateSceneObjects = 0x48; // CUtlVector + constexpr std::ptrdiff_t m_clutterSceneObjects = 0x60; // CUtlVector + constexpr std::ptrdiff_t m_extraVertexStreamOverrides = 0x78; // CUtlVector + constexpr std::ptrdiff_t m_materialOverrides = 0x90; // CUtlVector + constexpr std::ptrdiff_t m_extraVertexStreams = 0xA8; // CUtlVector + constexpr std::ptrdiff_t m_layerNames = 0xC0; // CUtlVector + constexpr std::ptrdiff_t m_sceneObjectLayerIndices = 0xD8; // CUtlVector + constexpr std::ptrdiff_t m_overlayLayerIndices = 0xF0; // CUtlVector + constexpr std::ptrdiff_t m_grassFileName = 0x108; // CUtlString + constexpr std::ptrdiff_t m_nodeLightingInfo = 0x110; // BakedLightingInfo_t +} + +namespace World_t { + constexpr std::ptrdiff_t m_builderParams = 0x0; // WorldBuilderParams_t + constexpr std::ptrdiff_t m_worldNodes = 0x20; // CUtlVector + constexpr std::ptrdiff_t m_worldLightingInfo = 0x38; // BakedLightingInfo_t + constexpr std::ptrdiff_t m_entityLumps = 0x68; // CUtlVector> +} \ No newline at end of file diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.Build.CppClean.log b/HPCS2/HPCS2/x64/Release/HPCS2.Build.CppClean.log new file mode 100644 index 0000000..8baf41a --- /dev/null +++ b/HPCS2/HPCS2/x64/Release/HPCS2.Build.CppClean.log @@ -0,0 +1,13 @@ +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\vc142.pdb +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\memory.obj +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\source.obj +g:\halfpeoplestudioc++ porject\hpcs2\x64\release\hpcs2.exe +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.ipdb +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.iobj +g:\halfpeoplestudioc++ porject\hpcs2\x64\release\hpcs2.pdb +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.tlog\cl.command.1.tlog +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.tlog\cl.read.1.tlog +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.tlog\cl.write.1.tlog +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.tlog\link.command.1.tlog +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.tlog\link.read.1.tlog +g:\halfpeoplestudioc++ porject\hpcs2\hpcs2\x64\release\hpcs2.tlog\link.write.1.tlog diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.exe.recipe b/HPCS2/HPCS2/x64/Release/HPCS2.exe.recipe new file mode 100644 index 0000000..5532288 --- /dev/null +++ b/HPCS2/HPCS2/x64/Release/HPCS2.exe.recipe @@ -0,0 +1,11 @@ + + + + + G:\HalfPeopleStudioC++ Porject\HPCS2\x64\Release\HPCS2.exe + + + + + + \ No newline at end of file diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.iobj b/HPCS2/HPCS2/x64/Release/HPCS2.iobj new file mode 100644 index 0000000000000000000000000000000000000000..5a659c4666562b3e49b6311cac7713a9cd557ee4 GIT binary patch literal 990789 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

ZF{)tVPP{{xqwbaL;5eP8*#Kb**9 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�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 z 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

C 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

5$wfaU5alGm7SU2FIUG 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 ZwcZNT1@&NU=eCnJ@Z7y!UjjOj{vQS`B?bTh literal 0 HcmV?d00001 diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.log b/HPCS2/HPCS2/x64/Release/HPCS2.log new file mode 100644 index 0000000..801f464 --- /dev/null +++ b/HPCS2/HPCS2/x64/Release/HPCS2.log @@ -0,0 +1,41 @@ + Source.cpp +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\memory.hpp(97,1): warning C4267: '引數': 將 'size_t' 轉換為 'ULONG',資料可能遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(465,84): warning C4312: 'reinterpret_cast': 將 'LONG' 轉換為較大的 'HINSTANCE' +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(571,17): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(570,17): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(569,31): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(568,31): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(578,28): warning C4244: '引數': 將 'const float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(577,31): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(638,120): warning C4244: '引數': 將 'double' 轉換為 'float',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(638,94): warning C4244: '引數': 將 'LONG' 轉換為 'float',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(645,33): warning C4244: '正在初始化': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(652,17): warning C4244: '引數': 將 'const float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(651,17): warning C4244: '引數': 將 'const float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(650,27): warning C4244: '引數': 將 'const float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(649,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(661,24): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(659,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(658,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(670,24): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(668,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(667,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(681,27): warning C4244: '引數': 將 'const float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(680,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(696,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(695,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(709,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(708,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(722,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(721,30): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(762,34): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(761,34): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(771,34): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(770,34): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(780,34): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(779,34): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(791,38): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(790,38): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(804,38): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +G:\HalfPeopleStudioC++ Porject\HPCS2\HPCS2\Source.cpp(803,38): warning C4244: '引數': 將 'float' 轉換為 'int',由於類型不同,可能導致資料遺失 +LINK : fatal error LNK1104: 無法開啟檔案 'G:\HalfPeopleStudioC++ Porject\HPCS2\x64\Release\HPCS2.exe' diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.tlog/CL.command.1.tlog b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/CL.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..7e6bb26da696acf1f5d35defc4e317326e957306 GIT binary patch literal 1534 zcmeH_OHaa35QWd$#Q$L28b#5#U+{d6-`o~WG%VE(X*zT7 z%$e7@^Zs_FKqd8cqO$6$DUz=cSx3ietD~w;v3T0y+rks7r8B%9UW{?i)JMb@nkBWXTk z!&NL$DR!}eUY(w3LH`RS8iSmIA3OU3osh{aDe{SXmbC}2q-W$UTqGL6gLRYHCoqvv z!x*s~U!E!4%*Zs)t;XNTac8et)V{;kh}%|I$2#H_TTE&!l*#CG@8h$KH6mA|&SB|* z_#&?zF?S`88ta9cHrJfaXVhN4a6mrG+XkQI_t1a4jlZ@1wn-hB^k8tk{p;=j-|b(u FjURvh-h2Q6 literal 0 HcmV?d00001 diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.tlog/CL.read.1.tlog b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a52ffc84da3df273040543bffdca012c47d0ed44 GIT binary patch literal 73830 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 a*FRLwex;x9>tAvX^P_xwcfJyRx7`6Y+pb9f literal 0 HcmV?d00001 diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.tlog/HPCS2.lastbuildstate b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/HPCS2.lastbuildstate new file mode 100644 index 0000000..3318eb0 --- /dev/null +++ b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/HPCS2.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:VCServicingVersionMFC=14.29.30136:VCServicingVersionCrtHeaders=14.29.30136:TargetPlatformVersion=10.0.19041.0: +Release|x64|G:\HalfPeopleStudioC++ Porject\HPCS2\| diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.command.1.tlog b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.command.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.command.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.read.1.tlog b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.write.1.tlog b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/link.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.tlog/unsuccessfulbuild b/HPCS2/HPCS2/x64/Release/HPCS2.tlog/unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/HPCS2/HPCS2/x64/Release/HPCS2.vcxproj.FileListAbsolute.txt b/HPCS2/HPCS2/x64/Release/HPCS2.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000..e69de29 diff --git a/HPCS2/HPCS2/x64/Release/Source.obj b/HPCS2/HPCS2/x64/Release/Source.obj new file mode 100644 index 0000000000000000000000000000000000000000..8a6ebe664862ce939b502977d95bf58f653796c5 GIT binary patch literal 2666533 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�Wn3`=M6 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%0AZop;M*HxC0?J_rFLW(^IPEtCOgE6_P(ZrZ% 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 z z#z_1<*z`t6NO8oD_!F_DBi_U@f)YSgrPgwtU+22cuSNv#5wxC#PsU=&(MXoW$r^Ee z%DFpU3rC=oHE0D1;zpG4w~_D`AQFCU9KmVu@W;Z{;Hiry)eRoj+4SJasgZZ^$ghk) zDe2;8hddE_(h}n!yj6+>ttXu6!_iX-+Bf0*NQAA|U=A0TCSzu)~n>PwtKqSuJ{kCKl$cjvq;NnGf0y*<{0*{i@38uOQ zm~r@wPB2wSWjPBNNM1_z*$aVupoLI@r( zR4B^G*j~$Ms$_^8MTV@fyv7b1BC@_r$8|P-<_muHO62Za&cj>*8{?y5`{6fp1l))D z36Dy}ccd1qMzW0}0t+^OiCwhpjGzg>krO=HwP!c*(o$b}UCn-AYjaj8l@n`e<~3Nj zJM-N}_UXTO7)77@ccEGwabMMQ;zktBUvn4Hdx+@W)1u}54*f!xD7f3TrT#cP*@-!L zhB*)sw;=_dv`xR`k&|L))WfA^@A#gS0`_}wamBYP;#U-Rn(tvWlv0DaSS%+JZ)r~- zJ#ucdeJG?dHMx|RjkrIEzQXHde}M8+_PNbu6dr>%J)ppAf$CV$rj=$k4zG~pP2Rz% z8*fe-z?W?XzSG^N@X3rpoIIToN`KmLUn$042l&-b9(lM-*fX9($hmtR23MapAO&~^ z4Jo)2_Xtang3JILn+~j%8-O&Gsr$Lg-(T7Xc4N~`Je`o+-l$Um7*hG3Akj}J2u;SL z2|3YNK|Pvaht2uuEZ#-;k8I^GylGJ`pHbzRJvHmP;q1DO(sgndekQwaU$?Gfw`XQP z|0gCUxVrU>uEXd+*YOjRL$kW>jl3VZkft*A0K4u1>AE-gb`YO`INtlV0nl}?>wa1FuXE`*Us> z2ve1k?tGrB^$GB+pYG_iA{8CgSkZi*s<&0ExS7|etJPR$i0L@_`8K_bPC2+Ge>1oS+D4oQQ~ zC+NBG{VQRr?_Oa2j#vR}+Q zR0DX0Lcb8y@-kYFC#Rah`===Q1J?f?#$19-=YV8sWok)t0cyD&aC!Ur4(#&QU{}Bf zm8qr8c`?8n|MxcFTl!_qV;yK&_fFRRn|0ZMrM&dmC>JwzTE$}RDYXL)YtKM!Z1@M0 z-dfa`3Zq%q(@7^ikyS`g@%kDyW62JDo%iod{N0Pd7g%oNuz?N<8@ z?9biPvZ>m`uI{@<-+J*ntXC$rSyom;Uk1XJna}k1?z?5*`ehq=P%c5S{iI%5jI|l3 zOyck|rf==Cf78_jv+O?>APu~66)Fw&sS_1GwM{i(${s_d_-eMmz>sZCuVmEZlV7nB zB^%%5kp2(WWk@II;m`qVhdC|hu#U&xQY!e@;w*-R`4Bw4$wfdjR>@z0ct~_?rET(3DnvR=s*o5 z+lWBh8=!UsIw%eFD}j9Yep?uaH1$9=_M2=YQtf1@4nff17?`TmpBzK0Np-Lr(6Jgw zwh@7LHb6ZIbesUKCD1wmRi7Lz0gVu$V`b{E=KQ-Z*mz&!VaG1mfwYO6htlaPR<90C z4CRTWJX0t)kaBDbr0oRwPN>Zg24IXPLGV{^EqE@7;jfm*w+I-gGL>wBHEv`J{vq_p z7F^>>P4%kO204H5jr#;NOjSy)N~y)5@v{(tnq?buma}2L3+0-mpfTdh>T^7f5e$T3 zRHWcWq`+By*igx?f^6u>QES4>i87yB(!|f!YGoTnE~vH!*J8yXY7uqf zA8&MwrjALX<9QCbx7p>D@SVE+CWoy8VJ`aGC}y=`m#(4-fcJ#qbj_F zKL);2w$5T6*qY*0ws4QMMZf@5l`g`Yk8v$}!OMqR=}przYW8OL7BV;88Hacol~>)8A@N;$TKlwVQPs8(y%i1N5(lk>s;3gwc;x^xNP%) z*JP5kG2qJx{!Va(?@lT_ndu{pc`nWhQuvUzy7u$osbw=|np znHuKt8KMTUWUU<`nNh;q`25@~U`VUPeB^fxc98Bi8~}q~xi$PCP3xQ@x}a{R%Ef0|QZjJ#<|9zUfzd;3AyA?VeJwgqbjuy9}Y1q zSjqYAQSs|gO0l;qvC1t@EI$yF75smQ8C)-i+sJNAdJua${OXq+klan-yPj)e;6jxB zx-sn6B!u%%;$jresH_1w|FzJ6b8!R8DCr(0N!&d1t|sGEea|WSF@@OprBPUaD2$V! zhrkiAHbDcn<%`Ciq{)=4G-W6=^^~$b)F-9G(U{WsaUq7LxDlm2k5JNUm5A+jvo}B! zZv?7if{piL$?eb+oIH3PAFT;zDME3JC0sRG7K>MEX~OqDaV30JnjlfLbz3Tg`#Rj| zBS+rX>NAAGt;q*k;o}9~qo0|2xD{^L&TLhy18tr;9K{S-FCuA=b`!ip;(8%YJ$=G zTq}-^Cy|zg*u%8UN3*_L@q=VI3+QC#XfX?L&B4kMa} z9XaVL*2vkYQ&ec=$o_~~2}jNjkP_?!qesq5968&=cON;8PD8++tN{ zue6Wi(T2@5U!Fs#>Q-92PTu*Fu42uX$N3Bfl2B;A$o_~~3Fpg8I9TusjGiyaG7OCu z;k(b5*HF9Y`SJl8WBA;Ol{UrU!$af!hliE+POh{=%ed11hq3W0_BhWMsT?s!;Yzy< zN8U^$XB9$KH*)Mcc}GsViZyb+)hQ}8a%6wRtb`+H4GtEph0!BtBuCC_`0gWTJ!)^Z zk;6mdPaMl~N6tFzaUMBRx!4@(m9}rV($3{d`v|Q6FwI+d{K_dk{bZ#@lYmVsQ=`kU z(!Nv1sWQ4Omb{5mg<-Q+S{{TG2Se;3S!o~QSI5??#LxPeIG9a{5PzEwf?<(4Uaz!t zi&dSy(oXnlv(1;u2vyyDvFqfWFX<}Qe7OnHH?`8r{)kx#=gaLlSa27No-ZGAzD$Sj zG$7=f_8!zOdcHi0#uz^DWB7c+;lo2$rat9-dA|%R?MJfGzK5}KH}*Ks7pWXEN8w8Q zI*z=VR@zSys=AS5*U39_(p9XH^QKNwp_NwlN6bn%a=yU9g0Eoo$oZTj=X3b(BWEFM zZ?=)cL*x1WJR@fT_Bf9msa$N1^h$e@S!r*a&y{vOtUr!s=9iA?IhiZ%Y%~ejq%!p- zSK7&~IaR*IR9V8Q!mwE@Ef2zpgCX`=8Lw$SE8|K#A1keigOwH$;twD!b8?DWX~iv8 zb@obo(c;ZEUxpx5b@RoplXt$Pt61~p5=7tBN-O&#W+j|2*WqA65=PILJ6dCCTnpcQ zz6?X{qUXy5G{*3m);gAKvNMJc4~<_3XpNP2T5GJdceds=?bOz>_)zR|o-a~4VvfR< z_Ff!$Gp)2wAyjoE$F7rir?E|fQhjB2Q5FuWPu*}KnYNZvo zSk>7p?a|9N+k80*p{koNcAdQQC0)guFUKPKrdC?nA2BQ8d>Md)1^vxi{%VB;O1*!d!Yr4+EC@jE?Sl&Vz!x9RV1|FyM4pK6g?jOJ*umSzvaRXg)#>C9 z$LD@>lYIFPO#Zj9{x>wA{*2^nsu8H%dIrpZZ zezNb)%?t+h_xV&m2_dD|ciKg(pX@`uIVjZQaPghMK=oskdgT_Ue!NkCF=FBp2iCuU z=J+*f^%JQ6&Oe}@rTDgtc0hftJ=OoxE|$CztN~kQsb`#=_lr>fb33ompBcfReqB4N z|8XC!{zs$!=XOwU4hr=+T>JzuQ2mWcy>g3Fe~VH7G-4+FCt>|3Xr``9tDi{q%l-l| zODj{aw+HI29jN|wJil<}u29dGS?U=l=Nb;`XSerG`a2^S)PK}oM*hB9{VRxwza?T- zs5b|NdK@l34GdI2NvT(Eaq4d~>ilk5sT&I7~iNAA(-+V=S`2Ava@kJos)Sqw=2CYo}+!4D!!4fBHdGctkaY#YNM}&ob z^Q^kVB1#RuRV*hORjO|lGucpTyi382Gf()fPVpfq;F>F2`K~3?qMZ6;87H9{bjP03 z9cLqUa21U1j-~95f$(e69j1MO?g$t!=af|Nx8`y(74oV0n=S7)c5dFU1~&69Tgkg= zk&}0)N1`|lBAC6vSgJNysXD!*%WAcMWwi53aFk7qL6cliL$yR2aX@ObyO|h$;FQaV~Vh2-U z7zthRH@jja{F-!yXA#iXz zj86C;O!##84l7+{W?Li!eUC2t#jJD}sFjYv(ktDa@CvPT2E$(Iq(z8mt#o%V7_uVU z$Sa-5xeFn6Dj>vprQ<4D{ggGq)xaz?eAG&Jx7H@x=qud;GQI9c(BOHIxQ^3nTxaz5 zeeerUueCWVooNph>k6)P3|ibuSKR>%r7izT$7lstI$MeN6qv1*?gbQZe92a3ooRtt zx31Wg?m+2^2M{|5U>FHqF`iv96Mjv)!n7~Y6#?V9taQ0KwF9s!FO2csxsRm8R&a-+3?Q#nr^sS=@=}%(!Bz&&`M`8 z?3GShgoxHkH;ciL71>5!=|s+}2&q#6A(2+P+~H$_tASZ)_^6fcHLXpy(O0@7WqQ4Z zpuv2Rcw=Yu)eQFboA3)yuL+&Aujx#CsJO8+-^J#;reo0JR=VmASSW4zS2{*3xYF55 zywAXFt#n_afa6QHGV4qW%(@#p7x@mhLb~D|#16iKVI(B+UUtRX@N3c)rhS2~2pG?0 zrOVB^9eFe6+zyHKX9+^;R6t0il`ePqnBZz) z78*WkrCX}C$u{~*H$bM>cL*B%EfVkN^m>84y&Qhw>2+VuN@vOPrDL>$E1j*x`vc6@O1BmT9AC1PS!Y^c*4^WA)>X?{l{R)ifkjVbRuUXLh4jN zNTii6clem#YG4)`K5C_lZB*K18-1m_NTyd^1Pyk9sY<=X>GctNyAFIcz4m&=eh+>p ze*NOb&RGjZ*d8igl9evsCld^sf2D(LhfgM|J1nBq;FF1*Xz6=(CL2nP*AU#+YPTy2 zIL2fvGtacZ%zLTW)$S7Mjx7*7*bPQ^$H(lBdhlz~9j1MO?g$uDez;{^j>Swk^D$xI!MQ@uG?`^f>F<5%V z+Z$e?70+PUE1t9n5v>((F9t(aWE*+K6FH3$Ql|n!oL9USPHTk;t_EkJ!J}5ZCR&?p zqpx_$r1|6Z76=@46`7xM)mzRUZw_BgGtR=yJCEOW9$4#>&M$VhKbBM)PW63wr?dsDB2F<_fg?Gwd?Cde^H9cT~!G=#KUhJIv=>+k!mhJS4XDjhKfW}(! zx}kt$Otv!fObg7sPm5jglEX}Qv_$-1KNvx96;0Wdn@%b4)};XAB&tuosp8R&m>*&?&zEmA8U zgQZuz1K|}~@eGE&;z^4T(OU7kGZ?ZW+sG@P$TO1xviY^``FqJU#ewlecf3(UM9ieB+1n(pX@_`yjqjE3&`m)((oUz6@I?F)2A zz<4ezUT)s)$eS_mcHrE+pA2N?UAB^U(;_GDHCyreB5=?jMkjnN6MhPOhZXOz%(h4d z`X62Pr&;m-R4X2XrB}QG@CvPX2E$(Qq(z8mt$3$07_uVU$Sa=6ISnCoDj+1%ikCZl zOmHD@Eo8PO+Q2pvTXIUwDfBm$TxT_E55+;EKnf z#jSYN9k5X9@~?P|R&d3$m3Wte*;?_2pnzjcwlecf3(UL?MXz}GneI3n@q?>i7!BQV z3%g?={F-!!X*P$@pAKSN8XHiw*%+q{c0dH@3NJ=n-)2Fui1(>7=eRpVRXVL zFyYt0cUbWTWwu2!(EsSN(OvXsvs><=p0`7-^on;qyh1CU!LV06X%Qk?E8cYshOEdo z@`@*NZa_$#3J8g`;^ht>6I>0R`cuB2Iwgpx^=dQ*>%KYIYxp|aAV0_ygtjsCw zdK|kv&OH3Y@_(Jj;svriu?ssB^Y0aTover64A_dd;jlma>km9R_g`muTN?gm^9WSK z8&~)+Nyy~pn0HdeeZS1;n@Ey92-JX3nBzMZ0;NiIdqeI_*c^y||nE_tI{hQnXq`~9< z?7GR)b+2{CU%%q+N#5Hrx$SL$LUX=|Q?(s9_mpuXz}b1SmCiFQ)G4Fb&btM1D@q#4 z)SHCY!E~6a)YL9mF79($GAl~E%8maSS9eK;rOk#`0bisw&6j* zKDA4}ftRrs4s5t*{n{*7M}@P?rP17;Pz^VQ=L$O=`d2~DvCj%~_SZfsM2nE>|3zs4>`UW9f? zymHfj58_VvEdn6U5&^>t`XF3}_z8b0tiJ@tU@pgA?`9OtsvJ=sOSU29&57zMhgdN@#6d{L6rw_vK5g#8G!y3XrvBR5zf=ohI zC_wlFb}{m5v;(1Xiy>T(0EqLqfZ+vw5Uxc0g#RO~A^ZnBya!P*iyfTYhbiR#s?-x* zFfx%gjLe6+ppUUT{uA~v?!RaSKIIm}R|{XGi8vb#AARusg7^vlXIR5m8#}y5QINsM z{rUNR#U943gI3^EZZUjYD!zJxg@E+Iw+itS{%^2`Z!7HZK0<-w>%jbRe^u&f=5L~W zm+`~~I)A@o5Bau6EAT0|7`}!GfH>O<7GBT?-)h89_mcQDhEsNxj2H2u16%hMb>Go&Q?c5t*gFQUlPKX0+(_IVhog@CHik5mFGe1TB2!O|py>>XfTLKsR+(~Zs0YgwL##&# zxdwU%G4WI-Z1oqdX!nn_3s`?<`I}uZkKgFRZ&7%&OH93P+-(jiwe){cJ^n5W(DpxK z<7=PGq=smWVJVi2*xk@YJ@7ZHl8h2rpz|H1t~tmD83(C_>IlD;iM0n_^cY#*(0dP+ zFaw|V`gG)J4?HO_4B8^Nw-h1&!oH&s^_M37nF)XsVV|@MN#}?wuC_0MikgoKrx}`At-)Y z9M(x-sk94NUkN<;aws_X^198teMvk$mYSm)y14~5qD1zI5)Vc3&sh~pWE)XQnGiwA z0t8L?U%@&lX)Wyn*4JG%IJW;{c(M+(!QQg3;Za6gI!m(nv( zOS^#e(;f38Jn5JNNWBss)7G8NPue+<&d=I8h|VwCDTfpPK|2R?&#&4!gwAi;=}Bjm zb`FJuBP6g1oA!c(jxmu4>Jf|`Bkh>sSa+f0%aZQG#+S9a3mIS5?k-2?%R1fV*nC;H zyU?;@c$hLdh;+8Mp8;2^Jg^uKaQOz_hdX)sY{r z*P{j}yK*_@#n&Jj6`zC9$f39qb9gO6$>83A*tn8|bxPQE(k@_qjfqvK1V1(@J#jtu zmet}abr)v7Ea@(X<;z;#<)D07ySvcxWu5NA%9nM!3kZii z4^t)wks&{h2pidJ=q}kt?5ISVFmf-raVZbBfUUvh$<#^gN7d+SzYtpSbo5?U(E3{=T z!Z>5MmN^-BC^b#Gd0~)s62xnZf`AIZF8uK}tWs7+D|Smbf4v(^A%Mz9Ely)VQ*Zh`YPN?IO6HTyggx?u9lk8{4>h61S_ym2E`a0}Srb zf?EOWA4PK{O&=JifzqAy$D($?Cit-f-h04}Xjt3`!Y%u!yTm%sa)=zr%KccG2Vp%_ z8{3rCCNyQW2~An;AXYm8HO$@Zi46j_;(jTjsV`^7@UCnJ6!i`p@#j*r8kH1kgaelI zfHR~E8a9a~D==atloEk4GqFJ!TAPMuG zK_#B#4h070y|@v3_d=|%GVd?I4=D%pDoHVypEAtnr$pzY(5ZJXLKyE|)RwhCzB{QZ z^;?&Lbyjw%?3(QQOBdck5Gi~i$HAl7T~)u0OugF`xqGK8{|0ppK04xAA$d8cBLUJE zNeF<`h04X}KxHm2#*vW=aU&Z{@ES!kbXqizQBd?v6un%FmTg4Qw;0h$95z@XqGb*E0ivCxPNdYiXq`C}3ZDUZ zhyv69Uo#Z0MONf`dlKb-ujR@%qTJhz+@X~FgUFRx{=KW*$&~vB8cOS&2|nBO>};c9 z3N`$wHOMxihG|B_FltyS8fw;M)2U&ebC>ZD&Rupp<^H7Q$~L0hJB{2F<^C*kYu06V zQSO^)D6Jj3>~3oKMQf049t}?4y{A7&8D%tFMGe1-h8lF4cLm{1Gj*XnGxZU#BtFA< z;}ujac^3y<`?rTCR(9zf|4qZoHf&jrM+vKYmZ#beg&s9p*5DZU-dI?tb>cDhf?Q3r zNma^RO{-taJs$M9%zLv-U3I5aUD*Fc893WNj z#)wVQZ;TZF33>7V(fCg*d~qYiA}0f=IxTgKP4~zHX8peg)eSI{C5og_JY41tiLUcQy08T4blZ{lCKK_ z2FxBrJD`k%=shJv+=w#f7#TYwcEaBg)^7;oB;y0hkgi~pd|eSRV781#D5H!Il?-ts z%J|sG*cGu8{w}ai3O=C%c|Xb~x+Cy@RK06DJ!>%Wo#3Zv5#Nmpuo}rWBKll|zNet? z?utH-=<@E7O?2|{?opwimIwWFqVJ{AWg8KFzCmvy=#63hy z2M@FV6(ux9F|#k*h!PeW2`vyb;g`bt&0w4)ETRPI0yfFl1px!v5*AZ}hhj>QZA1x6 zjf64;P57-~{gyCJ5|&YdyaQzueOAUhP&JCqv`10E*z#tPCf1L(Pw#kZlyW|QgILfc zZbVJXjiz>pjo-^dmwc z;twJXFX-bUq$7@$@H@cz`_itAvYFa77=PHe(lw7M24obz1 zsPqp}25ko*HoiOo)=ANyR3tYA*hH@!xGA89=-C*em{;93?`p*>ZbaU{3~vwNJLxlHWSKfcfEAQahq(FXqYTkbpuecF; zHyGYt!h5JI??&><4Hh;jkl({JZ>)igUvcyBI^8K)Aiqm;gna(?;TZJmI+&`|Jif{Q zx~tp0xGO43dP_Teo4kDBz>hTVZ4ef<#m}_huYHD<;>_JAz8(kQw3BUkINT$c*R`6z z_bGgjK&d!YR4k*4e?`R-s`wQu{H5?+CgcEViQnD|b*$^!K74LHV3YHO+{cMiGUCwIUjCjU=x>B8c!eAXi@1P)W8STD@tR*cK6hd&1kf^v;)ht zcJ>tioUpP)KX((+n@NL#VS`|soapJDD*D;!$~)#%PVej~kJ_j_gPRce^~4pWJ=>Ez z4WEY1YQdza78y-?hrL%W*@*uiYH`FIhn~e46t~zhsHW99GOdC9(=HZckt`Tr}OCEl75x3QkLKep4edY#`>-os00u1 zrXR8xnOfZdJ6AX8leN32nh6-X7#GPB4qXyv&e##%WDtvzeB~6w=4x!A?uybr(m}lg zvr8vBrV@P~k}NOtB)JAF@DNGzPdIvTF#_uqcqFIwO2_zxu)I zi2&0UkNn`=q)v$HLg#C_&bJJOOm58(Ig|+B53d&OjT-BH|QCU;Z=Pyu$U}C1Z)^c+T(Ae zyO{@PR?GYiA0k{@penBkrgZZ@K&N1SuEnWkH_XpI_#@!8U3Xz@K zpeE|a0!Y-~K=m)A)sN%kx*ooN9ZXH~z>pHj&O^XBSh>velsXkTwN)zqA8p?OCRKI6 zJ-dsbf{IuIHkJi1j4%-^!vKqmglNEE6!SMxi7jA{J&Bq)GK$y{yC^om6%}jLtBAc} z*Tjy!fgL+ozW064Ik(K**`1m7<9RrD&$;Kkzj}VB+;i{vBu(k93VdW~aa{vG%c`K_ zz5u(;a4I+jH2gb}SO<^_rXim>8A(Md;76+jQ6xJ7BC?-bT+IqiVxiFB?L1V>-Gx%h zu4{s~S0n7DPS`U6>MuZ2t+&r2?`#+sQG=4R?PbMv+VpS8c{v*7?zVF3+Ce$51fcwS zI^|p_InQLTKC9AReHCS3Lwv#`=*}~q8k2yXGGZQsHOG4B^>9w5w!R4nMi*>twHVih`ldaW`H1EHX2ZL(9kly@oD7!$ zdranHq?wD5R1`69Bl}#H8c$%mWKV!juvj(EuRf*ym%D5%ijw;QD?+d-xIPH9&Fdramsq?uVrDpJ~=RNAqqZPc+5=ki3DR=A8a z_@zU9LQyZAqYtqUi6285rMSyTp=<}GxW`E`7ufhIFQl2PkW?hay=v@n?PQF}mdVD1 z@v)?`OP9|A>yut`16kjD9QRAtD&Bfnh#Jkk$9d?KLZLpj3savBxLV$Y$+)2}Agk^P zt=$K1gZnL9m8Nowcpvxf$34AFss?%iesu(YeNEi1qj+(COVEjFrnWuwx z5h0V?v8vjsAqg_)K=`-W6?hJJj5ZQ>1)dLXY8T+Y$VPdJqM2QQXMzR^y8z)$vkUNS zSh;i;AiP<$rY94{y8zrL7+s|P2dV!0w5*Zf(ACU`-v^Z9@r$7CuXZ})@#T!ib1IF; zd|wtWK_IoCR+t}5ABt83e9bkfs+}!8n!FlV9ZXSNT>}vn(GcO^jsCQdE5K>5SJ@~|dXSx}qRYgf{J258daAKV6ZdIUbz-L(%R5L;T%&FjA zko4CqQo%bY%)E`HA{Bg2*$Gi3I{_lHe^Fe`3Qc06&~TJxsF>?vW!E*q+p7^a_ zkn-0Gg{|1zSCDr$jEfjs4g64Cr%nHcoczK=Zfz^4t{s%~X8@{Ke?&Rgk(_hctFNxK zSMv)KYRDnhE$&NK1M8A$NWf1|po=QoLEakxCEh^N~PUM{p9q-hCd^OP1 z^1YJbTiFis-No_!8Tno>;oC?YG6P+s{vUy(h`<6 ztAYN(YJfD`S`7sE+gS~`dUiFiK459{RgCUTwzkzkSEsYjsk03M+***I&a2ec-GJap z7i?{{7}rH~HL#K8eKo_ovK_R0cPGQwkO434Bh4&BQc=WQlk96XAWvYsWKV!^#8(5V zPh!dS?P@@piJ-{y3!r~U>*;$mP4K~neUKh zzC}`z3i&-2G}WwHN@2@nr9g>AvuZUUz2pXFR^12kS2e3Ee2&8k^7m{o5aw2KIt+>TYlS+zqUad*ee zst2H6*;#cuxT#t7CdfMW-5lManOU_LG)S0Lhd0fvx_?-?bXFbSESgo5iMD3dPW>BD z{djpD)syCx)yy-3@2zmnIwrFzATz&4QjtURTPBkSyb`Pu*)Vz07uziQc!*izeT>zj zPl|MDIPlUTW;qsti7%_Tb2M&p4B1nPLRs{>6_)w^nI{1{%Zx0#kyQUaF(I__zH7GJaDgu#}?V!l~ z3W-Ff*ZA9jfED>;irkERW(1OoMCM0KJdS0?od#1xA_VRYT3yVfDn=oX&;cbtSM#&{B=S z%63pI{Jx8{axVG(0|?k1*t0oL-4XeU6mkY&j3=1AECMA9Ug{w1I&=^dm?ACX%23oG zLv)s?-`IZTZrOgd6KYadXBu58+d*BO?R0e~JZMa27f{IjACihRGy{#joW%7(zNzTW-$kdkZd-yo*TUfFLm-a=W4)B|gVUtZWA*KF>+K zP!jJ33Yk5SR3!2Ffy8W*Eb$`X+9i%2`5K8yXKKr>r4l z?~}xPfkI{|!s7Hw}Hxet`L5W+P#76+z|2LA>!tFGb z&zN^O@)gN`4P`$MwYj9s+mDJY%ucF*FuNejeyXLW{@}TdYR)x1n4J$?1i42O&oxDF zk4BeyG|Nwu+{a*o)0FuZ#FCkOP|G9FMJdk^P>=)aFc!8WR4VEWUvZ z;N0c55u=(b7@!)xP`28wl$FHg7?Og)&=6@8nd14UTe84t15u2aP zHbXm|0a-W;fjkRn$@@yEoQM{9O?qG|-w92;mCynv!4HstkMJjf^>CZ-0NqWk@GH53 z*5dgd0^e8yd{O|s5`p>f-lNd`mQ$9z;_*Ew^SOHu_A8NSFyw=$>K@fne5;&>_ybT4 z=vL3Wr|}c(`s%B?_mabHf#g%+qzUrpZ0X3qvJP%j^=SKoYb(k@{jwza(7)5fy1LP0 zgSv>Xe476@0IB!;Kpg&a1@?-^Vs2@Q!+pGJo+3R6D9tIK0=C~7y239evQK}&KK&#L zGfyDl=LH`^RXU5e5`O6+jHCQ*RQ!-?w)lrs9TtAc<5|T#{0KFS!yi(85WnQHM_s)~ z-yLlYwlfSSP@YlShVpXnx{)8dQt|65rf#r5v0z|Va0=ais2y(A!kR?KCA!GGwhDF+ zWSJTA96H8Fu#8W+Xj)@g>k-i=WsQSM^=Jj|(0TYZ!XvpB`Y`KLOQ&>xcgQYGjC-wK z-t)p+S-Q=2fy!G8=QK@fAY$2H8;hINdkrF^W6x;f zPk_v58XLF|E!VSuYhj5|%QcT?l8O8o57^DbK`RZw*@kc_VE_sS}f%b-YRkwF7(Ct5pb^B_3;aTSk8v)n7V0)T&92eB+UsZv>eVqi+g7XP)Y9$YunyQ$!c_kxR7nT zLM^>Bj$i5yJAie%gRXK1*P=u2@IU7c{ebW9gv7eTS#*cK$Y+|6RO1c~qfVqC?K~qI0GJ!1w=%#5&V-I#Yk-Gai$Tk#Mo{66$NQQrSGf0hVzr zp9F%iADVVo6vN9BO-pt{(~_@_nl{d4+or8{$cST?n)Uy{Kh3JE%<5Wn$gHn8vkn5j z|0g8YtY_1#1Ch^c!X%A^W_`6fvpT>sW{nIVyMaKNc;SQb*Mo4A#m=pM4SatOB>2Hn zP7HspXe|VU*MShuy0E-0T0ZoQZ5oRN_J4+Arhd*)?7-qVc`7%N!U5|IU_nM@6IOQ> z3#QfG2uif4B+^uODm%(wkgs5&yJ@s7jE$K$bdtwnMho4%S?CfhTf8x+bWi;>o{MA#wHrq>UL6q~e7x7s>6fn;f`_ALY7-S?KO- zWz)6HLbqa5!)ul}AD#?g{HQuoO_gwKDQ&x4@15JYtvKO@7E4I zm>0mI?6%LJ(MzHLFX16!>An%U3FAGi{SvxNH9InK4$4Iqvm;Y%@Aj7eaqQAT_ee0$ zKB=n==vtUTw<88bbo$B#uH!++KLtr^;gX>UP1n$l|3XN?c6{_EcPh%MH(dk4ptDPccF5_$_;RPS6G6j24T;s+oQlRY zAglm__Z|h*SbhTqBu-So+Z*vb9Lj@gpq zCffe?isbP4;f!eS`*z5r`WuHnKO{cea=7TeHx1?EbbMa}-S=C3jNnBaPTGQB$!OSx zDaWzrhv+j9)xx4rCVeepcLLTGcga#FNsi;|k%1Nrx85u$1*3JiIXcJcUsrWUCm&qv zrbO4OW*)(xc9uz|(z*=sdyV~@K<&vJ8DlWp8x33t&cluhuS zYFO>!SUrcV&I?(+jgeyp@|kOpxM>i7xk^hopQZLmpV^w{lRj7?3nAb`rU#nPa69yX=UD^`r};M^S31o%A3bqw#Haac5wIAW z=FcY>RG@2uPgFPglQ=g5(yF4eP@?`H~}yw!`ZVa(FWpUe`POEph?@9)JH17yX>w z3nFVcBcay8v=?e! zJsWDDAQeX2aXa42ZvT8$Nc3z9d;7O zI_$)s*@HV6nQ9#`9)<$^GK>x`M>{5s+3Dl?BrB<3&lJ@*TK|rqEd8MA3{F zKUvvy{RPI0KJXTanK}~|?}enbu!t6awxZyaI9@zfGF~`bNVurnc+sW3@uEH0a*9hH zFG|qD@gmNxw-%HV8!y&F0sTu?jTf#3#*0NA9xwVjlho5B>&qlh(j-q+WD>-&en9Xx zG;D|C#Rg;>cQ-ZxLfM4gQO$VK-?6$9S?wLN`ZVK3C*(65A#vly0P@9Uyw?Y%uoqUk zkP8cWMErT!W4wZMYBqzjYq>m#3upYy7SeGZ7qjt}Sk9WDGKWEBcY@S$U`dNF)#c)z z>-FddTloRLRPXG5Amm1>P0#`j2a?17DA%~NS};-#V!1{t%2R%%TFs19{ZOgxk;=h9 z32iJ2%&|>Z*N#?=WE;F@z>`L+{aKKXO7rXX*-cW8VV<^eTOuzE#Y;Qy#!os###_f( z2c+24N|BZn8o>smh@lN#%*a~9C1gr_7Idg&)b^NdUJ%_B)>;d z{CPxdxx73iM%%s#12-c&G}gwPk9!fRx4`eg-==+FT!LKBK--qm66N!SSV{tZSk61{|x=oMO=8}WMl%I^jq zLn#1tvGG}D6AV?2AeT5n_?}c{f?S#)NXd-SJIM(0Dg;?<1$i|Pyd9iDvqz)*}D=o&2YEMhLD8~%gQ1$ zW$zk#_H+0Pfdd97KwkaXF?lDBufs?F$Jb4Syf*^bzXypmo8-L#`AX#dOR>CcSXLsD zDSOw@YcgLqxEDBJa8JmqKRYJxKI7~5ro8(=-kX5z--pD?`*DSCI@!A#jqG0bYOt+0 z19|x5X*t2gI}IcR*{ffVK-2y-)#{Rfa#Da^rY6ld8? z{HGMo%$b>Zi*}B34;tnV0rUDZf%%HYS`#qz?Q0AQC+j;~_``fu+k2RTye2`W=MX$D z$yFE@rvb=oTo`{NYF5*v`m=IH@6iPC7=owg_}J>QCfajW6Mmk7Uw7n&0jFi&>)^xa z0ONGH3w6rW<$b)3Yaj)b6@55AIu!)rt%D-kCpyN#s`d3&&qjEMB75$ zkj^-fQTGM_pt{e>;jxh;0sjVg?oBi$`)7d%C`;K6`uKT(0wO>0EzK|w%}Btv#JzkR z0^-e4(B$AD_SJ0;O%33qnxUyZ zQsp!p3{6x*ai=W-m4!7l#Rc(JKzCp_Iy7AYz+64Vpj+yyPU{+?(_Y=-p=mZ~z>@qh zzbwf-Ecr3G8I$=4X{HkxXutmgV-A{npVI}{1RI%jfx9&{Ex^#UX>4dBbS#w4&3Ru$ z+d|!t&Nz`7nzpb*(_9WsjzkOTq;e}!OW=W@`G>NU?MNR66hB0di}?V*%|kO1urtV6 zABTWrGM`aVpCYM9QT$SWh2HK6wdd_ViO2L=W@svLNIy=ZT`#9vs_^nSdXksl0Ki-q z+7E`)RbK8IcHGMqkAI?XtrD8;4w`LcTi0f23ZP;` zlUf8U#)hU<2?p)x+7Y*wD%8!o0n&PKWl_5P&{XPD4%~QcIhQg+(`r^WUCRtj)y%c; zFx{5FDxiSIJi6@~ATuVjI?_xNlJ>2R9?zc>@Oq%O&nEa{4FlTq3TXErplu%uXoQY+ zz=b()t!P`Q;Q}QwWIx5^7RIypAO}Fh9TQS zzI~rGJ;NhjvehDBF&45nAsDQ$Yl5jO3TbD-O5^Lckv293 z;28U~yG5HoGr3CN3dJCdaZ?~SCj@FGWqS82MvkgvdW3$BgtFP_$KQvD0LWqsqLfCGo=UeqX1 z=ts{ztzRm?9H#S0Y|6S{_1%RDe+_dPUTWAEh3rzg2K+(h7i$lufy~DP+&>XXYhf{E zev2{}kgrkZ*Ggn|;E;K7lFTGlBJ)%fQf6HP{vh+>UqI$70q(aV!In5>{(v%HjeLzV zzg;4;1BcA-B*{!-B{I)LA!XJz;14pt^9#uQFu?uCk>Hz8l=&0Nya@RkW&W^4W(N+L zmn6wdVkI&^i9*V(Yrr35Uh)gb{64__kCC(%KBLTEQs$44uTkbtOJsK7komJDnMtff z=1);bnRN~LgUp}(0x~yDhs-M@X)SzBnZKvZU68L)=C4X*cHoft>m->;tVHHjQAn9} z4fuo1U;hF!uLp3yHxi6Ql=)}Myb%DlWpW(N+LS0u?yVkI*7K_O+PBap9A=F>}LcHoftj3k*!tVHIcQAn9}4fuo1XZ!*(p9OILJS6zw zA!WXRGM|fljWW+Dk=cPm=5vx{Cb1HkFF+w>)-~V{GN1Dc$UG0={tZZ43l~x5ODXew zHQ*02U-k>g{2svlrAS%}b13sQlz9pAHOf4@L}mvLndcnALV=M5{`r3!E% z^|g|k2Pw?Sjm|ttQGR{f9#(bh+Y+>J|ICSQSoBsv9nt->Ts>4n8|Z4Dcv)q^4%a5y zp`zUsj-Rl@n$8ZN(+&-S{txYNTSayN!dgJ^RzgFt9lit62?fMo+i>?iJD+}07IwN0!!+a5K3+q93#@o#9^X=Rs!k2IX7Vd$qLLtgLws35ieJ*U56!2<( zS}g(=&Ak@wlI2z=7!0Xvf-0)pm5?~A0Bo30(% z?zCR{E2v7*VKo4|eZG88T7&Td+jaAXt%X}q@V$W@^>_XjyVo~wSbVQ<4ODk~eL>^c zUSGZ!@N=tMQFN_#zc29AFX?UT0Lq%@K6>if$XDR0N&9`J=5gRbXlr}FuM~jX;MLe+ zP|E$o+THIfZ69Z#oPU_}0LA-#C1_zhjKh}3!*#8FbX7cbEy~8jihCB~)z;4Q`hbqV zIg-}GgN%m{RTK|%TUhpVP3Yy-#OAEyrHQ<38S?T}MZ7?oq3khRyVls)9p>KBdSMv) z&MjUFpI~`$7+<0p!KztQm90+eiVsGiZ~JV_im3haF!r}aTeBN2+Ik#bv+0q-PvG@n z>yctLokQ)EPZX2`s7Ip|pnYQUhFEfVy|W_>Wzimmnp@!K5bDe^;jMTJd~b`(gf0_0r&V{t zN+|jbilm4*tdn#MTXf1v(zImL3pU%KnE0tU{`Rb0pBA|edc#;iDJJ#>?|w6qsyq{t zjU$iHY<_*GdZHwGg;6#Qy93(fMp9c4L)Q+9G2V&Mk7BgcAjXa*Vi3iN(XIc~f^+Ur zj6YC}QK&{SbnT!RJ3BEp2B<$8NwwCPAOzWC17{E7I6?RZLtGHl?SZ!`e@ijw2{6wt z_;Yfqr{jTb@gCuW!|=VJ8BG^6YMJTHLz>>8!5`7U^P=@lY%8kvf2gL{-9=0uzAK7y zzaed?P}dHs@XvsfLyMj5fLyH#cN0Qfg~V|xEcFGe!m$*?s&IGwIeFz?DDhp}wpF+X z8b~)nk!~iUD7QU9p&MO0sGB_jCEfHVU*nLp7M|uX^h~9pe=i`Y;k3dlHtJ6;T-j%^ z`9KyNsfFH@+ks5OFZMRPE89Wd_jSCd$@}<__h&f?8i0KJlOS;PSHR#iVVI(|m-ct!A_z>{#7^tnMUMs~GLUw{T^*E%5cRy3LU=hGvTEbn9PI zhn(bgriAbyT?5n>c8jEa(u(I2@}x~E;)GDd=V*;TAm6?moOD1ee>5vH|xQj35^%r!#W??NzWM%M(RSF8${qs!{HZ}qr&R|CGf1MeyDUm?w`8&K$FDd<`wh3<~R2BNS&DXbSz*w9kYwMGg(9EFWY zp?&v&PS-*c#Mak_F{~iX^(G&vUV~4eQMoC5Dl4T`)sARK12Yym zPh=H{@OMXFZAAYV6a|V1{;(S1HyRx`jBRzD>P@f2s-d6{Hy+F8jzL$oyVclnQEWll zNbdOg7x}4AE1TdP)kN}h0HrW@4rKK&MbcV$odf2(95C%SDbGbEZ#wRo*-l+|?)gA3 z=b=0|i%J4Fx&{aczON69{=88&OkLoZI+sjc7Bcl_rK9+TYOHT7C_)C!TJ5%)hM8Lbxq*4q8LkF z#pqS|!@mZJW%MhKWv$4!9|1fG>Dpo}dtYN2L^V#a#B2l-EF89%Leg6Jj%J%S9NIV!dF%IEqN48O zE7QY`k?=}kf1g#zwCT;c*~pSFT?0IHfbXjB0EWE{#omR$_2(e5?43&XEW~GaU@8LCO<`r|!o`(1)k;bsHfF5fBf5hr{d^hLR{&7FqMB}S?b$;~78_cZYnii0s#MdB&~%h^vD9#Xf-%k+a#C#YUpFJ=@?*zqbsp8(T_*KW$hA z5mUV#A{!O6HULDPr6jLQl4l^vu2zy;hkN~#tAogMl7x*U$wVv3t(2sMNVYm6rg}R> zN^G)Sb?P$J+fi2ukzK1JVyd@I1YO}0^#GsF&WDoOZJ>4=v+|e9>v6{@dR-_wsEDBZ za-$p*a~BRJGlpw|I16oZBMAatwu6=04h7`U^wMbK3PM3?^|n2tlt|C^-7ZSRRBwlfdTF#(1)-p{ zI*7Cz3ZkvD?T3QW>g^CwFO9aUAQY5VZ%17vL`>gqa}04v1hf_()6whT9(LZ zx=bx{w(Z#B7JhvTee2D@cYD!yDRbOIZ>49Ap@+h=be)I+r(|1^n8WmIu4yN#BR8`h=#8m@(wXK@a>nGW?wzYvsGwFln;2F?l~A z6bwEilRJb=w$gIrkawIufSNuFrWHOK?hU1dPU(CWEOZb#!>@v$H9WYDN%~pCM~@Bi z;QJ%k<@c8F2MymQTN~dGJH9_B-+u`CzJ`477~%U7^38&2g)fGCIr5Fqs7?pthl_D# zf(rQQAKU}$t_4{C0<7<3S%1{9ZnCwpzR0ou1zF!EWPKi4pAcdFak9<=d|qp~H;k-L z?L6pgu>N8DZ2dmFn^ z=)udu>#^h&^WN)+^SK?;+@CB*&lrwOwl}lFF1L>qP%;A@ zroTd{qD?MG6QJM@DU@#1%@(hsg(9~&QsiDtkTs+HI8GEPALlw5r)~0MDd&2gVk-6H zVk&t~imBc{sI={0TDiO6#Bc#|yPw;q+P%~)>(Lc#TG8f#x5C5!;?P_9Y1=Y8L{ zvECJ$&#E%k{^ZOW>pgGL<{raZoyKCA`e0SAsd_T&{`;(E^WNVW*g@a%6!sV3r=uqC9BATy5CGQ`&=ly6x z#ute1Q>cHq*RY>|$(>lU=j;9j7Q7}>WpQ-E^wdyy`N zP^042ENoh^l4K1O`DBB2z{N!#0|nCD-$@!mc4wpdw8_@yC_MlnM_EBfIRU^nTtyva zEmZOfxaa-cwxg^qG@n)FDAUNOb(D1oB1a*WxT9ptIEn)*a+GxmRpcnHYOGqIL2r(vXtZ~r$j{J@k(zh3cS;h6gkR9mSpZ!wn#_Y^$yy}Q4-0P zbCgC4n-;7jX+n`tHcA|23Q0rAzHC&VHrd)7WqUvXX**oBz-AtLyATw{WX?yLIgiP? zOwM641BnZ&ze8nj0;47ad;U}g0k**-mN zoNP=p$)kOuggL^6IpPL6E9Vs`BX>K24&*f1+T`2^5J1{X;^7bGA?JKh!0!qo&0Nc5 z9+PXBv?6hG?u*LapD8C!t8L#cwZ{1RGxWY4J|qsQJ^`M8=}ZRkb2!LdJ_161j6y5Wk@(`c?oTUR zF@jN!Kbm`0H=k8tNgXH4%|d%}qicZHLdfVNq>A>i40HR5xn*STvXHq;z?|i4f1C^8 zoj6-Ovu1zj=PL4K29g6HC!Z~QSD*|NEVEHu?wPV4C&#N6JwWD@Xg)y3C(PUCVRp#F zK?yazuOT1zrt8)~5r@$9V{Zyk`dhYU5XR5*AfP*Ig>WUZzZOMtC_@fYFM?3>YmNI z_z7D!O;BJJfhvCypg{csTr`nj9$rxoXn#Hu>lI5Gy6TXZXL=W6;wgFUXAhI*b?x!) z;;SS05fPrglRWv)xv_>Vxc7$XpkB3D2sBCO`LI*>-Z1;)&z7@~M$i&hk8qY)Sq~WE zoDH6~?$skoelohmexV`b&AnBi7fd&UQ;^UnKg5p9g}6wKp*P{}jBY+PiEgc*WOJ_% zQ1iJPaf7DSRj)ldS}jy!G~!odWph*rc5MK@e-o0bdb`XMekrolwL{f7Y-95h)u>{H zCXYjvGdX$}zV&^x)tjzm-b}7WVYAf@ps;nQuv?_Cj~O06sWh(e!_XMR*c9`OV0d3P z0!QVRjL6|!H6|qiiK%<1Ju7ANo(Otn&zvDOe4*PzT9xl zh&DR9Lx(qiIbxi*6Np7Sy76ZAsnA}u?xcF6x{zane;f+ljNWX9Tl1*lH5!Ny`e4_=ah$f+RyJNz1W;2HSWh3|~XW0n$ zr-coHXlh;K8H!F+OPkV!j0X08VV0xHpl<5 zUKh@*oK&F~!VYIO(+)hs*$g{)ccB&f26oQjWiM+V(H-e5ZC=ia&5=&-FudQ0e=jbY@-Po~91Lpy0wmUH&!*FEioBbQ--mh?I<15GMV&Sd z+P2d|g%nFYp;F(CJa`r+M&|J(l+y#D|WN4&YSNRtH#vJtd0A&F!RTlO_G56usU4 z!E+nlAgItjr)HFQw1NN4h(Opd=0Auwxx3MZeM(pLDM!7ePgS#!4Nh)s0epWU65EST zWG~tr`OIcWTvvL8?59y+*#D92vl8OCUbbOf#&|HlWQ5@2!xs;1e*OroY}TD^R}_(T z$k~x~h<-^dAQ-g5Is{$!vN{E5GMBs0N~vqm0LGeMa{%N+6OGgRQt10bq0gt#`%q|& z7wsJwbRU{d)`-ImWUELcC9Pr_A?IQk-vw0U;5NgB%|3a?h#2fVT-1!o>z5-i9$lx= z^g5}PPlP6~%ngswo|;}KOxMUqoCv1NZUz;bV!t*bGJ&J@`0yzA0NT?zbq#cE%+|pP zFrP%pe18QE|3M_yXCJ710&Kl9*>VoDI?I)`idjyN&sZg{RPS^YVHyE5<)1+m(6?K5 zLGh#rH7ZTo|U|1c7($BWqw_Cr21naLz16-EIEQk~{XTE#R+ zHpN|$=K6vytGVwOKgniMAK>_^(ZFgG&S{?sQaa2A)y*5TPar3kLIph-d=v#7>#!j` zb=e5@7Q3^RytttRarPp;1(sZ5f}vSXdj=hkD(W%LeXL~=mer;geF9PJG6>A@(ISE~ zUvcst0}a&2n-d7nc*zN}^C)Q(8hB6gUS#s=@f38t1AmK%r1kYjgqyseK6Bb`}8w}wnAjY-M`<*d-VqIUY_W8`V8UdYF%Lw>* zc>%*)H3{elQzDKSc6ex4!1W+tIqRFoTw7J9zrd&3WTKm!xAH-_Ir~+nZxMzw%!Ctr zI-BgAZm#+Z4iZ|s_ow^I?&hsKj#%9Ic8@{w8~Sb!3iK&D@d?)HU86#9s0g5*w%Q=ce?5$Y%~f;^vn9$p14a z(095ti3iUcvov9_Nola55#yhXVHU}aVpH=#2ISuS*@4G(7nU1p)2An`n7IS*|< zPX>r&Vq*4x_|qwK6DreLsm@txAWHdoF82bfrlSo8u|ZLshF@Mag6Ig+Z7JFrRY5vr zh*r-4wp`mt7q=R6z4O;(rYjeGWyrSGI~noYGfCJtH?=BBOC@|_nIDXzpu28HRw7GaYH&`##}}dunzVdV>9M*o6@9K zW>Y%2Rl}zA*3?i1Z-)#)J#Ah~71B`_MY*S`8H6-lBQdO+b>=VtDTe(GVE#);Yz&*p zx#l6rXAVYE;WX2=uWp)I(keF1B!^-w9<97SU<(0-6ZG%VpA}Ri6Lh#Ezwii0BLAFD zWM9P}uA6Uzd!FJpsS_H33M*HH2}Ex*A-f;2K2>068D4KrY+5@vJ~!|clww}@@fK`w z+E6lrzw?Xn;%z_=fUjZGkty7at<21*2%y}=LDd?H$&H5FK0k1ro9VPbjNHqV3-XRa zMt&keGOBu4spw1|2=W7W|nXwYur(p8CH}Hq^yK%T@{Ei&8;dj(c zso%Yh(sF+1=(Xv0AwVU57uGKFyB#1#ZZYM8-|-Nf{7!<(?|2-p62Id~ID-Sf6JFpX z9rC-Kfh)f|8a(=MBC&p_so7D;XO2Wtq071U)wx_rtC-7?Lort5a_xt;U8q}yE>dX2 zg(#+VA)nGRMw#%z3C16(`nOQbAw<_ePaRVIu1@vG0NZ~XiBHhD|8HvkBD@x5;j_$vY^fO>_+u*dd!t zbT&B_*#5gntW7H0nS;0dMF?sdSD1DjvLBFVb~ses6IC@ydmn|BPSVIz0&o?RG*T-w zNegb(FiGRdR|PkTsNl9YigNE!VpvJngpJc`7Lq(Ct7!EvfchUIvF3S@3(4bE=6IbCM-j@3KNoA850J#YB1qsNRyzI zwiRNwd7)Jv39fW=zH$|mY|ifwGV(LoL4L+F$d>P`Mzl;T+&ChYTS6;=s{>iRKCNsA zz3*T^$@{d~_X!BJ79QfGCT#ZMSTOPm(;#{XYI@sZ66~{-TX(2+&X%10a!c?P%zoiD z3kH6TyFP&u+|5j)r*&?;Yv7ltfyoS-29s#Qa1!n5p=B8evxaRoJ4{8d>_sO(k&VcZ zRJmyn`PkO$8f;yD6=jZ_mSQyj0ho*KaE8^|1m-~`c+`S{fqvlU3kGsl^};~zUP2vW zH_&WZI9Ba6u^u~}L0$L;6qoxHEYmmsW_-hBYdeK|nDdF_f$4vP#QMY|e3WCqCU7_^ z>0XkVWk5DexY?Egy)kFR-nsnN3U!1L%4BO3>L@4F2^8wPP^d+8^gQxTvZGPcTh3Z6 z#lv6KE+YxQ3vyLA9>H#Et6FzdJF^*PUpB&_Y8laKK#D<+r<1vvNl!ticud=xkLmH? z-^I62et2W(kNCszUxuT8{jbD%nZejS8Tte3rq#j@&;I~gfCbM1rQG+d1<&~>?kNbV znS#)9RK*J1_s&3K7u?TcWgI@b`Iq6(sfv}kE~j+nOoeol{fR^@6aOX?(Te7jQ5)JZ zIw|7!c*n1>#qS9yf+itVQQax5Tc0+f*5*Jb0z#4UM2O=5jKube$LT-?Ew%;l2^sfJ zEuOqYj!U6kuzz8m$9a2K%2-o*#==|eF*emPHkFKNbaE;yqmRDj$%ePell^#$ZJ|eO zuSne98?4Xm--!)|upON}HgALFRm6*7(3cy{M{(GMFO5NWuHlh@VJvI}r>j&^2MI*{c#y55Ant7c~3{faDo&7^1>Y zJi8VgQ_6kfc^Av5t^p0WAl}GG;JZ2#{*fm9qxjaD?o-({cSODd6ZVd_g$Z#&6q4gq zxY=g@ii0UW0R*tngu7Ch5))>12+gr!%mfG5uNSCAz+%jV|3@&GP}h#A0v+NN*DL=D zP#nran%NtP8~I+teQz=fwwSW!p*X6z=AqndTFf3wM)Ukk9sg~^9D7_RKK$Z|VSLUy z)mMFRm#L{Ez5R$Gb5EW6RW}rUg&(*B)axYhSH5hCcBy<{9*ZCscqx!)O0H;DOZ;_N zvrooOY&vWg{1;Cs{oJ6u0TiEXg25JYnwx|Sd;FWY16`SH4Lu$Z?*c*{{~%zF$sB+* zvp*82qxUJoAt;FH=mV5isiVIUBSA+Wl0cD;$VI3lwlq2-V<$HC83Y}rq$n~LDryO! zd=>?YIv5!$YANnOQ6^iPqP_-%6!lMFj>-HTY367qMv{qLSp$aH~*7{IueW(i&L_wZ@i3S|f*1t&u_G@y(7B?V&SY!T-3EY= z?#=?{n9LbSGp92-4T;m;MyLdGz0IZ3T>6+xlezRYmwvcZsm}{QC`q3lpu8EpiMXa0 zmbT%-lYG(5pdY-vApfg($I$zu2~MG%jVeA{qCRhV=MV*dV9Q}j-_hQ=yzg)@UwgT6 z^w`|RC`_dY!d+(+tS)Z~JXG@ zV%1q_8z2P~w#Kb0{qr&aCHZF-P&=n`SCYr{LZL@@`7IWYi(4MRr0 zq#E+2;VkNulS0y}Cz~{*I3N%kxVGUPXL8K35&Lq}Nf7ug1glS*Y;6JVH-J!pn+Ht% zC<)Tc)lB9haRKhPs04D`nalR(@;h@GYcAu=Wd~fUbfB9-D9M4w1IoLeH)8>gdd7_#h+;1$9b?h1EWI7*Rfjo3K^x`6+@ArBFh_8@ z`_TI$GVDgO31Mz`lq<}sviP3Js&}GofE0wezu;DtUV0aRlDu?JKq1U6B#-F@Ov`u= z{mpORdrX)k+p#bweB(`4e@)rDNlo6gmzeO{_a;hVyvcSCd6Vl3Cd`p`Vwk(%&=bYI zK`|!=;0ya8BVSSt`O>~D>Xeg0(yAw$OhU2m2*kqNWZrQmhcjQH4F#mRYe^PV_9G-d z7NKky?0QwQpJ2bTaWo(l?4AIK|2C4=!ZkeVc^jAKk0Y;$m-upIYjg3N(5^kU&#r0a zXCdNm^!mhej$Zzy-u7_I?BU>7Ly}(VC0fzvIyB+oqB#)QFzmey{-EjLa}T+9P(T&y zs*g4}5nCu?ts8Uya9V#7`2M>{u+2xU-vF(*zaIkA9|MHRJ)d>WrxkAJdr|ZGbVOeV zxS`n`)ZG;Gsc~jQ?mfzarpFquQMQ9y8UJ!}JVi#{59PSAQaO&N9F5Pp<|T66*lac_ z21^c@ES3Af%8@s6DBD3frZ_pCCL)tRvJ_qs+)jaijVFl#kDp6Pg0KlwD|vEptvojg*3 z=7X=FSsu?eJSy8k9?x++st; z`$5-JpK@*CqzM0r*yvei6M8d7sIfl5!cFL}kt^MVHqQ|PD6M=k)6gcgS_CX&Fbba| zd_^$0zOEfn1-$c54RX?5anbCBd8`xudMWhtC=&cQ2*;y^)X%=iXZB&THS3Y6!)7IQ_UV!&}m0QlGEdo=QyqnI4Yhf`b1HlGegwj3cj7^ka~htR5E|nrzsI@vq^-3wJcPHtRtaCwZEjyY`r2Jf_tI z)+E>_e62Z^A4C-pFS43wZB~e`7Pm|!$7-Urx#SZ;oycVy>xnqa-aX(jx}Jc7jxwsJ zo}{2@g~j^ZL3e!R_K(Io-7gu*TPA{t0Z5_y;Z;*O-St{+k>>kHq@p8}!G2A)h%8Ni|OCK*~8K zL2Gf!IPNd%lyT@boRZ3tmMU|~lIn?0c?>{}$B+*qCwq)fOYm?>=rzZpY3{!$rlaU8 zM{)9W$We|5HXP+&xX4kMhoclg&Ho<~>nLy1QKlfDIe|%@$?-_4aTy0!&SeN+i_64u ze^Hl-L$~2FRGah_cNw3GLM$r^V^s-IEhM}re_tST|rI)H<=3jF`1K)W==%nM(~q#-)GUZ!b>Bvui}qXkj35%&Yr4_ zixGI=$*3RP*1%=I#qrpPNeyPGi4BQ3`@FdMHGt}mm+^-h#U82Uvk1R>tah|}sJ0t^ zz?VCvJtI5J*!f-DTyi`{H3D!jyqHtz#m)T8#Ny`q_#OL!Nd?#V9gO&huo$ZsW2_zr zezZ?Z>iXaZzIuUgO}qm3IXEVL^+SiIsa|_@6NjdOhNA-cM|jo;JmFEU-e)hyLN_qq z5h)qL-XG4hi5QULyi$YwI``Yn-hChlz07DD9j`Jv@-0m1ZI3!zg|?8Ecn%$E!rjM4 zxK~S0fpxV5FOzGx_cRny7xm_=&o81m{or)gtWTS4Z4=d=Y(V>OA+d`Dt+=NnpE--knM}@LaypaK zn4F5lMI3yeJ>|WF0-vRv=%Y*F837#e3Oyme02O=!Xzk4Q>^rz^eo^c~-X=LM!by$G zZron3))$M(^m`}|QQ+|Sv<&&-AC1}fb=QI5E*9`)o`2Z8igq)}>j$_I@FS$bSFZU| zBR=BuP{|f3W!0i zd>*Ifnuh+wn)3I1k@usu`ec9P&9tgmuqy$^+Vy7Z>}^&6b625w!m1NiNvp+#l~FVo zMS*C1R)q(jR?S!QmeY_PV{Iihl}Hm~hh#@~?S_M8$MF2oG1N^fkz6yLOsaDyldi#? zoGgWE^N`U4DCtEHpsqs^6d08kU#UI{!i_r0s3!X}g|l*BkLunM6of5CH3jRE`MkRn zcgZ74&F4pNuvBxYSyW>H7eb(NNR;|-%GR;2C3+(O%Bb)r+)A(m&Ucvaiqwl_09J^y%@tcibhVzSbl zsjhG@34TQ1ragg2@CMP5kJUx#+{elcoPlF1Yy~0o0o+HwiXh=91XhV?_(4<%+Q#F; zL%2oWa;r*vL8~CT2JJ+%AxfpL-lquUd=O6;Hf6g;h&~MDoFX%#!6PKYkMDF7nP|O7 zaSPnL5hB7~?n|Jj(qAwQ{k}WsCDg{bBUN`SIYyhZ%h+D=|1ptjcLY$p4ueFV9x!wb zGOkEuzBZI zV&qtapzKyQPg=CJ&?a<)wx42A*PIlWmiQA^Me)-t<`0y}2=Yi-T^{)?Ztg5@Q%;3V z+3sY}vi2M*h&8da4tV2e@H{c$KWSAJ(*J~{DFsHKaBr#4;JKr&z>tX`9_%tTB~?R> zcrA7Y-zuajyJm!`7eFgP!!J6nR99TREUql!C|r*S+$*T$eGSbMGoN}XtjB^?S7o|Q z1INSgJnm~~lQgmthEs&-*twW>gRxUIUW?Pn|BNacaYG8PqbL|x-#|tR7vB=?Efk># z*}g~~Q;pfRB4WL5D!4ADo*Z=W-r2PyRo_9?pm+HUI-EfSq2^uO4m$OF$Y=&40L?%? z5T$qzQ;)`M}Kn*Mq2f(XMPBxl)9*!EphCrh1kQ_vC0g!BfIvp z9{n+!(W9k7Dfm+qLBY;&!OSm+5s0_HiYW0j)DLRMrbu5HBu=+o-{20!yUqBz^gGSL zM6pv>YsH>Kb*^um_oo!7soaXc44B?>Ale6C4!rz>FEbBx55C+?84F0vo81iD z2VZW+jeD4X$K1&johrH9)2~7NVs>hCrVJHd8QIBc@F{JIS=T$;E26xwisbO#Q>B-Jy{<@%oPXIjw zWP3jKLp-^76Z*u;yiIa?m`G}TN`~8?YxTFPm`rb^Uf@umH9SBhKm4OH+go=X2=0E~ z%_sBx!`_v|T>%D?-Ei^xkmVTQ;Mq+VZlb_GXm-MC)HEX$KI40Rl?-Be>8B6G61g?I^sG>mh!Ok#X% zR!+EMT2cJ0s#vMk4S0=#8J<9+fq!jNZ}^U}_baw^mI}W6*pp0i>N!MAM@jWcAQcgJ zJ=-#^mI?|ITtQ(2+=Q|>G?(7EV1%HGp)dvNJf?|F*(`}#$r|ye=b^yW8^pKP-1~KX zc(*_9QnFx;(S%Z|d?qtp$_kxwM0Vb5Ic8ihj7bP7mEH@@; zDsGra2k;>h9u=libs#-FLfVUwezS;lw<6O0qojj1JNyvHDZWCLfb z(dFBwfPrtgkQ9VFMXCm$1klW`pqi0${xTSU<`muFXqzD;{!~N!ZDD{*!cTNsGLm>c z1AJTaje0lVP<89BTN?N>d`ncve7)s)hk&3@3RG>XJ{&Yi2Vy0+2jkUonHyNZf+KtYL?ak_uxkkZoaE zT6e6rwjo}rI6nJ3L~@+8pqhM2{=&5^$Cyzl6@S7Nf1^=^L+qQ1P=;wyv$SpzCgse~ zl>Id;YP9d@rZZfnZ8hXD$eV?TXlc7IQHUen2!}hV+&d#{aL9xy! zNNh%-F3rt=YnwUpUE5qdQyfjh!;>c90{Kn0Hu?W#kaopIp2R$~aVyyMe;aB;hly@M zVdiEgH!-;piPOfP(agI61?K$pWFDAdb^D;%XDhBF%*uhy!yIvfGeaWE=!Kf^xifX! zS$TH@707F{waL4O2B^YmhAE9!9 zrP3u%S8bw%Z1TeEY#<{_+!@0Sp>gZe%c5Q+h}Q{Ur(Xk$Rd`aaC^XjgJOTAdwk zcvQ9{Jc_x8$lOk1PKVt7$A^Z0K)(IQt=`Gew!wiIJgYT_iFZVI#bIKCg@=hJP>AG5 z_5mB_z%aV14il?I(Y+QODbDRoFqli%j;I11@I*l2Qouzai+ObDeL=#11W9XQDGvdD zLjCN6d}ePZdokIQ$zPaEWU>bm7r~|iW%A(ZC=tlCLVhInRF(#Zi9fN&ArEF~BP>3| zG!l}3gs)a8w}QuqS9J49h<}(IDTarMNjeOC!^DrGjIy4L3$$mlwFSOY z4bmyNNNdbPYX^aX{}>Xhwa=)v1Ch@hz+`_W`!Si!WD=9VB5_(f9VnBt7otQUC0hH; zYVB{-8ezjTv&83!2t8p9PeNgi6!8iij}L!@6|>EyC{e2t#e8lRb0`%< zoKP_Y3{^qoFh>%_;y!^giaW!IYqGV8d#)4rXkhwJBC+CrL2-{lK650KBbXeH#EE+W z#og`}l&DpSxL;Ut52LumaT5c=g?)gyVU7ffg?$QT6c(Q)qHRq!6t$~bfzPDy1+OO-igN%cghoC8qfG30~D$sXg=67h4PbI~;SJc{Wk zy2??UJRNeBc|e7uwBjO1VIGb$1=RfiBC(Eg5*_6PvE0S{V5f{!pX%VdDJ|ek(dmTo{?WG6}%JaDmhF z!blz_E{x=1VnbGU++kt{*Z3Wb_=vFlKG4Wi{z&kXbeQ;MG;8xPG1Xh)Vd4-A-JpWQ z#8D}@A7~B}-wT3xl4cGQN2(MZCN7M$hl!0XqzfJ~a3imbmCnZEQ01Z+0P!aIVk!uV()AZOOuWD;O*5L;L#1IZGbVE~^6J^SH!NLU zBQuj~V#ht81ye5+N&LY)2At`D_TNNe7YSN%pM`wpOeSYAIi1OAOipET3KAD_?gNVV zHVS-}a-xqe^|=lcn+L-8qk>NW9VTXbt_|R)<}mRCyiIaigp(SV-MGC%kCPt~lj(O+ z9-_eEahQSp@Q=pqd%EjDa2E@BGS5HkT@A4h1H^kDHv)cy6hGs_&HYDE5tm2JWf3lT zxWI-}?9t%hc}Jp}ujrJNRJoxhO|bO=_~(DPOKg&uLqDfQ^+bu>j+pfLeWc${qdDWa4&P@#+; zzDct5@t-Ad&?@N2K|A%zhA5Rf_qZ~3nK)2)ehYu*)c4`eZxfx5zUx>c9j*6{ngr;P z-jVxUtbEEe^iUmFbrCD9jpM4SE~y=JP1(eX{kEOZ9A^c~4DBI`;c0)>+jCwNN|T;se|=U6%1l#~yT6H3(F;14quPerVCs zLep8*B`oTilh)D_UuRX9vY2O8WdS*kEG@_R7&qZK94I(E494@-;OHD&XeF|0nfwHQ z1{L{i8RtUG_l!R?ARMf?H$~I5c@(cRQT;$vz9y}scq+HlK1UUA84&HZu>&u^ZEVIF zw{7gk8BD)0>bUXCf};@mIX#sQM-2@YlGlP#`oN#ruXWVg${@8#jV{%O*UECw=OKz;`U-Q+pXy zmS2t{Sl;QCM$=YPDkJt;1fWb z^lU#3+wz!yE!AniRd}1^^!%ID*nM%^Ozygh$@FS8TYv(sVTYgm@Q=pq>bmPda2HPs z$UOhBcO`K*fWbnmnak?9cx#e#$DMF-BK^ZnVA1f1TX*r`Q%5c;lsFi1(55N7A$hS~ ze@!%uIM}MZ1^PWuEFV@~IoR5UghkN-E`{yvMiIDmP{~^Z1-`8pJFvAb?{>#s4Igga z_bW>)*PB4;0M0>(lsPNb7$Mcuks_EGF#_I7&x-Ymk`Cry>yb1E%swI=z{g4JtXNZo z^!hQe&9=m=X=lr%rJp%X)WNtzSB{vsWP z?-zsT)GZ3XkxuzE;1vUmgTdj$jiW?Xazs2!BrPHe=#o@(JE>bkv}`UXm*dIF2cRhe zHG>6vX7La`Afk>mssrY=co0plgDM@uKJ)+h*nK1n1Z`FJC7($F>E@bC8sz z8YH)55eG@BRJz|9MbLd4qSqCRJ}@Hs5H!yz%p!he9lUA?K8Kd*xEVTQ7c z&Y?DZhB7#uCSSSrNiE$=ss2_Nb38R=*E8IJ{BY7rfQxk1&Osoo%6bAmbdAZ!C3nn+@{tW%q%QJjYHpK496y08^>b-0i@sI zqJfxs@P7+9@P8fhugAwXqcC$5lN*`bfW+}X4$ZvzC@{yzrtv8;tGlPfY{j{+neDQ9 zm?KW`lvqSLmZRp>k@ghDrdHk^Km`^u+1lhCFZm$ht)S`;4kcV((N-l?^#>qCj*o3- zdE3eGrfdh#$4qcM{)aqn9`d-NQXc;Z1T}QCqNG6F*&ZXNW39rZGtWUA58J{@^?ybx zWjiR;QK~I#kZLzd#fFti^|K;XDAiV0sy&QU%63F5b@c}+&Jc;C;|4!+`*v&O z+u!*1rbgQak0!BeZjN>R1KkM6x(F5?>l#WSk{_M~Y{ZXssYTJf7CbV*r=hb1LzmLE zBdS2hm;$Zha)Rt^^XO>1frNi0lGeg$Bk^$N3_jKTGxC`~G1-;L|1tR^lUnhfd7-H|x0oeGr6*=Z;dNQu^_Tdhr})(AVTa3w?TnInDTPb>UD zt^Lr=C!sJ$iooL0Eqo)AqN@%Dc0H?lu>J^fjRh`$=0T|Go&TxX+L24 zbCFm*&7htpBcGYXG zjN(o=;+kx2;?8j59t=#s6^Rx1T#9=T@|gpf9Kd9MBu?D(DDHMMP@+~P;+|{8J(uDV z#|_wo3;O_Z!yE||3wsU9DD3%0Sd$Hf?N!Bt?u(tUhXK={horS|9wWz96!uW$C0*h{ zu2V)9e-+ZT$J4^|M)Di;MPG#^Ui$|i+QTjP=rH*p7tz`{$Q5VVn+Xo12f1?BqJSMp zR~;~LEm|mK^egk#=zXTs`;ox+uR~(>KAU(y@COcJ+AIb`obFJW z-Qc<$^@H1-21QSI82>9i-7#n6&49yUia8^1#2;!DKizQ(qD1oP4t=6}90mfMBgd*` zPU-0m)d;}B@Endeb9B06j!t(Nvby6=cQ69P+n6wb(;ah0rt%knpWt-IxcFDs=D33r zMl8Ydpadv_LGwG$S3pTRBq7ad4S5xcB8MdAg8_!M*{oTgHrX(&Rb%0KfB@1pxM-!t zJO(h$Y;FM=8__jAIv)AVznT1t$#G1MWpWIYeyaUD>+J5gX}j8{V=9&19<=hGgm z>#uR#|Gu7e?+xnCV_gzKjnz?$kamo;KayO{#LZ}$zd?l z3fuZ*HJDdL=zGuNhOp3EuOCUoJ8(*8N|%OI{tf{0kk1Vx>&WI!QcUh;G)SdiWGWnO zPhjt2QCj4fr-0Z_o)E>(U^US&86;}h3ZpEO$RAB|LC24-_%j9TTp8z zddmkWV+YWd>BPFa(XMbX3P+nY(yeR(kQ8i(z5~@m?p>?s=SqCk$Vp#7zY`fTB@8jO07c$wfD8m9 z8+W4=+fNP<;zbS{aF4esyClNK!nUg4tLh&`s^5d^RNcpxtoDJOK3SNc&wJ5E+hzjN zw%G$Hl0NyEwD+&91|MWaK2=^yis^vOGQyZ+1fN8>dngLKhJ$^WrA|-5#`Pm4#y#^- zMJ#|RL(H5R_$)%~Q2;>E&hG+SHpsD8l|MISzlgMW3@xa=A;?G?{kroOgJ#ri7?6PWrhnc^O-fW*KH zDDoDgdO#Xu#G*9&$BVr6I&TGCB=Sh{CEQKFg}aWSms$O76bLSiS?d3rGYAm$71V;j ztf#mD5n*9_0sz}G_6vKB*>57yuc8qR@GZ)ykeC5jm>}zGXd|@?XhIjzew`djASQS; zYR?wwG(ZVQ{GMR+8R{DZ>^xzm^c&dgC44-hZ+1B=#T&oLkfd_k_#HH+URI!PiC$QkpqF;MnX%r!a*GQs!F(;!iGnL6nOipA{U^0ct2}s-& zZ3R%gE@*CMJ9l&1#hRFGUA2kF>iSF5t{+%;wV>|3tV<%Ov2dhEO8QH6e`4KUsO$Ab zf(g}wnxZ{4GL>J1c0M@_b}z!VK3NSmaU%4+jT{!HXb)(L_LQ5VJq18c(H=5Wv{Yv* zCg-6+D&3E%aGV2Oyot!U==TGsXsYW|TJ0850sNyeyD^(f-E~6sDW&$FC^-M?*10d3@*0+MsCgd(p$?gu=XZwf_&U1!4(YoQo@ z;MhEZ7sAh$#I@bK3o3;?+q$ut-pZ(vla|2BD#(ZxVThHkDDu*P48-9W(G8^toKfQD zG{9C7;;W%jKwO>lUNGny1zldBkcrGaSGP>$wkB3OKy(cyDnF>#G;}Cy#LM4gWFDfH zx@#4&MhP#d7&Hxd(K&$#FWu2BkUp4htw|0U0JEYaYNQkAM4uzdv4-WL2b!Uh^RB?Q z@k!S3NQ<@5g6=c|Wr6;kJFzgqoz^CEoMZ_|ldN@7oxZ$2(H5;yVeuuK){zL{0hs%YizN%HJm>VneOKo?To1w| zNIdIsN5o%xlNr}rf{AM*x#q-mm~<2Mi9WbRCA1_dfrSZ5XtHo=!D$91M^w*Mr%})C zhiY&)7pMYh8hkPcn(`<&aUDh0tid)mEhE+H`(?L{RPazC!J_@i7$+{OtBK116j8p> zXkFsLEKHCuO&HFB#gk+ih@$l12nT~u@c(GL4lpZzrG$tMBXahVIf6HLy#Sn93o|yR!qoR?~bKHqz!|+$A zVuJ>!!yw@h)E9pZaT*d!r!qK&!N~~Ro?u-R44JQ2F3jdahwag?J!s_hkWD)Feg7ub z2xTN=i({hs5N`k#sGx$2R#V1-|7;)#H;wS?y~21Tmd;{uCWA8&IQ)Z9toqoAlGvT# z*oor0(>|q!LsIJG3ZK zuP$WG=DcSZONSJPw2lT>DJxB62NTJbaU|wgCO#`|BrqYRl575MRBcD^#t^CqDc}!5 zL}N)38cUn9qODNCk4N&{EUg;TIkpqK$5d~g7J5KJd&Y!@LZ~8MP&*6}O$n0Fl&}?& zM3keh_i`Y@`nRSapI`Q%s-mwoLDrm->=mnQo4B$ioU(11>L~hUdplOaWqWT`;ngIn zFlQqpV^s`CG0dZ}cB|`C9vu@H0Rd0=Z>)sNuOzfW?SLdtctMBp?@V+UtjEt4#EB?0A@54KKfVwXAJ)V$ns5nAQjX2l92HaHbvv}fH}ALS4_zv8A3X@ z*pEVqPG2Z2j*+f(JBb_`M{pPsa9x*#2Jyd{#NoOxl@)!xRcd=d?fx-Lhoe|>!sOUL zg335B50J8Wfg_RSEpe2UD@sl_QT4LPF;vY-JY=s-JkTG@a^1|FSk%m<_4zoK*a^aT zWAoC6g_db}j-1eT{5kbIBMmP#Pi-iy%_#ne-JIhv&0$eMtV)8fZC=_?iM#k>eoTa1 zTDX*SU4vy~8X{q%VOT#3=%n48;BSVK?5HgSUsp8IeCz57P@$c`IW*6Kf+TmB33z$h zz9$esjDd!jU)ezx+ldC7qS&=G0P)bAzXCnUVLX=@4~{Ti(ou{j6CDh;iQoX2S>!q zVkd+b_Bgw_*qyXo%#)U(A(dh6*4nXX`ACvT`Fxqb3+!MdeZEw}Lo|6!#^>t@DnobI zHNzC0@fnz`6EbWd#p)<%wmt*k(}8ZUNjvkm+G&Rir`-4wz;IcAP@rrMF`C8Uw-B!ELFG0}W;;uTN-}(dnRItVgyrdwP{Er*Q)^zRx{CjR+}samVSA=O1=fO?}CE2t*>I?_n? zW<%CQBeI>DE^l{aFN4l-I)b*=w>btrC)r7ei(RH`+bb#8Hdh`q;@erSZPeGkcU60O zYt6LTu5Hvd7uU8V?pGjQ zx*S1gjPI1xGCq~&F@93-d^LVjb=vqd0GY zHq*Jb8CojLCmhs>0|MjPb`Ojs*EU&B&tg-N6mxBR3jjE+-A74$)<)52TI);;KLQod z^e`?uXJZ@-n07YrL$96DwLQ8K@zMipqwB z>i1Q#`h!_c7e?!M+Rgv&cJseOA>W(+VBVWPEyGmm_!YupfuZz72Q#XU(Qa^Uo6Yy8 zk`2jL8#o$(H}&N%EG~0DBdsA>YCA~cyy;zD)W}HcSxE7yya&?sSP?%eXJYKA`~zrU zi#~@kIs=d*odLXnq@XLrJ*Kp4+lvMerE0mhErvXx7qXWi9-;T8Vy}u`hD1g70;p+- z2$XaP)T>Aexg?nX zZQo;MJR4d{m3cKaDl^BoOUEjEKVF&lF#8~0nLmB~kd^WDbs1F_SMw3FXwhYn!-h<} ztz=?`ML)Lcic+W3MzK%_k@3_)K7kmzf*U=)?{*Do4b-KM;|^(;BQ)DNKeeEix1bUp zW=zZg^%+6&I8llO;0q)L3qagg?ay*&GOIhYd{2#a{V$PQTo}0y&{q^+1PM|XO&!TI z-LD}9!jzl)neHEAs=q-YHoyuGBUdq>5%t(A`~G8c=-@NNvrx)n7 zCHbOqZR7s})ilVTP$FdzCT1997V)$3rB03iE0Q$PhwK5IzJ25WhOB7rvmD$9OMa)S zZf4>uYQEP(URcneTFIhHcu6ra163E4!C8;JQd) zy0F@hZKTHWjTT5RDCBBCu2GKci^?#S4N;&_9LP|5-17d}>Z;C-V0lSNHY8geJkS8V zsV@&=ahbb^w1#AJJu6WlJh6dX@2#u2OwAWvf`FE7ZiNS4G=UG)vLDw4idW1^);|Y}0K~A~hQ^F{4da zB=R1^7cEMWKGwAol9EP1O$h|X2-S{Sy;06v-)|o3Sphc>Ta!o86VGCVS+-AkJIYx` z4Jjyc0g5$cwhvIBI26CNSea0`wHPia@rqVK7ELz-IVsaIF~fALT6IOK(;6p^>XhmT z>XfTN4BgKSLvPuxA$uz7RA+Tti@yEt!qq-J!4HxkDISq=&FxCrhSSo`t2j33E{IniTD3 zhILWXnDN{}GFxN^h^btBf?{F@`Ti&qTg2*BL%v1quTaHi2y|ZhcW8>AvfcwTmF{K` zGWah7w@&eUvLW;3xx;KuzF5z#=MJ(-$9nGUD2Vtl3zG4WZKC-QZvYiAC%==c8J=;1-e6~bKinBFX6c( z43*udIZo;ySm_uP@FR~NEo^EkU3ONSJXJa?2PvV)0ak2sPH&mDmYDTUcT zwhHY_)ppEn455mU!j?l2(O{B<2GgdjXipT-sAZqz*x4+tnsX-J=f_lUo)&sQLI=cz zhC-+!UQjy>5j_q{!g%f=Nklm|BhMWQ@^Nr~sw($;@gOw{vP7|*{ zsi|ZEHPwy~!^G>lkndDoLy|+wsR`Z0duR;wPVw4yW^J5NB_YkbA}QDl1-wqbU*C;c zdm}61c(XfFi=$&T>_M@8kRUbDct}2^?FlI`pxoRa(hiHM-Ybs4JKpS#)XFG|pti5iY8 z4o1>(MI}7MgyYKbREF-ZYlbO0^CtE|9IePAV$}-G_KhI;bfDX7(#v#QNxx2Y%FUZX z7;Y|(D`PB0UFU=2%30_<7@}vYbK-_^Y#Pr&HQ_rVeL*7{@#02wgR>DYjc0HcgEJYN z!QgZTry+2A$g`nkbicciA|>NmuWy9o$_0&h6Qyr5UEFBC$+SW}W__x~pX6x3w(`Qp zkos|~LKlp0dW5Vfim}G%Pwlbl=p%8&5XA_l`ZfK#NF&#C01lnRMDxvw=R*ZFohM`A zhH+SJ0%{1~LqM*u+9kBw#fXqBCQVgyrdwfB)mt``9u ztY)J5tTsVbf}Jjd&hP^S)=rnwPLmKXO=NH>gG&%N!(2+kG(L_Ll}Z`rQfrt$(J<5# z8HNfYQ&4jhV-?kOKSUboPBe5)G#}l|9Nnv-GyDjFr8|*yuR^?ZC4(y%T#mrey^?e{ zeFiBim7+V*(p`yksmD34P+c?zs5gqSf@-oKBaLLQGGt9OBHNkivdxjb7COWKA!uuz z#4&IK$+jUbcA1VV=QUP;lgX9Gj5w(=*S_yWdwOflwAqd;)HWB#l_ccgRUnKz zu6UDhtKW0AYg%t?>^HXi8si7>>G4__&-`h;Pg&6YnV=5+X}m;C`C zr&JnI$t0alU+qq(S4Dpcs10+2{nL2Yp%_;gZF#Rpr1A;!IT7e89}vg9NeW}G$DQdv zH$u0T+v|z(GX%E(+|2%S9pa@a2s+b=oRV6dh)VNxqNLvW+KG~?)1AoWXLX{RU_sNu zl&amr;S^F#O7&tU<2mdNrq{~k?smbHx0fS91Nn+LJ z*8Ekn*HIzPKF;p5QBtJpuae!=X#XmiX$#qckFGEiN=JW{>`t_$Jl26r;JgTd_# zZbRUxKME~tbIxeFp`6Y!cQ(8H@5U4B6lG;Ev@fWaIlD3!$z;vAaUu%Z5)Y(<{ed$KSLe zX5REJFGg`Yn?D0l*}(i>=w}GAIi5wbPUs}76T0V(QU?i2@pwpbyy;zDJf`#otJHq% z-zk03DV400zKo<`VH6FT(J9R{X@FyjkWJ5hx9hfdHo|h34^k`PZqgvnCrPvG8faNq z`Gl2|=_msmB)}u-8+;29U4jOkX6O+MQa0#;t8DoS(u+%w9E4s)gx0De_Bv&HTAArq z#{Oj-NB&L9^s+KD5D{%Da}eI4$dXp%T|_*E(8AImR-j3`(EHGIl=mp;h%t}f+%uiz zePmS@wF*B#1n(zYlzaoS8~{G5lvsWrD5|`jGf<3pTNo(d!(ahwDN2Xh??Wo>RxurL zLDr-t<0B^56%F@jZRpIr@Cj6)zW?E(c3>Ry!b9j6;Zmq5{)GP^5=##-xSzp&45l); zm%%*<+`RA^v;-@lxEai44p2&>FN`S$6xW>w=;xHJ_p%#MmX$yvYz$bF?j-vKWJA`g zM||qxLp?_8#CmqFnan0i{qX=6N{+fTUogAB-z=Fw))`gE6FK zITm3D3`j>`i1AgGOY89wtAh$75F{&x_}6COsdM!y7h^EK0}LkH;j=WeV4Lre%olN$ z)tOL?m-qo$zH&DJjNN}^ma|nzYS5e@9ZMnXH z4V_!8ySPUQ-9#wt93Qg+Z1Gz?ZSh;ZZ*g^VWVFgicz|H5bVWrqx=S}^b)>s2V0je9 zLobMBNOhd<%;eiGbsSBT3o@x&MI*Z?V`!ROnDr%wjUVXd&!NyF*A42zzmE|6QM4Nq zi%@G_(M0pjvOSq%8>p=vh2JSEvoy^xB_lIF4$W&R48kRUJdfkdL9(9}?A* z7fEGJUPh6fyw-LzRj@Y1Gsjg!d0k|=akVS~Ine$U{c=d<(^F+ViWYr=kftGNZw501 z3ovQxJ+1w-N#$5I%R`~1j2V^&NDQtJpOiKbhDC^&PiFBD#%>>JWXsIgDE607Hr zD8lTyjy_w`@33OFijO|m(wU=gMG|rn4olXI{3nutw?k1dHJ(IA52rG(hR{mX$94dC zvxV(PTChTIDyS=(Xui?W2P&Yc0T->QjH8!5gT@RuKsE8>%QF zR{aD)Nsf@d0mXHvu@X>rAasXJ=N=DFmoxay1cYqdzQRyxB+KF;h5@Vg9y~*f$_kl? zU9b)@Rw-{tL9a4o?bKawGDNNj#n8Vx0W?FrdPh#eS>uRIqfLO*?CXkc$Q>iFon9X_ zK_Bj7Tkt=NTFA=Ln(D26%9|kO2HhGEsE7)HmJm_5kc6h$HPZ@ump6?m=m!Cj)0lJn z?zNmIiAvL7DM-8yO|pxco%cE{*R7&PC<>OkVvY%$ zTWkXjHbpbuB6sF7Vnc`VIbs|dVVvAij7`v>g2~R$jb^vi#t&WiNyg^q{mu~8=lUR8Xn zSX2oQ(QG4|BvILx$}oC#oflJJ4D0}_;1Hi-f73N^rDx}(Rt*^lttq(Sa z)Q__kzRJG5N63nz7;B6i09ZBWa!u$VF+?$fvC9JfUb0!5Z$cWm?qoWWiRPPob~RSp z#aWGUSnZ#vA-oxZwc2B}+CLC4?ZaR+gHa4dGT58JUI?7kc88YH zj7&kzQH)ho)4dI8q&v#cHPL)@_i=O&h0gGH1eWd-q#j_$umchd<- zQK=N&CoJ7fNtb#sm1riRx@ZhgZxmw%)nxBL8p-Z!$eL(Gwlgnq4|HUYfX?tv1Z}NP za^`rQWDiGN>@pny?n^lUxbk>e@?@3+0QFhY!}{@kede2!_Vm_zbCT@|j(891qQ+p@>xOLOv$~UG<*WF>jK>*o&CX^q+sr1ehC+ zCdLqf?LTj@{~U#Q=|}{f=|oORtxiOxc{)*2?|khatC_t`o$SPw^ljg%YJ)r?VhYKM3FO^4#W^z_CDpj02Y^B7`5kfq zm|oifV0t5!1Mqb2WTwjjV7eRtVmZzMfW6!UQW;E@=<0YAIvoxGn*)!YojI+?902Y^ zG0rMA9RO(F4mtoty8LvLnmpnT0C5(uYr!}GOh$#8;phMm6RC0lnC=_^Ok0RC9}!_D zl#Uz#{)5)l8H<`+540^vqAlv05ELr+phB)$$5XPdXrlSntT9lbr-9?3Gkg$%opYYU zoYVe;fcjC)0ic})!s$2DQEF^cTcLx?SW;E383+pD0Pqm)1w-jN9~=P2I-_YZc{nl} zmXRT)7R24iJ_(W`1=!4H#)=#OC^#1ffJc#yj$YFNU>tN;9)S?4=^9&iIx{_;3PtEm zr-&797{@B4N0-N--)`CT{4);m(n$=)GB}aJ7zV8jPC($OpAIdZbO3k)#c8B!2Y@r6 zs`~hjm16MV_>MK}PRDm=Qua9{nJ3X*xtT&xNRZ zzIjA@oLNwR9+GvsCRv?{U0{?tNKlH$Lz3f7@AB(0r59SI_C2{%dXZBqSt*@>q~IkK ztv+sK({tbLx~+2nU@O6fI1P7vk~CxIjn1~Bk20`90zA6+H+nM^JA=H`kR&3E-VI*G zRTiCy^x|~HXq-ui&}LQiE~m^JR^|#TW8Y&s6I?}^H?7Roh={zDx#P$-ip;Pg*COHx zh89-VVdNAFI(jr3-2hBixei&CSFFP85y7hg7bV|-Ea?WIN{Qw7fuhRWIRnLrw}pWM zPB#E*DN2W0@dhgGRx#c11=gg6<3=Xe6%F@jh3L%ea0^tRzMFATJ1~yfVLa*x-$D?7 z&OZzB(wPj-U~oEv(-@q};1mRIcDM~%f)9~khUp$0rj$e{d8aX;xb8GeZ>Ma%mz5g; zD}e;wbg?GgN%juNhOAc)`qaZmdyLtO0*=``nN5^>5yql?6h^jr34Ir`Ar;~RH-L|k z9VtT}#$f?5@}|E0Kjk`I$i<-pQSrv+%3gO%8T-QmKHo!7F}MMIPGxpJxJLzokC0UT zCXM#a7?L3^YaeVeEFFCzh8w_HLF5LIzzee_-2i6BVB8BB>~nVbyv;1wW-5~P-ug=> z6yqiCLzb`H4FF^J`b1dkOfQ+;}U#| zTx*Excax7IA6@qU#iGF{s2B5CmK(rV1Z-RNF<{6r=i^A0IlmS;U!qo5N!Sj53Ncp0 z6Hw)QLP&EY-c&w`?20-qEcO(ur5nJvsy43XX=D-TTwg@`7Iba^kriMI?*`ynT-_WQ z2{(Xeh}ZSiWOsR%S*~z`GUeoYWxC6AmPb)MOuS63bwv}+H_N^P721cNj|K_9Ll8d~JP+~GxeU%>a5e%r zk-mn4)srJ7&E!b&XmWg=G^tCoAM@C6{p>fLs(wJKmKwJhzJXNqm^aO324#MROh^!E zH-NX1kD>M>GOH&qlFFLAjG~kqz)uj*99IqHS;%tZ>Ky`dpuHQwyGWHAz-)>ZeSwgs zA!%<0GXo1SX~*3FevMW09u!*2m|5YEd_WYOxqcH0uTS<3X(QCwr~G@Y zo)1x^-O*=DMs5I+t>UB4wRGm_`-p^`gu{|GBY#X1bOR7fjVIC3BdW}+A@m9Lu^m9k zY-GPDE%cmEsi3ZCqWMP07f=CBpW~u6m2vd438*2QgCKsWd@uRIqfLO*?CXkc%N--Ig&V*E zr~`MgE%*OkWS50eHp>lQAt1p(nTs1hBoT81SlAcy zMh)3RGTi_o;TmoL1)2lqs{=|54-?HdJi0-J7LQA4sKo?HuPk5a&>;>$bccqR8^Gcg z+kyt0qVxEYbzz6`Qes>p!uVoGF)j)XDwyp2+!18E0ra#idKeap&LfM(9gB%%v1ASw zJ;{Ov+hLLA2C$SR)XNZ3bY2Ll&s;|)%ZQ0yR=vzKtfdie|MV}=p`j~_`O&;g!O@|4 zs@oDzb#Mcqvd9f!Ig+U12H;i2w~9rT@DR;5vdOpsEK6k=J-TL?qBE~whPt+02TH?@ z5wx{_z}I(Q&?0|DT%wRNecHQwAoE+oMWd@WF+nEZx3>C`gbhax| zezZXXrzUr%Q~?eK03S^4U*1)QAc3aVRqsZeiJC|;?`P+?a8_Rz`om2SSgZf9L-RtX zC_3$?O;QwPiw-tJQdO;HfL(F?ys5REuJd~QtTEe6TWucM>Qna6%@FUvn3bJfSpY}V zq5r_zrvHpKW0uOIF*^*g^q4h&TgR(Pj9HcN5EEl|D3zfj>6$TSJ99WSY!SQiy$+>e z`6~9FuQ+DEqeWgrV(C=`ZUeXl#3ePZ_53C-96j*{=OW!Lgu4k%@X)!qDP*}5dL4+r z!&z^-=xP0U40Wi=2WPx4=7ySw?vKLYNGj8 z_idm8nzj~I+%S&K?+jEOZV)m4hK%1tV(ASA(-An@+oDAEzL!E~-%H78-@Bc(S2iU6 z;y{K01@zplUpxh@gHaxDj_2psB^y#oC%n{b_OydoTzlH#&>FHJiwO1HTfiyncSWz) z>*wAMFn^&x0v_*;KsDG13U*PoYa_TlYj-NKa!ju;R0a?mitNB5@WNCyUjyv~70|RJ zE+We~8t7fn4V$3XcF7;vK<^;2^frUH5V!`~86~P4h?1s(C>}M?F4A5cOu!+tWOPa! zqi@8FK;wax)6Ql*Ol8MxIRxX|7qjN=bzorx`g=%7u;d8*AGW^qh|jJ>$C{!}Kx6NQ zWEfjOijtPG_dv3*z#6-mm{4R-7O5+mXg*_)gbHZd8yA6N9LD|-@WPEzP2AWYAhGm5 zgZB_PV~;|KYGYH<7@Ojeu}4dLaTDSXnI&UW+8BFNW*B3$@=Rm9VpYZ_Bxmfh^oY+s zM8_gYWB&umFt&gcB`stB3&|drHTDo#GP@x6qV*m;_gC=Xs4uh}K^`p5DEbTD zY*7!7mJq|Kx^0YMme^rXjK(n0e8dhH5m5OY6@^#;7JH83*enevF2Lz7T zDI~V_$|OeF6tUx*%=C3Ud9k!@q>xII4fZ!n;#5PzMDvk211iu?r;7`27zd?aQD?Y) zL}?BiY&H^0vl#rs;AaGm+?gmgdegon$5JVBb6l$(M|M;cwHh@#u2k&XEMyHn=2~zE zOa3fWi54``h{#LtKPR=pt4$9Fvz z+UN62n?}{mY<#~l@!abb;#sh@iQm`4Q$FVQOPdNUqi6fyB;QO@NF-PyoE4%P(1_!GLP#GOOW)!JGoHuW3Vz5XnHU+V%{)412}#Dbl2 zuT7LldB|D!+6z%dump4q2u`A#P)TbOpDs^pvQL+%!L$LjVUe`%wHKk7cdwm59X&I3 zoa%I(3LQG4zXZbgfG#@#{)E+l^3EuS1Z|@(MV`lD41$+c{z>n$CSMG%zrK`-Ce|*} z6F)QhzDLOZhD|h^ZH^xH__JVlcs&Wl^~z}%!YIbUTvl5%A3HB=3Kl^b^u8|#6k1Lp zJrC;g+C>d0;cytPuo#NMpdI3sNUH2eNEna0>g>k#r6x5|%yFzUL-cCs*7k4#=nr>A zV29}C9HQM2FLgzrd8mWK(kZDmEU7fluuSTmufsB_Iz231e%7$O1{O49hElc1Oh`M@ zS1=kkli9GlA(;)Us~XnTmTK6}9IIUG8g?P*A5vNnVW~R;x1vl@e#j&_EbomQyrHpC zyl;fVveN8mybkg{TeDuwVcE=jiP;%`w3C`fLY;2*#El9i9hUdQK*@Gk?x#~#n96*y zY*JI|xLFcjIRH;;g7~B+ez9y)6TetCsfpDp$2lysmnU;DwV|tH;7-D_F$Q?D9G3S& zG0xL99hPa{4mvDHy8Hy5nvUZR%W)Pwox*H$WmB*gD#Q$9zE~C$sd8AJ)U-<%ebmgf zg>1o>SuhhyM-I!^qjmK*SWT{3=SC#O9F})Sh1|*9M9I3MiALLk&UDRNph9!b!q6Fx zLSP?BPsW_n{_!V3+zJgU$c>O&8d8UVXfe#jc#1<<8Ex_3X7DRIk0+ORI3Aq(I|lqt z6bVQ>*cSnM-TCNsSEJVjC*sus;#cD3!ZSSoM`;+@1T-l$tMxWPpUJw6)-~nf7?X(Vv42?b3kkaCayGi;%NQM+3OxMpR zHU(ev<8u_WzUSBK<8$9&>rq7C!B-ZsWjqMk7y(E`SNaAYpHnJ6K4-U+50Tn|5F#~Q zV_S&M4ChB29U1jtXzWzKfk7UX1~qxe@=3OaH+OIRTRDBo|0ZU;Dm{jh!7h{Q?B4X3 zp0HQ82D3}U1o-6uSY><<+9u)4_Bd2&^LIG)7kw=?^qH+25eavn@)0puPe2!znejai zLt+gD9?*EYZ;kH}TxUs~fS*zJM;z)#Jhy$4Sm_q0N;Po{wI=STJ8YBXv6hT! zKo#F4s$dPzKuP5gQbO<0HDh+^OfPv33N`63Ns}CjAbt+n3vt)!pBH}r@vO<1^(3F1 z>(Qw%YzkQp&$iL)1@1wHt%0P1Ih8yL0$jFUfKo6q(R|C+%TNJLFNp|l7{{}!P8yGm z_~;;PX~auQA#kLoK{yzL1oMjST2A>C0uA^rQIdC!dMJ8DiYq4}u~0mbp#(S%y5NNk z+$M|43t5bD^bZ_phSbNq`tn#7(nHj%(BMW}|z5QyKwm;I@NnV3;oM;PT zQFW>VPLJ1Vuwm8W8=LeK@jgx%OdVf{}v>J-IL5I zpT(TzYLGVl=~M`i!P|y`iRNSQ9#lZnyCQ-c#?hZvKn>v;2rM7-ixLa$x2P<1%9_lCa3N&L z_dDdF0ZlZY<$iz)HQ>t78D5OQ+Dga8eGo4-AaG{-k!YCUTX6y+#PXBDVxsx5%z_GN z`bCg%!#G;8FKP%cL12;T)OR(+O96vb8LWc9VVsR()lEqu)0C8qn(|l3w%e2}tfpky zs-|>F@unoUtfu@8m4!~3ZOTg_OVYn14^3&JIn1XvTnEa+%MjSDB}AMPjK9f$K4gL40)m+fH^|>q~rxdp%B(aa3?IOBok}o4KiC=`no{(ziva z#J$Qk?k|5pU2ML6-aTt&2hbrT&ctJ38^fKQLArM z!}L#<>GG%qt!kqAnEnwe(3mTTAZ{23(>n=#r7EU(AhC2igWC`|rYoYv=zgEM0_`xR zj))tTMKNlvV%pm>{SztyQxna{w6~an+kXkQKH_#KTk$R=I!5(m)cA!HOEJ2$X(~os zq2*3C9Sb7H@i(lA$(06+xxrvI(R`R!feJLr%7Ts?#=+noLhBPTxPuJtMq(*M;ApH0 z;nC%~sJu`e^;MH(4Ji+OE>*+lbUUKc9R2I~kqZWsrH#|Ulph(SmO zk0P=32!n?aI4SOK={GTn?GO9uQ zm}ow(6>$T*Ckb|qh~52U_XHA4k0WrzHXyMB>mVlC6tVlQ55@iD#nQHsLMrj22Z@DB z$&wggNSJ6o5*tDV+G&uu;D&KfdJc7le~BnfC8cMPSbB!R(+r+M;K((i*yw#0BsrE! zk(=r!wW(xBMcn$Lo$ymbYIIzwI2vKB!N=Tmx27fEgeuX3CK{3N%&GjwA`7}Np`x&# z=sw5|;LD`@A`-j*yEWrEt~;xdth94r9~ zU?=W>)Zk5Gj)~hMmx)A9zp6i0HpKLyk8vy%^ry;BIa4G`q~6|HXNpZwMewF;wQ;S} z_@d!KIa56D93dV@S5y7yX4aWvQxx;g6q_MZS&O|1-AGrxA$B%tlET=zeP?>sP?-Qd z>lI>LJL*}luxCv}V(DcBo#|dqNv-ZhrFptnQty22UP;yI?&b2+-7B6`-MxnSwx?9> zwhw9Hq*K5aZ1TU_Cf8L>?rKXld1nscw{lJXI;zEwD-f1mMc}5$t(6}#NlpRl6NZoC zArejjO5;O1X5wui@3VFK5OWGJ%5hEs?ElF!m|igmu!v8?>)D5ZC(9|I4EUUhYB~kb zyd883h;;dhC^fCbodV)4@Wz8q0k1U$y@1F&1;j+EoC2mfrvTFyvIU(2V5Wpqz_w^z zy<1X~>nL_Ol44E)>!3pRgAtUhE1GD&b#4c!(9zFySS{QDiaEETAs)kQ)c&cD`cdrd zb32QQ({CoK)TpPnLgw4&^wO79Rcmg7LVdvU@1iMwG`N{nuz#?3?k#6|5G`v**^Vev z{gRWlrWN>iinU&H?!<<|-&QC}znXNH4r`yw>%v{3q%we*(G7H+5AVr$hf;M3EutGn zT>{JJkkT9ICvM)_1Ck*Hk|r_l$tgIO_vB3|hGAUuJ^7y1y8B_Uxjz6G)1CDP;F^u@ zn%{rhi)L$t5Y47*Y%TB1#6Aj&Fb+rJqKTPttn4}n91Q*OL&LXVkJ5~o^+rQDIFv8Q z#^8roEqHJ#ge=4zvg@E1aUR7BR~B{~ee?S{YC^g6@8>omFM!$y>Os#$qsgH&^!^1E z(DYBS!VTk~r}My#BYHYOe2?_rW$+FH*F*M2iR!;uMIo@l->jmf?(|kVRg}2BUSpRfskr_%sm?nv1ZvHwZJSUn$Ii;K?SUFATDZk#$gs69c~ht zMQ4p40ZZva1|J}BW;qxos?9=4V-|`>W;sOKi<=RD$ShI|Db1Vu^5)D4bWY96X)JS2 z9XoP%#j5_Y6(OMynP06*kN6x)bS%PN$lofOKS*^LlJS~QK#G#qM0PlmJuZ9hv?(#c zL`SelUC~7I8T)9cfTp8x5je(SY@J>XMKyMa$=II)bLkTX|3l!6eGE!e8=I2G*c6Y9 zeXO(>w;=wISu!@Ijj^|6hA}oP&os6xR%L8La>g!8kNEtD=vX9a?BkFOV+%-8(lYk( zNcOm_v4;^8OmqT^;D=I*<}>yfsL<4}qtvaS$(mP(e4hiQGwO+u435#{#e-FR-UUB3 zvKFbHyjadnUgp4cYYTa-fo!7rAfF5sAU{sXal<(JhYnGA?lBZHJ%*A|kGV*SD|-@pad(CR1>!wMc_C9{ zJ%;*BkJ*ET)MGA&E-zPYMxxF#qtlz}F%zH-Jw}*{szg2J(s(6_9iLS?74#`e_2X`dY(Z1E+!My^i0RKu{sy_-v1kQNe zW4e#EQWe^A(jY!~bLlSlslv`E_w zQWMRG^g5^j=P3e=8^$rxbb|k{2)B;>X9GxS7K2}646a9sYF7*j!T#{yqonS%f4o83 zD+dsNaX*Fj_M57PiUyy7_HOvpGnK$+2{aIWC??z}1S&#$N7?aR5jp-C6 zf3H5w&C@qQ6-J$)6;*>q-7T!a6~zpV?p4{B^}}MfvPfOgMDsPm?NFiaG6y8W1EJV< z7rl%49f_si5V%2i2gFhFow#&z>>UEtS!3@msH*;=Az@?N~Su)Fz5tX}7^j2(a>i~40x&<{fjq2Ftun`l1h_d^9V-6saPVH|@| zFJ}IYYAg}G&gqVLX#ob^7<5J8C_R8;)w^j5q1Et2M@ijjL_Vl0Dn}u)P&|U61l$mu zSRb$=wVE7kF(M@!QVmzYkeba>cqEH!L_P$qAq%oc80!*$rgh1|S=T8|?#qWcuiA&9 z7Nb)zi>ghd^HJ93iehwPOIJCZSYX1(Sfs9KqB&YcJ!u&z3y(oy58j^RDa+A_w}1K; zOvecDW&LXo9Nn4y>|@x^;wxfQ7WrKL2eGuz)$Uy2B2@{WE0w6qgC*#5bu5*^1iH?n z&(*82rYtfRO2h9Fw6(s+73(8fzSB zA`!l2xSD7_uJ0PI?>MfEgXzR!3zEq6eN=)jYNGj=egqZJ^q~mihH)@G8#RQp5X6~|N4#_v zgEJ90rXQok=zfnOMFrYnN*xh5DvM&&TE%oWl8Enrs02(+G#}GX#SGleh0gF-1eV(u zY{hdBcZ@zGqsAwkSc=gX^eky8w0yy)V?jIqhG9e8P^kQd6k`6|U^dZwn7@PyXqqYL zxM3U&E+Dku5m*MFk-_LKbt_yxf9xNU;1@-U`6=1ksE}tt7 zusKL1oUfr6jbWnshlRV@n*HihBsvzqlEv=RoLGv**LGxl%^t;qc86j|#sU`e zZw9l8=EGd*p~jda=x7Ya!Qcu)>mD)qiVQACV(BsllMpyAT~K254zIfcDK1}ec;Jbp zSNC5YC+4j4%MK2Of((gtrI`c2pGkTv4OrO2yF#V+}s$_7jU* z@{6KMw4jMb>;{8aRWH68FX(zqWER{T)mU>xpL+4uKA}dpDXHX z-zla&y|rFEXZu`H+gyCEl8}SXfe??qk1q0qe6ALUQN61} zsGl#xk)ov!e!d($i=V>BPPc{ypW(1JNR&u9M_8Y$UZ^6t%e5MQJl~8;ev;4CZ|-3P zKU6Z>FdbN*t0hs)`&=!BNM$khCUhfR<$&WjH%VdaJ#A-t)-o~yde$w(xJ1;mPGQfw z8HuHv5Ok({IVH8a7nSDeUP-<4wRnm$)FZwGy@B3*tW zN=++qpQ|{F$meP%D)c^AF_9{ttCO4UhgeKo$QJauf|(LNS1Y1*<)EV`*TK(9NQ(Jf z^PIo3t9BL@r{7FesZmdD z**;h4r7x+f*4*TLu2vRJ@uR`btbzlyYM-kWXjwbTRzaC+pDWgyR?x1`)v9bL`dmrB znsl`eYoCkHRbMEnEKkhn2D;7%pR3iOR9!-g=pUmlf#q{Z=}z<$H*ftJk|70>CNVx& z6r79C)t^ud!?>o;)f&~h<33k0-B~_YD;eE2eXdG0+lmmP*>sJq<(-+>`#}-L;hMN; zVrCpGyAA?-L%)66*P&qudzAhgv))<|uJ*ZNA?}b}2X#JIER2o5{|j)#jN=v6;ru1- zcvVkwK-M31fTM{}{Z|4h zgt-rYC6JQ3(=q*el&yBWVl`P-VRg}gBUSQ|0KEza<4}n+dn&I=8-{$GjWj8&^s$Co zAN9geCYsMs1E2!-*#H-H2F771ohSy8p>zcKAaIo)U~oSIXQ+WFQEezn8beV$GSnbx zFZLz=kXhstQkpmQxR6x_lxCk8MFt!dg zSBKvCDd?lXTzZ7T!w8(QH$jPNV^h)?o8pnNHJ*_;s>#h1En+S){w0BA)CjA^MF)(F2-js2v_$a3YlI+$*33Y zEya~4LN9K}FrYxZ7b!1fYOEJgpXo)7ETmpE61u!xwLytG%b-s0Tzb(c=tVCQx}vI6 zFWM(wU7{BaA|zPtA1qi`G|_ww@h_-QFM0`t!)7S9y+}vjFCx+PqJ1IRNw<-WppKTV zcG=nwssR50)m`nhMGVf6ai=XRL%YVEwg?Y~@lIPCLj>_}++WYu15lsxW=IxE)OjFT zpo7bo%XI6(%tqEh$kJ1VC6O5wVqDVxvq|Aq>gUau22M=f#FzZ^6D z;gAf}K$N0!u=hX%nYVCy*Ff>)yN02b))5A&iRMFkG*rMqM+q=)7{_SUtAk+?ZoO-G z4M0k-GI%A%;24yscJ`tW8Whf6l+>N}tj9`wWozOuZplyr>`2zxi*-aJ7_KFf4XH-& zBdD1-_2sQtT!Z&N&>FHJ2e~mOp=TP?DM~wgY1TgusxV#!t*9E*S&nB7u4t3GWn~N2 z4~w0^B6UR*&DRKHphDf{O^^t;fnwWT^b+I^B$lQlaKrUPh@;}MxO8&V4u|TjQF{_p zRXckTM%G}Z4h`0jnBogcupP26NWaz~#oq+sAnj5gk^nlevQ@j{AGNK+KvO`8;>u&Okx@Lf`vsvoR0wZ@45WV zLO;zwH_?31&x8sX;S4dr4dWP*dM&hlL_{x>-Y1dw7`)5i9R#kEoP}c5n|2DJ>F_8? zN!@8!j#m|xok*hicZL#hl~=X5Eaa#YSR!skF~j?7@~ZszXP$rgy*ve{yKxAIa)^FulA$CT*{jtZMP-r4*KS0ceSYj=V6efT3k``6 ze-ACHL{%Ov0g1}4R0b31n&I))q1Q66Pwh%;K3TA1>*~p{$c}Ba$eCQWuBJtdt8XteiM}_quTCd1f;|=Y0D5JmWrh{X)x8 zE24R+7Js;6Z4iF>&mn8VvDte4uI>KOdLtO{v%P&kD+g=ls12?1d6|E^p#^p7FH5$d zN*v2mW9m;=EI{xtlBiaBHjb`p99LqV8s`nyIQPIh;qGdjHjbQI(Kv46eiK5$eGo9cu!IL` ziH>W%j<1TYYu1!K15%YeEKFU!K0s{C-GAP85bq_#JtK%y2vOZT*rd)t>w*tR58Iie zx(oX9P!4o-t9OY1fh2zFN#cK(`1i8-b!o_lfErs>R~Gw=hBgc1~xNM0;AMKJGpdNWM4UC&#~fB*~q^3$S9DB%m5p0 zfqi3unP@&>-#K6}64*Wh_B<`}66cB+kXU*if$Nyx6CxAX3zl0B0nbT(K&r})Yn^Ei z=C#)cz0<16-l`KW|X^% zS-#t%<^5xI{0@oWUq}cJM1aX1536`RY5zpKRa`lMC5pbBXF`Q_i0IB;<(NDZDE*Dx(KpgOIFL!}KZ!b?cx%-Ff9c7AMQ08vrg7PqgAFmhEI(|*i z>U>5siTh>=4ub?_FJ3u;z;9~w0r&2tz;}XbeC_rYL{jA+D9gdAYiHj}*}=Im6lr_+ zGOQ3D4UKKB8UrtI47`Ly*ZmiPWT25kDfV_VQp{YqZ3Aq=KR7x9LCA8T$^NEpwkY8q zW8vzW6Yf$D?kj|Qtl(;vn--hpmWGh>IE`@E&d={pDEH$4(hIOA;KKLCi3dG>8HmG* zCYo<1Ssp5&X*r?84dXmTAjsncGMZOjLt^Pw1kSL3fUq$vMY9YWvJC8sFV`Cb2cjPn z2mPre)iS&Rb9hMgi1zReumb9+w2&~E>YB3wRunUEdjnO3$4A`MU#7=s{mIj!R2D7Y zUksg?SQQ8xjU7L~+Ij9T0%?dS!xX=mu zq8O}gqWSvO>JHx9gm+>#ygz$*6sQTWi~W1m>O=kCv}AmQL^rc-Kx`Cndn2>Y z2`PgC!$Gs$qHc#Y0K$P*Ay)$H3uYCwzHHs##$YTrIR^b?HxQaCXOJ+4pRPG)hmD~~ zi{mF`dZw7BR+}LZQl4voNWVb**$eL(AvRgrg z+TaV4Jr|1Y21R5)kCELPlEL{9kW`Wax7Jl;xiij?45>0f_78}0E50oYP=6KK^DNoz zkPosZnvd+?paM0Gz(qTJ#QBcv&1e0LxH3bLduYldv@Cua+L{02xz+IoG5m8(7q$IO9V|5#app$=^jMIJU3C) zx{3~{}*vE&sn~2rsc1&u=X{uOf(;?{T-}d207GPoK7 zl5+MWz)Z^@NGjBqlnkjdX8D6CMy*wrzY0mT{K3eFk9@ITJBv5SXth+P9w;-4u;qBl>_l;j6ZDH z@8s^|2L?ySHQ+?_#({iHe|VtXAv_E{?Vv%ZbCti!5T71_oU>G`4+v?Y$BDVUm zs2ZoMm*YrkC_24K&e!_KL6tiF9N5JlS+^)Pc;o!8_!Sr`1=NYFva#=2m7Tn8)k4cv zOUfjN)@hd-yqOZ63{kyynG8w(8lr7geFOA(=$?Q@>n7+8Hb%f*bC-1xaOov)m&-lQ zM&@Ya2Fv^e6!y%!!W6AYfC)@~J`p_1@s1a<(t&jHW{ao6|9LNcg0DfVEP z-KD}Nv zgc`!z5m*i%k;8(Bm%1ZxM9ze;q}<$52Fme+@k5%~&Hsg*ZtlX3P9&2*@j0xa)=zwv zPkvT;cKRnilJLqgjnC$Lo7wt_&usm~XLd8IRgU|K&+2hN%0XW_doYL3Z1j~gfG2}X zq&y_^abuoERR}^F!#B_gt*vzhepqKC98b@7zpXJwkOq^^dF?FNta1kmbCl?sb4PeK z6ltPZ1j@n?fo-c#*j5W8?waWwNlJtbg>&>d&4u7$NPs(TTh1YOmS7Z?{J42oefe3$ zRRKVs3k|^rNbpKvyD!{iyf2FD5cWKZY4#@^*D3shk~RCgS~)V)tFl`R&WB=OHAT$> zrpN4(;-?bsx#5E9vi0bs=k!RFWm0^f?6#K|R+lxqrbOB5ot`Uu5smQ(Z5HQ9r@V6q zle z;-Ql%KgM!;?z_a)=5kn?6XV(Zqqa+8xGq_!U;lYZ`@$6AEOg3hsGzk+`8nnmCBtqA z2A7ht=4{ve=p~r5(aSK`w(QwZrEMX9N}$O(QBwp4?YJcEGm+Xgx5l(%ZiRNti7k6| zMth704At6$`X@m@U;h+EZ1_S*x{OH+R%Gp>Y^QfRS0EX4++&1Rd;ZXQ~cc<5xxPqCcrdnM{MGjq%Wn3>J0KC%Jk zb)~2|Y2HK@`Coua-E5}OdzE1;oJG|tw%4#$ZNy@=rZ-~TcG!*BWR}p;U93dnoGoFt z>f=Op2DV5W0r9PrrXszSx)w=(BEV|+RCA$nHw^^wDHN|OnrOb&@CK-Wrt5K$#TiFS z_dpFpN{b?NQ|gT-L;JB8k>0`mSVFYce(Wab4qk%Na1#W4DRae=vsNkeXGpW$%zS2r zM1=hQ_|J@6kTC)GFEft{SVD*Kl+Z@b=JvyNBXdIk0_4c~RuoQb;o{gzf0zZz!|y#L}hbZtD5g z^O{)Ai;LDI;<;pSf>$hEdhTgQ4;Qd3J+XA@nMyqc7~a_VifTMut*#`V%aV9v>C$r_ z^(^l7TvM%w)97UCxhknAmM%T_Q_qTC&y;FCjnH!)^|U4R#L}hb0qD^*qfVu1=0PM? zUV-U30(6aS(mLbG_b?P`1S|n%VIP3CBLJJH4mkVx5@w}nYdxn=ur)McdGUU37`u<4 zmS8jAQx0grh+$oJ#LP6$$B&ZK%19g$vWI@B-yg>woDv)A zG`aOLmzB+B6?0kDTmoDYYWhJ9XB@PibM3J-+at(m4^;j@dxRbVh zv0BEwdt=)c+~)hGY8kU}SHI{2V>!8(tK~R}orC(0U#h#?P*1Ct;RI!5U|Vw@{7SV9 zC!bVfzFIBCsU_8zuR+SZE_CL?b~dq%5mmokdA(Yzu`HfbFBnvW!9_ax5Ii0SVA^_>XQVW)#xWi{Jj zb|j8?VK6oX%OSC}ECTw@z6;UnDdh8kqw2nIo;=V^A+Q~$ z5T^!H$k@T0LMH0~@qH>VdL)v3ND5h5^q>U64{FGpZFERnsLgfQ4{J!9=N2^elI+`h zaQUc)C^zA!tft?WaBjd;NafGg#=3f9m=wkij!z1mnWR5M?J_yfKf*O+^3!Q@9DNKa z6_Hr#%V0GGwEO2oTQzml?mwjL?sUQKr^oC*)6k_JRhN9w30Y(Gu!9P}tRZjhPFyj& ze^o=8#=Kx~NGg1)>Ca$jrDW}?t0xb8o}RF0XC~Qi0YLWDBhg=EPrY}+Bhir3da|N% z)BR48!CxT~QqE1dX0nMr@m1C)%;H)MjX29B?G_U+N<4Hj<^C+Eo$&Xl(Wi6nG*;1b zp4qf*(NHB(^^oXrV&ZwKIV2lC)nS;~N4pIztlWgM>%Q<6ED;yOKi;o%DvrHz=1!ZdsVl&fQAw~EYHlrhvHx*-{dSq^KtiCAq_ z3n0(uL}qd(ax-lAxLB2O7G$kF8IWGpxG=@jO^?NKR&z6I*UdoOWGusnHq=^%tIncl z)jo@!)lB8;DHuGnbQV2JXVI}7w`_Cy^MF*wtbtgG`QG9r;K|?;DR;Kg-oq#z+-y#t zXSvg7LtABd`fS>Ak!&kTs>;TT(#CZ~(;xFa|1Sm=8qGR79t`_*>gfmFYjJ2Whfgfc zQ4K?-51+UZurt&WD1m}K&1Fd;2sTFH&}m?otDYBzRyKo3p|}Y{BR)hG`jb@Uhg3vc zmN%uKM$S@%NMWDJ3JThH%C6q{OG8qvzIj|)*{NTlxmO&snkg(jc<76~w!I!@nHjCO zxd=X=f?8HS9xo*EPgSUc@bP0Az`&3d)uMQ404(EJOBP-pQn>uVTvosZ=VL?3 zCvM*K61NpZ3dJoL8u4McjrIXW<%d+n#PXIDlzIP%Dgp}oOlRK2sVOk62uYY_cJtP8 zX>gzG8zc(DhO_xvBw=2oM_I4|p7Lm3Tm-+`ytA9VdH)0$Ft4Z<#Y5&@3CS5YGCBp4 z=Isrs%0?uQp{HxcGkS*?RE@p6=tVFBD(!Cwui#3$4dU(p)+o3(UKVGZ_|+W7-zDzI zc}2`q_*Es9MZc=tp6FBkxv##X?_k7jJ+!D29-_&^WW--p{*B6D3SBcy(czu2Od&cu zK&3SWh;-l(h6_fagTHum%FR#sV6n_!JVIfYp_RW|Zo1a^R$AxyUB~9yG2(Y4xA@y4 z-hrlGt3y9gbjl4s^o5K4PZSTvPZYJb+Vh^T%UM4_C7N-qH}P2RrosFT%hzT7YNg}9 zDYf+GZsFX&DNSfk|7>w5jRRp{Jj)L$ZHIXK zO(^5vfa$&w{fiNE!p6e(gRAPvdS-Stz=}5x95%GF3xvo^*Lfx}0^6H#SCP=8(XX6x zhIfcWpo3CZ76S;!VK770yXKI}qA6#0qEAgZn`+AOs$$do(4tCsh>0m@H!6cEbj@pu zKf?QFt1fG4*16_7zCF4cVd*LcS2DN)fqnVWKWIZFxUCMmzwdkChuHklCsu^d*T#yl zc5p2+LrO3u?Pa`<&r|E#-SfJ^6zc3Xr4FY%CpHyYX8i%n4{ILRdKZ5{d{=!)2+>c+ z`a=x$trrp~fq1>F)2c1|#E`JOo3hQWV9QU6w*M9C%MT)^E#OvNHV`Cr(i_=HQJ)iD zgAhj`SbN+lP28{)3ad0Oq?BR346Xs%?n@n)(?KEmA*+c+E0bBxR$VqkvzgmY?pIB7 zHLJNEgRUW^M-i4DVel}6hY;B28XP=~KR@Cb=+7R?;iYkYghX^O+WR9>>je5glM_Ff+-UqB6TgdV80cns!X!; z6#)qT03S5&?US&n0;!#h)`p(2dc4EDLg=ong?^}o{;Gj)qWPe| z?x6o$&<~42pYEYEwI+1F!RKH!9mYoVZlB)+30+wW{csDNp8-LKG0}X`-*V886!arv z(BJmZnc5-fjebJm7d}E)&cZ&*!hRQdfNi4rV80I)>gUG@_R%reA0W$2C``4mGbWVA zSl9j#WkM%z(H?8jeuO-rHPL)%{|6O9dz{ezCx-SDWEr$ft%X+4LFx{l5~&llNLwt@ z&kRx%&4-j9KM~Rsg!K3rQhw#cAZ2PTq&xGSs72apk@9mVu&IgWL&|TP2~I<3{s}nLfXwEt%H2%L@m-YEz+*YgH25|AJPRJ((yui zRt#x(BGvC!nQD=?w`;?8(nDX6&|O&z{cH<;Ap_k+^Fd$4K|fc}&xt`_)I(=#P3Vbb ztp&~Qq4ywkSJpy5&q80!KsV8R(3fz~FA((eW6*ng=uE8%-EBC{irg~>y%(XovKIP< z7W$F~x{2n4zO;jWv7lcRgT4%*>!F0H7JBNTBw8$%B~mA9kxsBkmorFBG#}DGIHZ>f z=_N6wD|n<#t%WpNEdEHOPShfuXpydHkeX;dq$@e3mkH^l7}DMzDN}19jTVb~B6Xq` z>E#w_gF$Md`H-&ckX|XISHzI6;*m177Sd?3Sd~bfs6~2}MH(2SCYldvUx)M>A-y_= zwCIsCwHDH7u~?l*ov1}R*&_Y3L29D;kd_?MYlXBehV(BUDN}19jTVbFiPVW&q*E-? zeg>(Db`t5RySnj|;0a8TTGopH#TndR5wx{_ycbT7KiLcC6MYeH{}3H&%mb{-;|y;v z_qy?y_4@gfo`A}-GV06gB1b5oiO;+F^z<>#`Rh;_6!E!N=R(r1_lf+rWI{JRG&3<) zXH@CtLoZfoRh9R++cv;UPzAJnoYlKq#_@W1eXtl(DkChdhoD1^z~|Xu14xG~Lc{Bo z>m2+;PGQmH>0OJSaR(&Cv6re}q)LoWvcW)#5ly>V`EVNyN{DA^s zn{Lh#Sx>T!l%XIF3g=3PkF7ydTw3)yWi!$h5~V5(Sq%E?oG_nJgXXv{)^O_7UOq40NOmsIAmQ+@(A9ebZs_#@lLDSL7}Rf(l|Y zDsZ%I#?c71bX03HV_1Kd_6j#L6R-L3=O@spoNcnIBKgd!A{sTTqC(SZBUnAY7LG62 zRfZy!JoQjdM=_a26Q_Ad&#+ye^50o1!*({u+D?!1-gd)LCS|*J2`!`-1~IF~j7N>x z#@jxtu6EmLZgo*(ZR_cvf!32@WIY}nByE?pmt9<({dt&xp`&Qtp)&~>^$rC~N!JiF z=;8?4TEFJX{ykUrI>b9NY<3Smfhyw&`xCo33yy33b}zgt`F1ZJ5baS}0!c)y>%1Wz zrGdUA6o!97(AN4p5udO(5cfj7BZx-_UwFg|^ao-V#3w`d2I7{ziFlvNN=PDNUFQw) zenQ*;h2a_q+FDQ98;H*!;(Ek8f_VSnJCC>*5wqa9*3*diG$B5qQbH0D>pE|U4;A8m zP#A82psn?MBEFc2*F?M{hz|>X@reIK#4I?j^+F=PP>BCs8Gs}r)-?lhhun0ALy6!n za5vyCilD9aa>Biua2G+meYnBB*L6*J*_^t{sJhGc{&r;^4e()GX9Qk3+&eDco1b}a zU4`!uPsQ(~XY~R_R(8U&->*D^!LWWOEc@-sLo16RktB8XDw?Q*zYJ|a?$DT9cjq{- z3gzMI2-;dFlk;`tTtqx4=W9}&opNxVoW+@yr8uvFL~_>E;{)f(^MUgbP#*pVL0jt$ zE;{)d#<^$)6P##`|psn>ba=we4uS7g2 z=UY>popNx#EsHZNOL4viiR7%S#|O^0%?HjeLV5Tag0|L>oTrlWtBB|1{NEI3ryQKa zEY7Sf#d$gs$yryA51hmKzfc zA2@#s<>6Nd+FG9`=jX}!OT=?>ek#S;DF^4LvpBP|6z6Y{NY1)?eBk`_eBiv|z2Mvj zL0jvKE;{)dx=L6@hpgbIbpsn>aa(E;{)f{<^$*bpgcSnL0juvL&NEV+ zopNw~D~mHLOL0CFiR7%S#|O@D%?HkBL3wySg0|KV$oYTdd>-OCIlrIc?39D^2U(n1 zS&H+8NF--nJw9;$U_Nku2Fk;i5VW;^O3pLM`9;KYa{eU6*(nF-PqR3)vJ~fONF--n zJw9;$bUtwY9?HX62-;e|BIobO`4_}hXc|5A%WZ9#9^RM$pze zo1Ev6^C-k~a-Nmq?39D^>@3c#EXDaBNF--nJw9-rJs&uq3+3U(2-;eY9|_JUjs)k6 z5YNfEWn}g9vr`Vv$B)c-er9DU&X*vOoOSj1!1?%*^Zxw&D3pg!BWP&8T>yIxB_TIaInCGA9BnlQ> zE2u9~P&8^Z(U`^E%VDEwm0xGUx@1tTbv1{y6V~Z7gZ^-}qJ9qB9d2i;i zv+pgR59jTjd(Q9N-??Y*+_}@l`9g8NhH{;p&q;Ci;BY=Si?f`iIA703akk&MeQ-Xv z3pg)%H=I{Mw3jA|^JH;eo^qX>C!{!ga5zuQ;w)z=&MUD|ob5MmADkz40q1=H5BEc~ zmo5?KOU3zbl2h(tQk>7A zTqoztQk*?FoG;JfEN3asXR}e9?Kf^8oG&5wIaUMvyPR`e*ID2q7U!TQU&QhGW zWurLTZ`?jOU*83s4+T6t3ejG=Rh;h-=OZcC$@!KPXAchNTeCRJS&H*9Y!qkvjoSz3 zTf2bsjev(CqP;X*obMIq+bGw``OXw)4-V(qS)Ao8#rY04inIO3?Su2|F5vtP;Nee* z_R{_0{IEFxNV!hV_oX;{a5&$e#aYf$oPTDcINNXBJ~-ds1)P_?7tSjq+Dng!^AqB{ z66HEM|0~7WgTwieEY5P4;=C#w#o2!2_QCm)F5uiB@NiQEPauo)v*J8}a-E!?OmX($ zaDFO_vz(wXia5V6&bLvnlkOsn^~OYEXDb4Hj1^xP5T`xC=NR2YA?qXfJ&!&fkjjNtEm4{6&hh z2Z!^QS)Ao8#d#DP#o2!2_QCnfF5vtC;Nhc)_R{y_JXf3_p^xP5RQ zb3o(ko?8MQZi{Fyohr^}it{#<>*Rb&in9lY^Ql>!@3c5mg0O88^zgv@MK^FyP@6i1yNj;yg*5 zAE#U==L=GtJvf{%%;GF(Db7!^QJn2JZXcX4>;lf80UmyXXfI6`=V{{nHRU=vU!3CX z!QnhPi?f`iIDf}Rakk&MeQ=)K1)Mi|0M1(=cvZVNUm?z$Q?8Tq^b}_g4(Cg=ILldz z^HyvWXZwxY2j@$>fb;2qhvy>NOIM2X)#7{(qkUx>lTT6z9h%*U9;s6lV_(=WDY#%UO!^lWY`c`;FTN=WDxw^D+;@ zc_l=9>1J^b#d$@_b#lHb#o2?y`Q|Lna+cz}3LC}Qe&hDR`Q|R*yfxrq5z$_{L!9px z=j|xh$@%saXAchNJF+;-S&H*-*(lET8@CV6cXR>givbU(Bic*%it~fwJdJXlobO3- z_TX^7H;c2Jr8r;4Msc>^xP5TGw+lGm33zxPqP_I6I6o%N_foEt^Ft}l9vsdOXK|LZ z6z2!nD9-j9w-3$_cLC=)fQO$W+DlJ}^E2Z78Ra@TKc3?3!QuQw7H2t2asHBx;%vWh z`{4XU7jRzwAvmv!XfHi0&M%7dDwONw{O=TJ4-V&NvpCCHiu3Ah6leR5+Xv@oyMXid zfQLg7?WLE+`89FgiE^EsUrKTI;BbC9i?f`iIPbznakk&MeQ@ahY9|HVRWSK4Ex zOYXgF_a(MpylJVS&3e{|#~%mq8cBQP=yrS*gAf_qhVbv{+mw3VKwVnAP4A7>zpYi$ zgGBb!zP%}N_i;^qqDPCGj+iuR#W{WM1VV2(>=QkxJC@gl?mo8ZtHp;@Rr6%goIZSL z4%yUl2UcoS3r?ZyisdK$SINuE2(9@reYrNGy);LC`KkJ{59K=h^21bLdT{!3PF7#a zS*kA!Y!o^BjoU|G&dKb{&T;+-@bC*nd+Bp={#u+rr(7rJ&r+N{IGjJv;w)z=&R?-n zob5MmADln$0?xbr3(kK;w3ogW=O4xS50vZV{7s6p2Z!^wS)Ao8#d&WwinIO3?Su2T zUBLNcz{4*Q?WMWmeDZ;C{(^FyoPSDj_TX@yo5fkqQk=hLqd41d+&(zZ?E=p0Jp$)` zi1t$HKsf(XoHw9cC+ATIRzdlb&gAo#AJI8PMkr773R`MeZo4-V(^ zvpCCHit}=86leR5+Xv_KyMXilfQKUx?WIZLe2F*@r(7rJi&C6DIGiVCah9_b=Y!ZN z&h{I(56+Xifb-pehYuonWLlgr7v~2k*U5Qmin9lY^Rz6^a+c!!FdN0$e&hDRd0H26 zUgpz<&Z|?dlkqbS$O`KlCW4-V(6vpCCHiu18-6leR5+Xv^XyMXgefQPpucw}0fZx!c|a-E!S zNOAVyaK15%vz(*V}Ein9lY^MhHOkHT4s^RaBS{aL?p`{4Xw7jT{o zXm}ZdN2bO3DRI7(a-EzXO>y?%aDFU{vz(_Fh)8hQR zIKM}^PR>uKID2q7Ka<5-&QhE|WTQCSZ`?jOKhp)AS9k)>t08z~TAW`I=T#}!$@zs8 zXAchN7qd9aS&H)-Y!qkvjoSz37rTJ-ZvYQ>MDWP8IKL^*LnznD`PCF>4-V(ovN+3G zit|u5inIO3?Su1cUBG!F;Nc|*9+?*B_r!S$hXAchN53)GRS&H+$Y!qkvjoSz354wQ!n}CP! zB6wt4oWB(3cPQ7%`I8i94-V%~vpCCHiu3zy6leR5+Xv@QyMXhOPr`Y51dmLM^Y`Ms z9OXJWf0g3w!QuRM7H2t2abA&);%vWh`{4X_{hV)jTI=>}+Y-$1W!$i_Q}Jb zy$5Amy>Iy&f62Z5#(KE_@xbJ_!gF0NaBkN%x25Yu-s<7NhGI1MKzUx^z+T$va)OuDJ&VHPlnFxot36)4LjQ~?Qz5OeYJVLJC&N14X731PN!xiY&tbh zquCk&?AKD$ThvU=+=HQw4aeXhJOdGp4d<)tPN$rs>qaDP2?@JOH1yfty0k{V!J)v) zU)em1Qu-^KHqge+VCRg-!NGmaqN29x2j^1!S-0;j& zcq5aIJfdkJESp+-2zO|=gUC4dXZgN^Tsxi1v_mY@mIsUZCo))8Vi`n~X@4)QNTEii z9adOLm6mC;nSZ7oKD65rq0p)`?a0C^f~m?hH3z1aX)E)$%QQKxm1##4cV8dMB$;We zQI7iInCeVhow}+_JJ!0ujMN3k1MQn$&a?q*ltE9Z&XYCMp#LyXGZN@YfGXaWCq2th zZOYWRCT0?ItH_nMlTkKYLlACTN%o3qod4v^vP~^3$OrYKWzyW&73<2Iwy{81?(_k( z7_5a1dQ0>|M7h&84yD2`*ia*X+Qv(vAO*`I+0H+Q+D^d&2B-293b{I$+D;SX{|U06 zja-A6`+csFOHK6ov<`o}e3J8IJ`I}In~@92Xw!BESoD$C31ybdsb5l#a;oi2`K=nk z)}_8GuiDN+&$`Qut-H=~Zaketeyx{qaIPFwjYUC*gY&!tGd2eoI0xz<%e7x6U@xRD z^ffWVm~&;WP4L);VAvPQUh!7Y)*DN>2THW8Eg!^il1zA2m=){GwaGwOuJr?idnk~> z`VzlJ_*}aLrNV}6sFiC|rLd6{EZ1b)L9R{10tVCh35A@>wMzxLi6HyhXQ@wKuBq)S z<(iu4b8Tb(cDW|!iCk+x`CNUi7pYvk94vCp>x42(=Gvx|eXh-r->O_|p}soTu0YRn z&5W(P+GyaO{f2Re6!hx*5IZHol#HPpp5F~gX1Wv*T8 zu?@knua~{zt)Q(pj&Ki@Xz4E>#P9~0H1~DI`f}|iAS~Agf>{iDu>b_+^{ zZP-vN*KU=A(xoXRzQo48OEYvr1n=yPp5{&u-0 z=gC~->m}qGQn{uN6VpdtCzM$-*M3Xc=h|%ft;)6SsjtqpyU?>-Gh^$ndz>3jCy{GA zBplo;2UWQ?IKzQ`c6b3k-C)M%-~s1A{bRW{Bmt}M2#3BVW*Bp>%r$*L*cxvLhOJL8 zg^IU=W|OmlEW$Lk43ZCGsBbEfYpz&duIU>{mTN=7x42(rq=H%`_!^8B2}f<9@JN-)^lK5@0hXm&I`_sr;tdkJrfRI6q%~j`a_0;m%IZr zHV67%5j@l` zrIx-FRM=OL%h(7uW+2~gU<51tm2EDyz1?PFdiwIr2V`oa%g;&noqB~xoZ%09I| zkguxL+MoLB)QZ2RW5(7y(bsf5g+yu{kZ|y^98{&&ff)`yLC?D1jLpGkj)(fhQfpWO z_H*h&UlTKoIaj9E7arRX4ErnDE5-`idgBQ3K#7)pN%i9+2@)*%37Uki&I~n zYb&E?xn{=JUHalGZakfGu5CI-4nnbsmj@EdV^&*U9;;AWYrtsP_B9=i0R&B7YOT)J zr81gmUu{)J8H6>_eT6kt4_mg56?g=z&#=Zdag5@qb=SAyx-FVqG;7nBSS<*KV;zAVoX&ZNVZHyiO>yWX4UU>@#jV`K`*htfjXidX{l!Y~A%+ z=f=}XWZblbgYD&@D&qp`t5bRh@4$@B!4T&_{bLz7JpsETb)m0`8OEHmGHxgD!EnsO z&O%Yts}|rck|+90*Z9deSFA7Nb_K#R?g}uA!R5%{GKotOKI3*rscEdF*GC+CTbt6YHF3oJ6u z>x42(X52NDea7uAzf~F6LVa~Y{0TkFI5W2H`m=N6=_E4l+Ju9@$U#-cZJy!auik+f zn}feO2kIZoxa$(I`%xGAnwVkCIVcGGcUJ=Tc=q#*g7A6mlxr#tQObL2h9O)a|xzYHKFh3Jgq33dv4mSARVy>ps#<0&K(?9qgS)8(Kl!Tylp;0*7; zjLpGW&Vl;G66~=A?Ag?Xz9wcEbIwYzbG!$`F%RbnMUk#rlDl7?=%e#x(%jb->r1c; zfv^O73d~~g1TuIW;S+2E^@V5HP%FVEO5xv9umqEB2MKl&7BqemKcSFQ33jm{pA+O_ zHkz?i)Ye@I_AJ|6g2`bb!77*JreIHkd7V&Z$pm|WvQMx}l6E2s;7P0TRnoRwhh-h<(o zhnYfAq^nj>o|Y&2XqHTx`?_L%33fFQmSC@fSq%Pz3|>a~1iOa%!hhLNE5WXn!s}A7 z1e0wC33eS8H2!*iLLsLT>;^%;Daeg06YLGPxdfBLnhACj_9U3s31yZ{u(v7u1iM+j zsuJvQ>Z=p%7W6E^%-DM8Hs{7uNF><*5)MK+s7kP`g}K|k12Z-UcRB~^6HBmn60ozW z3w=$@Fy@?BhGQP?5sD&Rm0+*Q6Mb~AOq%<;VtonLtvO1tPr>AynaJQXgio+$ z>I>hnf&0wvT(_yMhvr4nVqU~OVR!dx+Fde~jWp;O)X0K6*B!F{xCMLNv2Nk)4_UE` z>)T8JT32`R-NmhIb{F54E9#zGQ|&Q0*5d{|a9TbGR!qCo44ArNeM}edOn(HEugoEX zpAequf@0eIe9Uw~F_jkg7OppA(2N31k)dqn$26|*fT`Dun9c=OOc!!YU9mo5^rp3yZ0=SOazU`O&B6^a^D&Kc;bg2TZ+Q#B>p0#dI;p)D`Pv zx`b!C9GHBt9vLi;@JyE!(^c6JW$&V5DlKkjp--pvR-aDm9m-~YOyl|vn0md4=?cJ# z=~9lVE7r$!8PBvQn8jcXWY7!YnJz1)1vW%X7Z+1$asIrXofPjb8OmmUOyl|vn0md4 zX>VY~bUDY=73*WVf@iuen0$R58LWr!Oji`ser$-CE+MAU;!^&4I+tkLT{4u-{Fuh| z9WeEJ5z_!zFmaU*dn@%Mtq0JYJw{;7#B8|ji>!TyN6g~`>Wic+kg5pF99MM z%C$mi@f>2~c%^Ce7|xL0O;>eSm#2;5HZPm2&9S@w^4YC9(U*mB-1ls*IdHtPUei6g zj@Q(-7e@|Lc0E1>O8>I}{IAy#HDe7mV;dcP6jkK{=I3tc6X!p=Az7i|X!Szn(aP(` zL8@k|16z-Mx^>%jaEu-0$EE-(Ki0%KcZ^Tt%Hm*-TyArHdD06gn*{C-b}`r$8T=mM z^Q5o*ZaiCQW z^ZXN-#b7UFun)rX{6!W|X+f{dQx@~%8P|8f)9Xb%{|u~n793AktdD13&vQR8`JNs! z*dO6}{!%veKnEu)^b;bIaZs3`o0A?{b4jKFd;hFXm(-IpZrYni5 zw5sM@vY8*#xV{6XUN2&LBCulG-!XN?`j~FynT`XKr?8O0c!X!Vv6!C8hKT9PVk)hw zIhSna$26|*fT`Dun4SWxm~P^jx?+7yH}y=<1Cw{5BZKo1o@tAiPGUpEbQLj`R@IzK zHuGZ|*LT3w>qSg209H&lb4*>aKBilErc=S>iF{-*4dIz?DW+GjA!53!m`bZ^&Lx}q zF^%gxVCwZErqh8H)2$p+SFDfeK+p6lFpI%VWNE~Pz z@i&7mw{|c=m}ygvnb~u$Z3H)r!MJd}Y&`AT?WPrt?YC$SbJ<#x0g(*lIx*+cI9_R5 zJ%%%6+nj4#c{=Pv-{zjV+8n#fm~%bKjW*_*1IP8h(wysa=3EgH+Abj#h5Y<#nU{xCU3sk0Q~$1I-Gs+e=hVtzd1`VM${y@=;?z>4Qij;AY@ zdFFaAZS!k-`m(q6c{Uxu)U)Z`)yj7^t7xZ)G-*pr*fqGYEbU|PDnFgRIvbQm_G^y-dx`@^G5MN? zPDH$qMSO9v!!;05#HZ$ZGk|qM`O*9N)AQ&x=vf?cc0nantu7#@JmkJ+6gB&;@sRt< zd0rN+1hrVL%pYMdL=>y(%FdpYb37?+arU+}oNm*&%S$3GcY19|?hFnER(?`?ElTMp zrI%LX#?2s65>HB-MO7WUs-BeYEijVEe(QZwdjDIsueM$0$E2k{(3o`1hj~JP-Q^mq zPDMME3198eK0e!ClyLPb_23Zf1VG<(RaN^@I|YX9C!5C2~^j5D#ZGlmV0n?jsuM9a0nisKA7 zq*<}SaB&gFCD3vfu4R!OXADiaQsMfU_7t8(FogXZ{`)IP=Ti=aGp_WmV)$Mho&yyg zh3{TeT=-!7guU?Ks$tYTGi=*ARs)!#VI$-VvRC|mkNFVyeAnFoC=fGUAgtJ6Ag=O( zSkVHp0x~Glnq1MiTG6oNkx4mu?y`P!$@2^~liJ758upyyNWu`E58~(ySMUZ)Nr8CY zDG>;i<_v2B=_4Y1kd)N6I9XmJS%g{zt!ygik#AL$N527F;k(9#&x#F(?;an%&%iDQ z>wTOva`!57ze2mPM$H{X%W?Nf@7K~>eZG2+NN;`gLMhv-wb1p)0{tc1njXDqGuG9b zdL(v5d3aQo8)RB8SY;W;kX0Cu31bmqC;+^&Upv5Y#jN7am2TV{-+%+ z0VwMK$7wFZt`#%-Ki2^}8g@789*rZreFFP~5bdRjtq{Aim2}vZa;_a|4`67R&~30TRB7tsp>VXiGiq75BL=q|!WMC`-`MX!InR1C&dPZXsu874Jf+?75gv+& zC|wMtTxy{EGf!p@kvY6f z<|6ga?pFUhw$x;39W-e zj{KP3NG%<8<nzqn>43G*^dU){i1o>s zi}j9`v^RN>#7>CG}jeB8Su&$MfSh}vAtv+eH+;%wq>2!o$Tc@X^cp6Gd z!o3|uD>g{+PoCnrU>Ae4k-=GrTom`gcoG~g#K6&zX>A()(DnN3^Y^wYOo)x;ykleO zo3UBTwMrgIfA{1gRJny~?W?&I47w z|7X|xR&22M|LS{xI@rZvDl)i4;!;Ge6xbI8cZiiq<{{Q)hG1)Vt~)Zxf94q7oSaa3 zM~uvxP+f+R!tys47ArOwmi>HKW`bP|+L6H(60;Dw!m_`@qM&kaq*>$Lnl%bS^f-B) z+8PQ~0iiUzH59T`$yoH+HnY`FAbnND_bN2S_W;M&iVgBT(DS_k>|$^oGPqXaMno>Y z!^C$tv_qMw^{JVbO9R1nlm_yjnFigHY2Y12VYvw-g{9Sn#flAvWw;N^?O+#!+mOMn z5_ceSg=K`o@-W(=OvaV&QCRM6)q2N0WW{}C#U$M$`Y5&Z{G1@s^nP%CBxv@@sChxvd$33m7% zqP_HhLh_tuw@*;c71eWqpm=@hvnrir0fmfv4FR+|0&Yd2p;EcN^MTGl)A7R8s|VPsZ(A0~7fX$jjq!$WXHHJ7i-cEF$Cpx!MtLU774bib; zgVFg1P%BDMTFu!cN)758WQ@JKPn@&<3)qb@g%BI^X zDqd|aURG={UMKr_JtxL@;UJk!&nlZ{voTjTjZ)<9LECVuvPs)5n@ZBM-jTN`zO}Mx zG|HhGAiYo+iEQ%QqinjHT196JHe{0(8;s5=Kv_2ZN71<#2koV&G`c*UcWgRU1Z1di z_?61^3FduK+fQ?Cw_<~BKi#+eRki*8a@(KD+x9cmb{S^2y?lb%k;>x!1oMH2<(ZD9 z6&qxEzGwLe*u~&sWbhCoSHfO^alyJ)CSvKj)}3HJt#Qp30i2GoYwJWOn2(~QB)rg3 zv|@u4CwPj_fL#opLIzJFa#5U!vChSw$H38$X>A(*1XKF)3FZs2v7C2oEdBBcriW59 ze2qK7d>K7P&+HS-|HPGcZubgBPsE?DdNg-}`C@F4ae`T{bSIcEm6g*cnB~f<6HGN? zekYj!re3{&k?VacHrV?Y``&*8>|*d=Wbm5An}}Q~Fd2lx+i1J~mvQYbw3lQS2BH(n z6_;nVPt5VFoO85K*t!z0f8w%B@;Z~I3RC3kJz2}4u0ffa4SaoU8&JyuKhC)?W zQu?qp6tYy=qtIvD^L}y~S4Dh3MN@n)b$qSZAm7V8-><!wi6u}zHXtTYcgaki4_~{lB;}|*jeMRaS+XVndcXSfO4*s zy&9NM*2=BazABjVzUtJXeU&xN`&&1lKDDp96D8PQlf)(xI-6V{3q|5u7YQpi7>VnA zBhDCdnXt=#S@ZHA9;m@ov15^M`RvwWUSaAnFl?Ytwm;JnT&PiR+NJgh+JLy5Lm7& zWg>3ru9Sxi)*EMarALXn@*qsrl@B}iR&0>{BcA;ru)~89QCI$?L>@>v7x5>6G3!cZ zg_Yj}RVd?1;}nZihevlPEJjujv4O|kp%C@?Q%Rht&kw;|teh*-BVE67FoEfCDG79&lNdn_o~)U!jy{hVU24i($<4y*`uwde+q6QcOM?c!s_ z2IKRNkIxXr=O5+xoSZj4?bXP(jTj8Q2sqt9bTGO5i-9g<|^wIfEOBSv31 zMpkT)(GQ-{cw_WWWH1(ytD}AtE!z!cqC{k5WjA#9Cw8-=zjh_3BkbBb(Q5W7C}}|b z$x*aogB0g_if4me49-LbXCQJ>{2Aj(a5x_WM?iv1H_pR7q?{@>yE~rffn`gn1!DNYPh+HYq41$|K$Ru;;b(ta9 z+MVmB$?~5$VdQqH^4Xnt6z%uZF;ZB%^TXI|#RkLD!-u6E>|!tj8C))LB_dZ?7Eo9e zRMuT|3cH$4VFe+2tgijg8VXebp)_%LC}gRUvFNjH>~McJ>#HKZGtm^^1sz{2Hpq7& z&-Xg8c?b^~TrF`uA{XCrK=`d9qQSJY1{A zghsy0p;04hgvM7zp}7G~g=P^K8Y?y!nnitRZU>uNrjWs{5_ceSg=R5@=03DTnTRXL zfhogv!35fEJrxSw+VUW^ghIDW*-=AY=Ci|?j+#?jCv~G#*+uzAsqa`X@eL!4G^yoI zP!-0-T^OyH5ysA}<}L5T_!!vXmx%V#GzH>jt>!&Sxr11CYg<8$TE@Ovv4v}&wiwp9 z(k;=+i9L2CIM%(j3cgTJ$)+&cWXs;8;-`_mMp0vi{l={tsHSDD^>v2uiXhv_`UF10 zZx9jTJ4E<#${iA3Nh~V}Yl~r35-xlIoV!Tgk8HAAPYcU@j$irVZaM|}KHK?plinb= z^G#`87Zoy&ZR~dUwCa27mCsMusGGR$EWkkVvfr3gm&9vjAFroqa`-D8Me%w{@p>{( zyjDrYOIr*pN4y3pUh>1;B#PIIalH2M@!Gqy@!BVfm;J`1YR0QG%de~Xcs;Fn{ka^k z%krM+tqwxrMQ^PL!FtAU-KKX7<5EGHq&qzsr>C_3HKvY|yWjIFQYpUQb6;1Vabs1v zrhH@7)K(r0E?vq{^A|;kp=J$!NGvO63^kpJ%$hzj{}#9X%8{9_OnQcm!Qa@}!S3hw zyPk^C0cab}xY8TLxgqb0;anA(I^4F~EmXavW&I#;Q6%XH4t8*CTboGghPP&}ZMVGnKWSM%$Xf?_(--AX4Y0fsMj~(g_9$--qE>nHOMb{3D>fLNUjt=% z^NON#2oBmy?HVzz%sbw!F9I@DINVa=s8agYyF;V4Z{XT)#Rl8n&$sEC>EW|y?c34DqLr2z%4U*l+lYL!e4=VzY~mPLu|Wm{Jp)Z^ioyHHTsz$$wOiUWPfh%(PqNgbS=$y`Fu84k zXqypo_e5y6==$c!h}kxdnH3vkR`kq{2b=HXA%kNOx#;}{?Ovp4iD?7lV_K!HE*15V_b57Q4}CI}S3= zrAuOGp}h>hN95wWYX;xK0ea?KU{UhDV>3NXhxaEOHeH@TZSu?t;yfTH z-{sJ#5j8^NtD?|cfTlvTn+uH<8w}0vJ~UInE(RAPgGmyXAaaG~_X^E4wA~IX0Xs6_Ex2eOgrarY(y0Z}2{waw~By_5F6&8xbKKu{~D>fL3 zKLcfvu+xd_aFC3|HI#Ej;xB5gtSu7S*^|SQV9JqjYRO34Kz;2<{56RkMdEra6p4NL zAre;1h(u?Wiw*?JB5@1Y;lB{=rT2A!|6Dn7Gv(kWL&&V9aF8tu zx8Wmv9MN9-P*IqpC_F~Fg8;a*_7UPDZRLZ(j4OQ=pK^Si3_z?#*XoS>39Qt$BOOO8 zW^`?5NFC%!-41s6BqAd9QQisp!QvxBPeXl^K6831YWpFs?N)5C?T7ld->J4gU2glw zdE5SX5DIoGB5O}T?}z$Y9m`3{Y`yHF?UxM3L(GHMsUXQImWKImeOB*KX90iF{uvyq zFAsC^uwsMpIM&DG1+a_3bI9OXM6R?vPNC4u-!VQ~haXFH!HBg>bjGeXm|Bg{Tw)X> z^~=;I$0wUuIYYUwZTM1_;gEu*VZxF$bf*v_)dj9P(W1)gp3$ui@{f^r7{%eMEUEA>6EW;r#Hs4UEK0d?6#)=Kb<}4qZ zw?3nf=i(q*;k!Z)`MBjcarizSvV<3?Jc|i1yN{qI{YtuR*zEwsgW|U_xo@IU0lE)t~Vwe8Gq$ zX|F~<^1NS5Pps6BQyfPtX7pocM&V05sU^S;dm|!Jr;AiC%DG5Q6)9=!tu_YZNomS; zp-A~Iiq#;cR}-y;l}Jr}AeD>HrG`+j=jvte*=Uk^f%=>$ z?A?^>86KP)GT@gYQLy*CCDk2y)Mt408B*W0uhjdRkYR9kTH?t(ouai1WgVf|!|_R!m?LjMa46-+ z2&6>q}4p>iUeGM~e^EHA`wRz2|HeZXDwb=ly&DXI>J=v|YC$E=gb6+FdV0zyM zl%3M{qt(S=ePr-!M6S#ZF)rv$3NC#oattZhfF>BFxf{@!aeTmf)@g3WaewPZ)H36U zpE~BK`eCaxlO)JQVh=oVJxad?+f z?<}Jopj2vZ+Fddf8!7KDF=W%M{n@kLiOO@&5!L`W?;M4y=<~(Y==(a zTuULn^{;J8oI{DYWTe8j*b$ek97@C`!*H7{!$e%vAbTO9e-EK&ai3T;_qAe1UUg>5 z^$<|D+wXw0@DGUg(p2rPSL#r`J>`xwEH+Ebwq#i~+iLkE+thCRjg1D%VWZQie|Z{1 z@Dc8f;Ek@Lak*&hMY&@dq{kz`gwnQYlwj!B8q+AR#*9PLs6U~s413gZv|>izbY>d$ zm?yOp*x^2ih}4X{GmghWaPtjWS8^dZmGcdEX!&!*;|a&ZiVgC3*7Mj8>|(GlGWaVZ zSC>2|3RQ;|>tw-*k?Z8>&~mvO*za#WklOTMWrlKH+wg!a!{}sof9ll7&%4-IvBB89 z=n!Av$EIv5@7h!tiKk*P92vACaz*MTOl=@L6pPdVZ`1`?oBAQt)`*!JQQPp~EW^Y= zrUq3EWCyW9fqa=C1_Uc+1hO*&*=rU!LU#n%;aEg_>1rj%tr`IiryLxH=pd5a+WxDS z>B5AENDOKMs2bEN)N~4Y+lWxkwA#7;^uh<+FsC(wmVdHMRP8r58mKllI`+NcnIDCZ za6F>DbiJ70Am-yJcR<=*jCd26P}(;331(a=tTFa^wP@@+1!Z;TTaKd@GrF@gW8d4J z)G=U(ry(LzH;UA$lyi~d3V2f}Z7t0hj3=eDsM|S(jJqgSgOrwWPRB~5-f^U?*dVF* zJgMWr4$nYDq;ASPpuZ1-8_;F#xx^<|l>>UgE`}r(9cfa7%OY-Gbr1ulpSGSEG5)|Y zwqk>fS*~)^i}S$d&IV*~HX>K&X&tS4=(ijfjJUfTkB0sm{Lp_PwdrBZ4CT7E;RRWS zLkhZt;(~RjW`vfIi58HMwBRdN3vaX*u)9xmKx7f;6JOfHBHs;nhKUwr7*5DC^xbnl zl}bqcFp^j?qkB3tXny0nXELDSwTSl8-3sd?+RHAc985xV&|BTwzE#UKXnKgmpecar zK{KhQLG#fOp`2-nnMIwSbeAzJjxE=*O;qhS#vZ6PHacj2@0nkMkMIUWd+B~Le?ZKy zr`!Q)H)#F{vLDzy=!|!uIWD$er*b#cdZuAIem}o(U;k{Xge$c#&N+sl?u6wMQ(LJ3RG?((- z^Dx-q+lcnkGYadg+RGlI96X5VxVK_kH(Fj+dTm4~OFbx;d`E|OA+=^kOD<-}OVyy- z@;|mI1?@M+9;n7OI$AE{DL;ab@LfcE=~+>JPL$uF+%a1^VOd~8Y16^O4Q5>FztLzp zy7c;pBx$dvfrZ)FdswL-mvjAS#f*OJ%xJm1C-oTE;RlF_)bk?sKIL4bRuCy^+aW+O zo>cQXqgmHq|1$q(?7^`bq;v@Q5M_~C(UG!ZgQR+TQZIrX&Ot<^UdlUK_5z`>lddz$ z+H+}w%j@cK-f`jf>n06?ZZ4Wsbfi(NoQp;)qaQ_#dppKfY>@H)dB&fET?{@&2A?2u zbzWbQ9S>Q@=}nDQmg9mEcbDUgRTG%tJ*Tls@6Gv&T1HC}Q)87)@Fos-hH_oo@XIX2 zA=TrxC1j!nBxE#RKkr7%`&++pKvhfUW|(L}hT+#)hJLjCf=VUiFJ1RovBBAe$k->L}T-~#tx@Ruhwyx3iCF>ezTW8qpt~$l_41+H(?v395>Z>@m>g}(ap{X6` zw=U(Z*kH=-;8U*q*Gjo=$e>B02O?L>4OYt8v{5F!+BBLra_`N1%!S`qxGj+cThZyd zZW<@j!qg@ci8yfGGfLKzxdER%YiX`2M5u~ z*Nd98zfCz;eEtfIS&K+2F$7ai3^|F}Pg2f*%9d1O^s~JIw)-ZriNp)+6z^i8Nc_!3 z!io(>Vm}{==M{-BaFC3|XOweAVt=(())omRTyhr?OgR!xE!ssa5M~lBO##KZKUJFSe(SR5VY9-+*c5v8!dzP9 zZpQMh&YpDGGYj1%ms%|T@P|HaofCAu3}RI?6i)4T?`%tL$MNxP%ZN`A0L90C zV-hvv)0q{o@jgC1@e%$O(O&vYd)ep8pWjgKAU^J*$0@*s(zazh!SKGwk!~leUdHok z1Kl#-_9$!MIu!^wTCu^=|1?jkH`w7|L`3Qfk=lWBE>fq9l(cObPcWWTdKu5FK}ySb zLr@l}GaM-^Hc0ABPpS{t;ZBH%)R!W)BjsGA&JrnU>#$)ko>ceL9n@Y8QaZ#8#Y&{k zcBHJ>AgOabsb7E{?t+L&eI-&mQ_e-|JYWh7YfqF3&n}E4gG(cI{2Vp1sclP*X8pYf z@um8EJ7?9S@845xkG}7UN^(bKkm7YuoJ`)zvko4aV1U{3J9HI{^Ib5k*kCX&@WEI| zP2B?#1>-^mV>1OqCR{QR+c6f5(F9{x1!Ebi3l?*^i6TPG8U7WpuUtfK z9sWmZi3r<>#i)^b&6;}|o8lI~jBRhH6(0cNxIISPd?Sb(?pyXmS8@-~G{h5of}dbP#AeX&m6rK<1$Qahpbuhi0o?7(!Mn^Wq3=ULG- zwwui<=`p^0oaEw01KXZh#*-_zjJLaP(;ZUy)qGpFUslUBB`43+hy^!hFiLuL5yUGW zp-OId9l`dA!;RG6Vp445>&({93XAOat3k>3N7o>H{4Y`bd6gSlSrfC)99X9TWz*Mn z0SgaAL`nH=-lUwao^Qp_J%AwypO=mt{h9Ruh87DGpBdJ@)0YZrq@e66j3iW?v$fV8 ztDr6y)FFbhw|FL@;=Lu~P0^ve>s6ul=6#)2H21bYlS`0l>I~uk9pz9?DlD4%*fwm< zGFA{;+nKzh-o5TdCB3nJfvT2YA>_l7$f5kmg(1kMM|E@BWpp@drt&PWFOHeSf0QY$ zEv>l{i|9pJ%{}zza`vXC1r`m}m-1%iZq=Tyl&2%Sr<*B-YOD+lrg_o0EY$rL=pL$F z23W;(ri=yUxpj|T7Bvt{q2_R0a>_{xRM`0kmubaRQZ%A!?f8_4Vg zxs|PZh=~r1UCMU99@RnVFRK$}mGseO8RT)|#tM{pMjvb2NTw%YYVBO9nY0m*s?DNp zNA?NJoh7T=x`|BN zXCpDbzjd@T&RP}d+I(!RDLAGi>#u>AoPV@L07|qk-ynQ7~9k0ZyL=o#~sB~`< zw}YS-o;h<4Jy|AK&}=yh2<_P|M1wusiVg1BTL5LpF`GaC69>_8jQMjh7)v?VKEAd3 zXFS^O2qYYTFq`iYs4`my3guLx*uf`>GT(!b9LN2Vh-mc~JV^Mbqa4af)%arD*aO|c z$15o7{}vy3_NyLAwh`hPLiBBj|A_Oud2LJWxumxKaEFen{N7GDXMt1R%Y-UYwx{~N z%*_>&ftlZ2fzO#Tz6dgPIQoqo>K(eF`dF(wWUPC8u3kVDzdiR{YT1|c7F1x|sN-W3 zjXI$ss$h1H|B`O=qRpWgsm8__8}gG~V(%6&J1D>STQ9rv%_8;nva4|*DfNF#yGea3 zHkkT@fwI(}0Cq9B02!Q*$d&Lz6u+w5NP1!%3MM+?VvU7~um*t7b;70FNG4HBI4du> z70ghsYa3paWth5+q&Hg07O)^f3$(2Lg<7ETZL$Mmd}E~HyRS$_Ff&ZFAj9zDEW;tI zS3iPj%NL0tuzV4n4SeaEFroDlhr}rh&i(AZV1|h%WEf7#GW2({Or%m7vZKooD>j%R zLxBQuCrcFmP?_gVF2hqXn2rplA#&x*&X^WvpiL*d+UH9CNZr?BSs>KfS!bTxE>}HuyHaN- z!De75!Mj%k=V}yFH@8@VCW4cZpjTl>aI!Kx5u6OeSy_gO;HW`W!TEhBgL5MgJ~(^K zCpdfh;Fy60=Z|c%q`4l9)H;CeHHo-n>^0XpdRe<$A}$$**Jc?e;-Uss-1OtScrUSN z?rX&ccfo^zvO)SCoN>7q8N4O&E+W^ScQ6QU>L`=!siQ?vu+bir5sW$1l3i6%w6shZ zW@Oig&af&it8d*9vG}s9J0K)rGma$hJJ`x2i5+7;$g1%(N*{x0M)@AP+9?llJ!ZuQ zd+hJN$36qQ7<_^ZK9=|#k*miJQ;(^?IdEupzo?dx1Q7=)6sr1)1IW0Mp^&9Y|5ROj zimM{NU!W@Afo^KP+#1w;{@es_F=temg-=i}4x?48{CeqB!GH%`IjsqxH z-MS&)<sn8tlLSw}SLsRmhS&cS@eQ^+7o%=*57wb^Y6`#?-n6-$c z5<@WM#E_GiJvS`O8PT6Dsl?#c4bHD%J0^)uBtGUe>z7z45@TH?tk_^A{^=vJh9a>s z4w8}BkaDg_j8ki6ZIMvIC3g|Qlq2EPqFuxyu{HIzBQZXS9YtajEEI`TTqLZR5sA)R z(LTdRVjHl-0}<_|({u^rVqLKvL^&9U=pY>3+Rg;WF8Os_Bydl#!vF zF{0aBg+}lI+9h189>z8uyX-e^-axgn(Iw*vp7~IGgu@Z-rE|pmTrqE@+yQBKEp{R> zp|tHvkpGVliCIB@E}A)>O7GeNjVp( zi-9TF1M7nDgtT-pRT1Ky4kS8<&^A5p9|~4Qk~u!CG7-6-(?(wfW2#yXMpKL@JH}RQ zknt4HcvrB)zat{X=Zo>7lyfn@1ej3T4B#UTrjj)ekz5)jWvm9N$y{SQ3@eeE>PT6! zK~mE^solX2k3dAEE)c21Dd!?J9hgElhB$hQnUY-qDp+O+QUvKtGJ|TJlrGPK-A+o6 zrZ(A`?xfWAlY}Ar35GhKUQUKOpFYYNR?dP#wO0)QGM=xIAH3Ktt|F9FwH%42LV2kR zr4<_t<>fwlZttXllEev`8($n+br z(nYuxU63cVp6JZuh!AAnd}O_oFwE$ke>lT6VzWPQ_j_2SE|44vb;>@ zb6MWfLT;j-A}#1CU6x--J*B%5#!#D#1rf`*EdNiZm3>*>H-fn7vU~|$#cigGn-v?3 z+bkcqy}%B~A)>fVByPDvc9lYA&z;HI4}bAWZ{-b@g`ITMYf>>jI`DEF_b}HC4i0`f zXne%@YRA}$4KlvTGd=_CVsIKVI2DnL?9C!uwP0uioM56<$k>I>rj}Hw+=U8eDA%?Oq zoGe4%J!ev>guKOdj};s2p4)%|@mA|4{!p3Kx(RqJ%r_e5?=oh5!z&7;t(Q4g9 z)f2=!sk7BOGq44zyVzuLnTC$Nwlk%MC@9B&}e z@+P`UpXXiRt=M4TU+{td0PJG$9x`}W;zLBPz`v-#tJ@gj6zO${bSQ{8K%r0-at66e zM}|U{Dq%*SZI_Sqe0^2KcMh83`;y~p#RmDl?D@_GyBPe441SRK8Igqj|PeBKAftVJZ17=kG$hMdIgnT?-1au8cmiNU%Odjo7gNMaL-GubIN!a|Yw z&_%+E4Mt*)kHn6O#CAAHMq(SvxgznAS}SXdgc2^fiwLG138xnAA{L2VsjnT0kCWI@ zB#Kxl5}&w8STQ3Komp4<94HV!5Ah{w(Kb$UA3on9p{-0788GIa7=f#DuR0V6)qa%&m|JGV<eF}0!Dn6=gxau{-}s^2(;hWWT2vwwXW5f$bVyzCf0w!M|cLJy);Y5wAqUF zpD73XNc;)WLDYG#l)6#xmGU^{=!OEQUe-&hMNjg`S@n}VNj1fYclN1a)$i;(lWmHU z{l-loO0zOo|2h+;?|hW@#YcD+B8t*oiqc;xcNm-Rqu3Niqs}iPVtyPxr2DP)!_wz38ihT!-Ca7Nl(aQA8jL69ZZ1o{aL21bN(;b~u@b3894RX{NNQ0} z>IksIOAryM8$@af21N?!$I zeJ5-xnqs`TV{F9+886`(9|d+e9T73U5yrX5E-A9NYnYOCifrYVoCb22TvN-X5s#%D z4=XmvV`#M)HWX} zx8riK;YpC>cDMS+_KCyO3&n+*&RM)jteN(TYPh}?%I>0D7YFHx_=N7r9mOZgu5%Xb z7&Pw=yCe4v_Ni^8Bs4sQ_BN+ChZk&r_KiWE{TWQD_e0&_u8rX^V`{u6zwG50qG7u_;I&g>XEDXwoAPul6t*s#`d{HtJvq<=QR3* zI3#h0r*67js7KL%V zLz8ac?$LX|hXRaz^@)5%A8PTw*7m+k*L?jSo2rJ`NdS>A^B-a_c1n4M*d&GI5S!dS z{~`7w=PcfvHJ0^N!xLlKZ!5;Kdz=N?oIRG^>*{q2x$Xt;)=$#LrgBZi*c1)s_6({# z#e?}&hm<*(tKIBJm4msbO~Wz<^Gjkl4EUKdwGLL>Ub@Em>x0j!K@gR zkii_sRL%}0Wg{CrXDfyXPpGzSiqlSFBBCN%~I0H?D0}FHYBOwUx9oZmj*i>Zban6;0DW@SiVf!MW0zzIGr&`mxYs0F$? ztLZ0eK~;a5VWI^YhVxttDh+w^r1~}en$0Adz)2lV&};fPv?h>k&8`Vm*=A>hi6&$i zcFQvK*Rp@2eaet6U4~e(!3-JdGh{;?b4ddkY#^}_B3GL1tTeH`RVLYcs}UD$)cYC4 zTc{;%sv>5cmN3ldv`w91Wv8XySSVugr3IIb3D}G@-o(LHrm-dXfUFw7Px}}|`}D@> zs>gP5J!ZuQd+c|<$F>5y7;J$IHka5Mk*mjcRgbB^$yyDlJCe1bAmRXpLRDWeUOhH4 z6tYz5pQ?r1xGLg15KZyj&GEHjgM5GQ`3?n}7t|nwArdysX z@^{oix$3re`7Vb>ji?bCUloOB7c>=`JzZ$5*kEY(^Pw535$PBlL`&OO>%8OgS;+BxXNJi}$10l1hwzwyY1^1CrQ8;wlbw$6}#K9Oxop#RelW%tzv2 zMPdvNl94D;&J~GPwN};^2_;-|7ZFT35>74JMJy6$QeQg~!;{!iB*tQ)NQ`iiuwq6e zR+-v1v{&2DO+))HvCpy#ufA~iUo6yiWs?r=OYXgF_a(MpylJVS&HLZlLr{nKNSp_D z7$VwBPiX@6x^m)N%E37jXCpd@2`>Qz%r267oWw;k0aRZkOR7Z|$>gm1B3V*R7s>cW ziyBt_jh5TlrkRla##9E1Pu8Wx&Rj1z)<p7^j%tl%LbvzJov|>ircZSpnp44=(!@Cg?sTW1+F3Pz`{X?Xr zZ5KfV<4L(wwd6$*uLda&z%BQnEK(;rQdVq`)JdMyWnhQ*AtF*QiPXK6bCGHTreGhO z7lbFIg`UTC5#;CitV!Rj4+X1}DE4N~q&Nt2($4kmsjQm$Di~AMazC14e6nL~#ReId zJmVQ)hYukl#xINUgOqbI9t}(=ZSsw;de|Q>Hy!K5*N|d0Na<5M52GwnV;m_fHc0B9 zo>V*7;UkEM)PF?kUzBr^8V5{4H#XaSZFW=03Ef0R>6-FrG+ovp_Bgh(t#=p=jAh>F^(1+B^(stb=f9~BE)M5riFEMG=;1o6M4Jz0T6ftC_K86U@F*TOmeHA$aM9ZUSDrZgwn(@qv4d%>gK-t;rOt8a`5mC;(qMZ4N za;}^?U1V+9T_*EccDK}&8)XB5B{ie?{89a)W%tjhCE4OWMk{04{R^iRhuos-m)(6M zh?|z(KS5V#Ha>XS>)~vBB6}1QgMpXd&VcmARwndps3`Z;`<_h+ILM zglYBqh)pL16QvN-2~tSwBfnP)=~k_us3nCePb>>&DA%fKd&c42EUf*kI0oY zH)3C~skuz}9zZlT=YaIq$fmYk2vEVoAlN7uGQu!`S|w3M7z);f3B!yo+{77H^?mit z+#(jA>A2iXz-A=%Mp1hzzFK7IzHwHKZf<^(o4I`q7z<(FvLU*P_Duwd{>#ldA{YBRv9D(D zR#F6}5HRRxtfcHrEdi)nNs;ezpwx&Of$~*RpoXF;TC-^lfwE$QfqKLOLuf8$2nmnE zL3Gyqtfm@AP|g*fM}aYG5vdMTD424Z$Vtqene3Az+t`vy6K?b-S77^C5}Qc;n;qt8 zEEI{yT_mj7U?iUKk(i=LlyH!Y#L1L%MdC@dR@N2?C0ufc5llG}PA%GDEE1{ zC9$JOjK)Hdc-lq6iVa5MSs#gWz%B-7A%im|&PC)3!gCg{=1y6M%*u~&NWN?ARMTlHf zUldgZif$IS{dFLVKY=ls3i^|y4gskA1V$)lToJ5zPa=_!`#2Jz+96;-s=t}ztD@*k zLQ~Os$wkMC4Myi>ADv6VE(X((!BmOM5V@lBA4O*oJy$9dKKiAj{yCNi?{W}1PzMpg z>OpF{o>wRfKTZqQ9tz`lOQSc2DrPO0qa&)XII31`km{?R>P)bUK|3TA#BG=oA-;+48Y<|+tUF9XIjc?tA|dy2Bto@Az<_{Gtls5t>Z0STqUc7~Fsiu9vtOkt;fHWJD(vPTce5o#r++*V<|1wK`VpG-^kU==iEA zI=7&y=)CEoW5oue^Old!U0@f3JCVU15_cnVMd$6T=m;W?PAJrJHVC-}UtbmRy$4P4 z{h#A&#RmDl$PVVD$~;W`BD%w4zlvI|u9w%0u2(w*j2Y+*lRQr!MaNe~(Rmq7MdxD|9V<2%olksp-U7QA zynzf}mv|eID>|Qc7@bh4anFZBuEEz=MSTBF1e9PJJ8KAYYL9R2hLG7p!9bXki=VLS#oiANs+fve8K7-98&$e;i2&3g{=TTgW^*gQ#%41SRK8Ig6LTvkLbso5CxX0YB!b!@ zVDblaV)c=R1&fZailQ?QO-1K>7ac1$7@Z${bQYrF#b5zs&_iNjM6T%km=zsC#L)?b z8uxrCl>B!1y8h6Qg7Rm@seLq}AbL1%HviVafj z?y2?yyBMsA4Azk7jmSl{ho~x03=86Rh=v8>#N5h>ur`}(C4#(WB!b!@V9Y=#R-f2O zm7?RTqUfxJrlPZei;fi=jLw2SI==+F82leHSVv-AM6T#8locI8#L)?b8uxrC|)S@3^tY60+A~^ODH-^aC3Gj6WwFauu%C>VJO)0 zIhK7ETTaIDjb@ZHK1;tfwJwb89r4TTAJO2GFwFSy^;XWX@@k(hf9R_lzJY|3CjnZv zL|5Tl(uLEC4Tf_mAI|N-E(Y5mgFzBSM6Pfyt#GO{7<%-$!rv>_bGD~~xMZ&9$XRuI zv7RIM3N(S_W7ukkfB^xWZSmJUh$8pQx|>ltPy=*6-9p+G!^~jUG%NkVDwk;(f=dZ z#b8flu!qE6h+NTMv1arIRy+ECp*Cmq6F?c!|C0l%jDGnmJ^Q$7c7C#;>MK2B%HFX% z|8=Jk-=kAE{n=Smb&~>8qnmtH)J=P%scu@yb(0kv?534{Hyr?WG1w0o{7vFOM6PaH zrDit?r*=1upf+bWC4e%zsnr2hc2g)Ol{?9Br&kqy@vISjUlm1v7@CUysxJCgY%uz( z`RM;0>|$^TGB{Y`Fhs8CuU<3y!l@noqp8gq{RB`(^p9{rmC-NnBuBdH%$-DZ(>uvg z&Z4TD6p$L-ZbyH7ulfA4@Cc2-I zF{9S)jH6JYZ&=zxsq%Klg3V^+yY_76WM^L4Bkq33g3W0X<{5LEHfNrm)9C$tzV*af z@8>%SUB$YWi?tOSjCF4x>wkh>48|aX(GuejxnjLm9BY|m#yS+NZW3i|<}Og-$76-2 zZ=&jrBdX)k5!F79sudfgy0)i!2H3m^78#r>aV8=c)nACJ0>!*SuOd85XO6;&xs~_C zv)N2mW$uacTCpdFYJxDasD5XmuZjY57Mco7!3D;O4F+Z%AD9clE(Yf#gYzUNAaVuf z|FQxjh&V8zP~%PygD<`!_*sG`|f|Vnz8(R~G8Dr}#XP6pW^_H~IH;{1Z zf#I3xDxAM|;k06d;auN`^Lnt0!L`WX8i^Yaxx%?Y98Q^JhO=;t&TE9tZR$Efy3x*S z^Z@ORc3#5+v^P^r0IMDcJ*vv^hWLc&27f|ylQXQ0d?*g_uI!)H^bL%{c_TUsXFnHC zD>fL;{yv+=0jy&J7h#bq3?Np4B`;2$Ce-z`(MAqJRl8fC1K= zm6oJ}ii(LKqJS9?41g%2r~JR)S5+NmdUktu{QdcSsM)G|`Mr8oU0vOc=4`{3T>ZnA zB9JC9(jV$HUD`170ZGFgrwk+2JPmWaG0bAn#$!AvV=uB;f+Cb*P6#p#NjQeFN!4+> zP0CsHHCk1Dve#aQ38!?&0DHlhe+&Q3HZoq=r5)8m7g%}Ix*LpFcMlg+Br1Xmp05MK+-U$E5k@NPs5x6QlMBS_Q4;l!%W|SQ(5dAl(DZ_Y(){u zOlJZ=!%QUMn8_wpCj@L#&Z52P(%NqWBxOAdED#n_%~Sioi?+~rCuo<&en1)9!Qv+r zq4X^e(w8J0ecjytGn%u71zG#Uf+A!wjOo&b*#$@%ra~D;s(BjbN@JM)chfLUQC9G2 za&Wnd8Xt%TK2Tmzf`Uify936H8x2F{Cr zTE-71hH$&u%WbdyHMbsU?c5+Cgrfp1FHh@K-w+0}QO4$?2o*FoP-no~%Ya}t`%K;+wX@Ib zs3ANiR$`TiKdV!dDvM{A?dnrfRkpJa9%1xCbV9QJ1j^e;S&__`4G; zZ}}L!=`x_a0SsJ->?FYNxWETy0K1)?PCGRcDItGHh+@_}-|;0x zC;hpTS3#Ar^a8wxSdwaByR+eymfD->NhW)i?}bHb9>yE z&W)+GDLQFjCLB}g`P>S{!0E-ctvabsKwC%ED)r|8&o1?+N-B(yV5vV-{YL7&U8&uk zP*PJ2uhfT^jya$>k{FL>M!-`ln@Ba!2zc5=zy{DRi+zbQR0KRzcLZz(t?ahkgx=aB z;49T{Y}v%MrQ74PB}EU40E*$YWgQXl4ZyQYy+uitH3Gg?{YL6Px>CD6p`@l5Ua55i zY(z67;8_&`Qq400o;MM&6|~D@-=U0cLlG(r<}wVv2eeEhHj(LrjM>5S#$V3XHqmwf z*d{LDwduSgIMS>=Qg{=8ha^fg6ZZv?*CsYv1o(*f52#5d1He2(T>6@7wE1Y2_o@o0 z`bZQ3nUZYk%bCv^)^M;SBM}lgWl@~Z;P1pnngPYy2SADKWDKT@NWL&C)jS>YB1lP6 z-UZrav7b=JcCz>xMJTVlM8*CGXyp|mhw;kGMEe!MHgSDkX(C=p>+pJIu?THbSfr}> zZ}>I-SYpVEKlao9cm=KE4*?Z_yhcFr2Q>}$2gURG!+>gk{6fa?$5N6nj7l}YAAbtJ z@EUP;!7whkMqshUcVpW}OlTOXNj=#U!GgD9m&IO1V<@+*!h4rMM+oqJsOpVKRjD0K zY|>zq6+2evda68Offx0VUx#xk*$2JHCpcpcLQpX}1=o7VsflygIZj)(DMt zC{>W$K!x}r6oaianw`3-(k21Cv#TeTkoWY&67uez<%u?08~JsRpv{6_`D(L8Y@7T_ zl!E_Rhi-oXM>{IIP37pGRSDhxjCviqK`HAHFRs$8CUq~V+*iq~@Z~)s$@{sgkx!eD zD9(k^fB~=dI1;^>?b2WCQC;<3kMcxYbkfQ4>qrZ;OsxzuOD-1;--sEYjL3K)7}ca+ z(lX-Q4C-|o0@nN%WNboH1)F53s)^qRc%5LJ?0{iFLfyng0Oo-F4kVzXRP!5<$#EbB ziYd_zf3R-+burl0q(11OyoAHSsE1Nf4NjqDlL-B*6vW4`n^?bX#*2fxpa z9yC0l(_S1+OSdCRq=aP}HkV$@PpK%Dap&+vq=H-GY6=GR-hxn_8+UG$*v5vaSKhZn z%DW{ec^PKOdm3Uq{V&(}GtThK62O_xw8HCJgh6W@zYUeVtVDf%}#i|%@ge#@eWOE#1uA819Q zqKNow4V(BK0P&Zsk3M8mVN~KYAcf{KFN~LziM+r!vD-Uf1ipw}4X1GLd8!5lLF718 ziLwgc0&y2GrC7j35CJ_l$mAHSRI?zLYZNs_r_ek81OE}foyF{r~%!imja&QR|@nnvp z%%m2s4r)*GXX@a(M5@1^OBzhXitA7mdKR9;6;~1JIk|)c(p*9s?h=_vQn}=Cw9_T> z>u~;ET+*RX40Qs2BpD zoW{juTl8T1`x?{V!(3yK4Xc>B*7dLsA~Km`)DihnK_>8{0G1_4OZ0k|Ac818?SgtZ z8BVDzcO=4O2w4(;0W5>$Zx9*Am1;ncl#Whtcdz7dd-he?V&hWI9b# zH3*>NLS)h@N?(4tqWb4Tqo8(9d$6J@PlN>!aZ(L%P7X7Ldxu2b?xD%b zejT8LR`%;ndzO{`FX%^%OSt=1_P=^MWM#h*4K{_UPCZGpFOh8ZBvRcg%vLqyK5nrS zy@=zDSlP?GM?GlMjPPt%J+2fhd!S%tk1`FLq4hySNXb@UHqP9NCJKBv|DKDC|-Ur?9ikkK917d6kf5eh4LguAdUhYmO6Z(aB{H zPA6x@FFN^G{NhCKieJJvzg*~DHH*CpV9T1+^Lkj8#Wuh~b!0=8JItz?1US0P%==Ok zn>08Ki#b5W^(F9sd7_AZLsFDq+i)%=`+T=MoK^EbCLz}}5T%}>QqN-D8A>0ykRf7q z>QzUXjUF9J8N-Q&)B!0(U&u%`KbIu;-BS%l>n5)1nuzR6DfDpAlTp_Bdc5tFAtmH!5H3%mwATb0f(@3p-Fql&`k6 zNF9Hzsl@tkkLL5*T2nR`1u?-lo0hgEm4)qav$s(Zz9)4sh+HB_1?7o-Xco9ue!CX5 zD0c*fdzV&5&aU5KhXajiZl!5X5YsHDX;#oQ$D-sIwj3i(L$HD7KY#nsM zIoLLlWLGF14fSxzgv0^KvHS1EcklW6&@PMhLK*9cB9xUL1hSk>m<0@L3JQHT;WNixB$!>} ze(0^uUX&y|cHgYnp7RP6P2Km^r#>ptKqEe+j40IrBj&O!e%2WAA<(v;M^Tgdf+6xP z2iJqB$7)#2K~aZc3zE-+nA`(0bWDQ!uF@s}UYy}7uU5{O(r{A^}LL>9s^Ye z4oPj3oZ;B)Tt08+nBYaD4M6x97g0z6*uh7+u7^#da9Juff%^;$yl^6sy6l8lHpEKI z1rpPP{5ndM(%AVBFJ!7y+ngM^ z-Rn393@MNs1YZJ+Zd?Eo&{3)ZahXdBTx66IXKi$qf}5~F39HnLREp5_A5K;+@9_;P zHt8Ad7;4i_E_TAq;;xmr^(#Orx5Aj%yTZXFghKLrh6nG>ZdU!~fQRQpp>7XXfH*MV z65Ub<(XahPcbAZpuycDfQGI00qZp2iE$`9E6Ml~F@Dz7FHi0@l^^)?GRP*%IV&kbN z7=GV^feybd@KmVCTS6xhF`G-&6!M*x{S_s8rV7`>R zLNe4!JyiS1MCZsr(te7%E5xi1(UGX3EDZ6(U(@N8A;JsMicXp^w43LfJ;D zdD?~tWkE6h;Oxj7X{q5TW5ZB{vXmU0#UwNi2=0Da3N@88Y*O-X2}xFQAu{*NxQjhQ z(=5hsCswL_492<)C~p7*7a}_Y(i8^5fhw?OxbbgwaCU;?7JP7aqSGm7RwtqA72Zot z9h@ESAOswobvxC;*=iR!^Wd!8nRalNLezF}Hi>>lfIc`Y)jVTrFt)`(aiH7~z#pvR zO6|y-7*lOf##*BY6;nfiDy!0?fMGEz^{R9y$D!<%lOP8l#$mvQe+<3em58iS6e5Ml zj@T{;(X$q%K)$tTTQpGZp%58!zEtxx3(uj7zt+2M8~2xOA4b9*%8|ZA$m+lfqbSb0Rm0e7$U=TQVlR&F3b3)#&qq$%svA} zP3mXH$i%*|WC`lAV^DbZ5Dbi2qSv~IPyt-nrj|VfQb(|*?IC0`sbdd8?QeL|nq!S$ zt8C}gDI3+VT{gv}4%rfCf({)fzg-KlzhML|rM2t3zj2W9T?f#&|AnF^HMTE&H;%qL z7xhpB;9!tZ`x_*I12TP;Yw>g<10ijHgJiSpZ{0;GN=GOwNi|O^wKi6|8nnw|SD}nui6WGh+5lN5fJ$Iw?C6NbB$!>}Ug)jOUX&y| zcF(NXo~eMM`KE#%XrK|J%7{|U(}+hIBlZLBve-2!&Es-Mqsxj+fq5FDK-ApW7Yht- z?hvX#pJX$blpa2@?Gw79&3aK@st@a9^|>bE|5u$BhEn0b^|2 zN12XBKeFQBMNJwsjQay3wcx*5&obn$#NSTCbMbg#n|`9BfeHla8JNU|3i zcqUwy1DqV+>x;p)tS^oq1A_yoLRi`)#isT`sd@Zu)XmuY2S6MEco3`-^Vkpcf1*#K zPY@*f&Y@^a&~Lqg0-{Yq`dCxDXmN=4Q9p>bx?ct2X>4EI+eb+O&s74FAe-7tZ}a#& z6hPm>{uen08N-q_hCziLv8qa+DVKpzaOSVuc;_kE(vA17N4CxY$!5GR=;Hz7s36F_ z-}BkT)1IQA*z*E3r6-5?l+eE9a3N6(qslY&7(}r3#ULT^_b}+&%Teg~vk`wL^ezDq zuKCwhzK?!OB9)MgG8L&h8sl)etVu0SMrdU2xjar}-e_D29M~O=aQpnW6>{S-y(?>O z0Y(wH`4_gb@>!+m2CRHk&|g~63i}>fd?dJam7R1opt=D+xZE z;KZp;?Gzwp>#_X-G_F5^RsjeWNE^b`=WWfSpZt9)BC@wo$smsH)b_-_BTn zkIF1ZflZ5k7zk7PW30c6dh8t(#_2NPR~t}#!mYm<@Habu&E{BsSjMsp_zwt99IRyp zhy(s90zI8E;5P$Iji~2>Oh|dsJeH9ZC~i8;I+Df3b-ze*E|UU9B6}o-^_;lZ%fyY1 z5F~}4E3JcX(YBz1u*LflM>dke`M_pUSapq?6#kF~y#mmZ6wV7~6~vt*Tav;SNahEC zokq*Zm!x1Mr`bCqDXj13Bn6_f0U_3{QE??1 zh9Y@_$7rB4jH>1sJXbw0tBK3ZvTO}jD0uVR3^!0NN0)UWjd3Xo477!?fef96FoEZ) z{#p;rqW-)Td=Z23Bid<$x~kva4X4LY=iuDlt-?COU_j*s{Ym>xL;FpF;i~?{{_3i} zn+Rx)0EW7%Ur*+qt9l9tvM=|qh!45j4Xi6EeZW=yRcPm&kr+zgsDom~j7*SbrFffC zucSCCi)LKaU*}=ho$Lax>aQj{Ueym1b`DCe>~K{-+{3O1*@d{O?@9K&suyIrsuw|I z))Wg!-1jEA^QXbpBVh#?V7Xa3EyvP{u0BL<;H<|LsldQ->t#D;w_NsoaSguu!X=q? z2o_-Ie#Wl*ceaLk<^0PHsab0V2^Ck4L%eClc4Fj&5`cb|KlJln`%ytRa zlL8@x>z+EGrs{yI1Xrw{Cx9hc;0d2Gt;!SCs79hyES;``{n!i z!$bWh>nYV{uHeA?ey0$Ch^V1nrb7~+o%&>`LqTzHrlpbai9;+CBe9uqRe zPP_qpPRK){UDqOK%T6`dV_K6dBu-rR7?_GP48+0YRTdkCdcC*oh>UUV-?B3turyuJ zA6s@Q0CCkXzxiz0i4si7_E=FuF7c6;%VPh{M+qWlC}B82iS^uf9H*6#-@KJzhPSIk z3AuJbmM@DX^HGAx8A=!qP+}7{1rp=667rk35=`E9wJ5Q;jY{BUvC;V`LF5c23+))IJuv<3KmtEEGlf|u>KjtI^2lH%T~O&Mupd@!n2aGU=F3i zDUz|23O8yM)=~v`HRf4sDHWz^73BAKQDGoe zxL#C9QiW+bs6Y?OO_AgAwZ@LvBpuMb@bms(^yeKA_g07@j)9OIz&*i@a+v^kD;NDN zt2)t7#iv-+V9_#%;DE=+w9FggTv%CQcJ?^;25lMny%Z-e@{Z5vI2Yb5midI1*_?xA zg}Fs~Rj?rWnrMLFaxVn6R?K?B!x6CTYvaZx-j~a=N5go$)*h zKeDK29TyUO3ZN{u7s}Y4ERy$xSz}gRgHCHY5SgbnT{`0&D4QAt&~YI$=@h0vhV6>VqvY;eaEyXj@bR?xXmI6%uRSb) zwUSf=MqViAY`v|Bq&`71Q9I+HjZe{_tb1Aj-lxFhW#D0@C?bhFwPc^68Ino0zLISh z$&Ng`Aj)t#5}|U3$aXu**li&NY=`?vyH29jfU z`Z)it6C6^w9^7>TZ%yq!A(FTYG$3CL>dK$>RX6?iRNq;UxgUy})J~?6aRcF(O4MV0 zSoB6=wj^cWdLSAE9xq}asIp&ms@nPMj)B+`yGP#6DErof2u>Va@d^+xOlA{kjsSUY zR8<2^<%c5^7;`;Xl}JpsL*1rOtn&It9>z%xw7MynCz{|m3SlU7H69%T%ok_zN@>hM ztE+-}46i3XnJ`od=hFwGceH#pZ}dQGn1b1gYu=88q1Y4=F4)Q!$!@LWoMQwS?T2eA=}X}712Y>Cc3kW3ZFfk6-VSJ){kH=+fK@<~d&6r2B=ZBnmOl^R z2Da>N8_8vE#oqQ-xptKsUPNUBBI@S>k;DL0IVSZDFICO)I!;HEv$uT?r8^geH=52y zJ@!u)|3G1)NjA98M}xrE8BMam{cnO3CrdQx4Q_%t-t)n8-{%44)#mZ30F!J4Bgm~U z84Hx2(x|Zjw=yUiA}BHfl6ut@kW{;_fTUH@0+O5H^igMY(MQfLG?Cfe1fPh0YYGa- zh!A`6Kt?0QKJEXr*tXB|o)N>1auuYqQBJWvk!ZBk8|A8+V&WfFiDk$RJ>TjRt6A!eWhQ#|%E zt;zUv0h4?3blUhQu)wJQk;^0iMucD*4(Hn4Cs-6o{;H4}LJ5F3r8sDm<6b4^eH5qN zOo(#~3b=MDTq~*LOmO9ds88&5_Q1S8kQ+^JAQ^S1Xgk&3{_QyX)`RtXAUXKo*Tklt zWGj=DY;2G&j$%^4!Yx~=Gy^s^_pF1L0?@o3B(H$` z01uHD57h}Z*?t$UGU6T~QWq$rd}jD#dFAunqXe6YoNt}4oc4>!_rD#HhluEa1VucJZ&=q zo!Sxcy=XXXmnTW(g$%BXj0TH1V;O2)NJM6)r-=3%n25@bI-5<@^kU%MjDC!$ZOBW# zS$D?_!fsoo)xY+BVf2jXV=V)yxLw^9coWq~^mUd_m%b|?T{htvo;plh#@`^UMBVcg z{Vi0j2n#*V)(?!l$gvPfUJ6kSzKjuMvTtPRG8dRI@e3sI8*ri9xA5FG)XjOjeJL^> zQU=}+jZqZvcKcIRKOQ2rDFh55tE4?zk4;UtitlfEljXb)yP(kX>TG!=)J0})!E>f4 z$5dK>#b?Xq+vWHe@Rr`46bF148xr`xU~YB(7VnE1bMWmwPgg*JU*Pu2)xawkzOB&( zU(6ua1wGx5#g{2s_}UH_uI$NV#E(sXjW>AubS%t5YjaQcJ0)i*T7e&v^vV_S($eQN zDcAH~eDCTG`6SSMd>L-XaY*G=WzY9IO%Wc`hq-V}AHv$btheC;cnfYs{o8>Oa`Wh4 zu50|Ujdd~{jyYPb4fq79RcHpiGXmDifaX-Zmg5z&sOQZ2AhGkD`QMc+XaiUEoOx>C z3=HFGsspQApWzz2${y-G8t;c^JYeZdeef5Sxy2KzK9`l?e5%7dVY2{}tfUV&Nn`;~ z@D5ZNUr`x3a!_$0n|V-C5{P8T7fF0Iq_#Qd;=_AfMNJsQ5cnQLVUCev%En9PQDY(_ zNBQqt7!J7Xcn#s0*q6B)mw@tH-%CI)l|%_nQucnLgk1Y!qAH6u$wvtyXDDGfK#83L zphQ!xg!~355o))bm+hj2gvb7(#Ejyc*m-De_wpCks2Wau- zH_KLDs67$AWL=E76ip5W;j-94C}V$M@kbP9-MWM$i*Nt2{)ASjneBZ)e?d1=SS`=$ z9nKrvWB@f^Z$nyZahsc`a3aY|cniBa17JG=xY!-Q`{11Rcgy78{@(pRXns@|mKd`* zBhM~eBcqg)xQ8lXoRhd1*SL)==X^yEND#PZ%HzNVTnE2Gwa*6?$j8IOlbI*lu99a^ zSicck!(f=4FX3yw7f5Ga{9B`m&dP>En9U`4`WK7UY z90Kypn6ENpx({cl<{UHTAK#V(OwZz!r3Cr)H5hU?pr}br8-&=q8N)R;33U_c&+%yJ zbOVJi%M)t4$@bIfft%5bfVg8&BzY$Tfat8k(o5w2_zQil2WD$Nq+s@`?s5Klj#TG? zYIW*1keLTEbkuEwWX`uK!>-|a7=A7c+*z%)G<<3b!`+Xm+3^X z!X$z(Df{7bXrq@X=Lbw_^8T-Jl*#m%gtdk+ABuFhK)R189bN)5b&$0z7#tBcZ4d`O zktDx;NSsTEBg5{%y{uAwbo=gasaS`a;pyzt&36Up}vmP&Qx_$UvH>`?#uz=tO49sc)xAA^(1j; zDp;PF_&6l)hkeVfLO9Ucrf_*0z^WQn1__ z{URjp7`d)_pDNXnbFHsAb5cgVRko4~UCt0Ixz6QWpfcWgfOxZ%=NS*TtL}_vwL?nM zfw6(w1SVmdF@&2V?O~G@I^|Yn7r^ZbA;7pGI+nC%OR~tN1$@?o|2bY()3B2NIJEGl zQzskA2u3D^hR7+&o2lVxczO>uyymICcPQ4#JSLCH6YKuB78~5+7tJ-g9z|Y)>_^{*d%&z7+#J;f9VIAY>rhd|F3~;<}eel zPM+;6XA-khhG>B|&xtCMb+V4a;fEjse75X0iuRR=#!=AL(ye5y_}5><z-$fpZ|*^~~R!MKq4|DvY4?Ya?fyEk?_Xmc;dNv&E)#h%*tJ2j6+%GW?0po8KNA-z0Q+I7 z`EuxVv3UmgG&xd=<#SP|PI&anAJn{7eW5So6R~c_${LK7ON&~RC;p6Z;T4bk%3CGP zyj05BvA%Cz_z3i6J+hH=?VV7xCiN!$uq@Q&14i>&j^>|%ZQTuQ=)6Uy)StwUyD$%L z#V8ia*d~yX&RbuTPJ_0e98qEI&cNIOO!3eTAaZMOmzs>%ff4QrF6?^`_*lC+rBhx* zH3F)?Qu5ux`5oks-6VjyU?I#|z(?H_E^cNm?92O!3$bpw3naL1Sr6)-HJ&sFT$AN; zLGy{R?N_wzPhh0iF>iCNw+W50ooKB4N*UsPN-H-;3|Kz{1y+7^Fc&T_3})_|HyDR0 zPlT1p!{k$+mG{ZOd=8jm<>P@!E6*D&OPR!M5$nw@j&t> za($kX@!-SEHXb&T(RvO8FEM8rEEoI3X32li{*<34Y2Iz%0kh81?>ms@Jk9*QG4nQ>`8Y80n)z7NLz#I8wf~0NlY}v4Htk6^ zQ2TP*bZO0x2P8HB0rU}AQq5E2Uya5)sBs(&^aS&+xljhb->8qw90>qqn>mPVQn)W{ zWajW;W}7*7lTq3wpj;oR9Rx22T2m&8w7mqb>z$RL|58fbT$C*}>u*#f<6=@;YrmL0 z35a!GOp*@fqV$W&lZji`#bf}kx|ob$Cjm#QHuG|kQs~RY72H_mZQvEWTel#J&I zvJ41uOZpRJdn&i=LFWHOfWa-}V3nIaZkakHi4M5s)**Du)FE`s)FIZI?o85 zPw^l%daOCQ&}oyEj);TWXQXD&M)ER!udd8)0k2+@I|1XA z5YC-|;s^Iw+NKK&Ypm*WHnP?20covmXN4N^mw! zWD&{1w>W}!RQv>*!=52_RNSP&ONkG0C7rgL5=7OP_dHoGa5u$IAmna}J7_4@7yUAJ zQi7=Z#=U1$2kxZ!2{`j-9Xlx|wjos3os=NT5G~YBiXT_+q;L`qv6JG(4ZV}%A_eZG z?1M4FofNrMFB7fYs^1sQvNJFdQC;U$%UuPz>!EfPaGTx1_3bKjfS#NS_XBm$y>``H zzq=v_gOu#l@DjkD1ZjC`iHwS!ma^C`G@3g{EdUALL=ZUcpqL%gNvGKa#YvpjP+?+g zW{*Dt(CRT7Hxnh&{&83!9`u{o8o@HLwcHvy1W1YNAq5w+^6SV{D%ZT8&z$6P^XJc? zD{AsW*uKG46IUxC?q@@tzfhfP{OXX7-wbK$G^09`wL0<}ur|*{kG~o{xb(Jf6g?gt z40mD62Hz4#qj6U;AR#sp1ddxV9(NJc=PnC?R(HRCr0>T|)2}s<5;tl6As~bj4k~POzuAYT_y(oV#LFr>|cf(y3LQqo~eQt&aTW<1SHv`?&TrQD8pbPlZj} z5DKV0V0jeE;40r?;a2;jPzqC?kn>{l9lUisA*V3q2}dtx9GG=H;ixd>w1*e-9AMUU z+T&(zZ27&kLH(aSD@e+X@XxS;E_OfdVc2~-3Vi!&2<(3S(6DyTd{3cs5?B;9JC#ZO z=-v%OyB9t;WbP2tuHIs3SmRXA^FugA-!N3|6OcwOsKrZ1SIr&LsZ)944rs%)D8G(w z7-!E9;igB626)M%XT0UIr+k7LZ+C)+^CG%9$I#tqv0j6lT*0v&Fr<4Cb+-LlTekoh zx=tR-vv`Y#@SB}ASje|HbbP#4X39G#U!ZeRBL0x_^{;=#$x25M;JJiGtpPe(P6t92@u1ll%P*7l^o1Dle7b9|dy26qh4l=LmDM5{AgG zFwNqxc!W8H)YD!wGIU`PFKlp11?sL*$8B=R({oln>x!JJ7#|`Q8`Wk z@ls7>YApk-_>kW}?+ADy=Zji_I|Fb$ch$Kl@v5@I<%{qe!}HVG#5gMlG5$_izcsIJ z+#2Sz$)!3qt7UObY7*a!I<@5;7`H89Fqk>n1iEn?X=7KUNeN@nYF9)>X4L+P8n#B> zON-ojVIp@aB3JfLmLhQ5&n{hZe8Vm*gB&IU1aiGPq$2*BvX?mgZ0gAvcaWTzI|p5i z;KWkGN4;3*5^FJDDqJ?jOtS>pN&G7p3Ed zagbxNajY%+uE(*fv~;~G9kbp0Xs9jQ^#Nd*3|0v^oxwgJ50GAs-`X-*KZ+lim53QS zEA>y~jCi1SS42e))CQo2fu&ThpC<-^gbb_?Az4}MBa|kH2cyechlY$0LGD>7Z|ECB zko5qu31_x9)!q_-R!gFsyGzbz-8Pgfj9Z76TjvnBufm;nawPfZkhpga zrS8{J_eOlTH!X{sFnqW7)OKWyJ+$N&90tP0ISxUQi)_48R!Rvt|HiwJnNhPx^W|;N z0}KrDb$jm5Dr)#!sM+*}bF50grZ)`<3xwcpE>Juzc$3j1Rd)Z#CZpjG$pT*Yd#;i^ zU~5rn*4fbv`uTSmGXSz`F~99;`T^~)+dJ0965#9h+;myd)_c6l@k>^tq#eICene7) ze2KL%Hxus@ZbV1%y)%qD}f-zE88Yy-ON|U!HhPRYWyo|}Ww-$4f5>r*{C+5s1+LzZo zMloMNX~dj`F6#?4z^1d1gxWK)H2q4B%WuFVN5`U$djhk2%m)lc!yI|!XpTHhzo~~! zQba@#uwnICLwT=g=FoDd3n7ZG#5_RK>i2>ntgfo{Q)iV?XE$h;#Y!J{)p?)loP`Fc z^BmMUi|SBo)Zak8T&Xj2=xKoQ3JuX;8)}mj5zzx|v^^*4JPUP97t}#l;#5FVoz+Sm zRjr>oyNo(lf@WE4HcI22pQ+AcXn^={LHtXzsZ#@(Om#?#i0A<})OkzPSq61X7t}#l zVh$jw&M!(GRjr>ot@qKvwgfcGVy&KlIx-TiGYZuefP9EUUGvHHz51MJ8{k<*fVPQ( zBX691whg7~pFs6)RQ1uq>cJkZ0Ya^MaPE1#2Z7!}w4Q?}24~cap4PmL>gTIf z4&#Oy5>F(#umzTp?b)5giyc<2fATIoAjxW^gk>5cvov0Gg7T3bjOmYIH6t0U2AL8^ zfD5e_h3JTBsph$B@t=LQ^*TKROKg0en>{;diC?(c!xR1BcNu`Juh7>X4^u`;P;i#N zTu`k$pVEkUKJhxqs94j?yACAQU8gSr*TI$*9kzf##G3YG8aUTYpAkGYOoJDl1n~G~ zf=303^8y%N;T5CcPg;y_XqCMTL6FO`E3-((S6c>17XO;8G?S~mObQK??uLng3X`j| zFyTG1AST~6X<(T2G)x3knDolRq&N$cZ#_(UdzmygO!^om0xC=@voL9sg~@jw zCVjn3ni?kk3=;trCf8(P!h3Z==Gy9E(%;LZxnVNEFcDB;a%~nS9kVdm=3z3>%cP@W zGRQCyP+>AS3zIXmFxgHfnZtxj{~*N$TnFP2uT04#Rxw7dp++tN7rCxOlg&|zflH>3>IZ5Ox73$5StCNPn~Vq zgyA3i?rjs2f3~BL&D6JZzt^Jv7f29QRqH3}I1vrPRe(=ftQ@5gsfr@8p*r=@@yu0` z)>Ww;O=OJ-<0eb6G04<5J{_(>FkE#yT;pK43F&Z$1j9{ChieiHHz^&iX)xUN>2QY! z!`+Y$_lID($$(4jpsU~``K{;9)_ou(tNqU6qw`S4egIwLsQb}x?L>pkE`DK}KDu%b z*EwjFxk5l?)YK60IAGf3kHcTXFcsZ0j1PoY z4T~fX##|(VU|!zReg^2A4_GV(b~JHiGjbGBJU8#SfzK;NF+m?e@IiT|T{c zDFChapQC68uf?-qe}Qa5p{qjyd)14YHz{$xYVP*XmjNQryAJKsuJe3Fk6hGO^l(^f zZ7W%h7D$lt3O)TD8LsdF43am&*!&k{nnO(F9NY{<06ky<@XihYYi58V)^76uJXi0EXP#hEfzcbT<#D>+r&z4QUB5>vH;^G zk{pf?-&Uks!xcBk8r8}ef!25u){wz1fhmLg={gML3rptsps?hsF(WLW$%Qg!nIOtd zgD5|n3uVp^L6o^Z%#iuHTqtvf3Zl$KVFu;7pp2LJcoPR_q%4V}2V%k`4!aJSWN>y< zLBv)j0978>0|M$zrXOx-y1XVI;fN4J-$8z*lJe$JC)F!+7W@z9|H$v$`yrhYvT z?gK7rZe67m2Qo54)iAkly0{LD2@vGdX!G_SFVFQgGuiVI#xlbJNtQusnjhB@^O0vASAwSKFDWgsD| zf=i&g-3NsAs$c?F1s9_+b`c7*DtJf0t?_75Q|K++1d$7T;+ovAjEqd~zrfD~Oy2HI z*BJbg`R<}v#v5`6@kU9t10ei zaI*S1VRb{Wv;W3K;qkc0!^^P`!nkHEd894vgmI=}f~`&hKC54k24nR#nN}AYjsuMH zyG(ruIQTn>Z1q?80U7o6PxJYyrx}I`-0?5|lsSk~(L`m_~da5`coYZPBJxuT9 zg^^nAZNY6fS?%H5!~<jf*Vn|dQxx>nMz&6dacp*>k-d>tre=P{ zRyX40QxUVW)NVqpp~pw0wu#hk^iZ=&+Kh}OQ5ty7MV!sVxd~uG^;wKNn-rXoDBR1b z6XME-Vs?4+x%ZueB((*kY?2a=EQ%zS8tqX^tr9n&i_`1ZfPF79_;bSBjy# zc?|s>6`BfGHe12i{8Ib|4GXtyWJ!@^9RF=&>$KmU*>;d6pJQz* zLQ6VZ01cYiS#hzGtB|1XZ=jxDoS?cLhNj1XSw{38_Zu(fpI}wn^BhZ9&WUt<+G@%Dc#& zVW2ooC8>R7T zA-Zff7(+JLgSthU`5LcOjm>?HGLAI#VLHp+p)FqovJhHT>nC(WBQzJWWwE{! z*@WRAg(VP?`Lv19unC10%G;<_{BFvqLw_GbMEcB}vM*XCQUp{YWj{0-I!e_$wW>`C zjISg}wSKA|01}cTINZx(gHgr?p)i5;2Qp^^m6M@k6UM2vqV(d9Ms$S(>Od9gympV4 z`5+~;s@6~DKN^`wKoWZ<2@EMV}X&@4GjcuEc{rVbBl9U|ua!^g1o5wKJOeRP6^CztDjr1l-q8sVf;(`DMU*V+$d?&x$tP;v zsp{|&2?U_ctrac)qVN@D?bkT%V#a_IKOM4Ix(>18FO$BeoFHX0J{`&@veoAYnQJ_L zz+9sS(oM`IGRqg(e(HK#Q*14_sH^|j_pUzF9qC)4rG1^YfW`sJ7yx3!eQ>d;< zM~)FX{$Cg&U8)d9P#c$Se3lv`hzeqaQ`xjv=RKnmIG6(nQQsFQHcVe6wL&h={A zHCv%XQ2MGz$E#<(=L4+-`CRC^BBc?5&~e~*LU}-D{+0fHf_~Pd#P2c z$-lgprKUBs^Vq}x&uKD!QB9r9p(u0f*DI)6co;#`bTi1_J9A!SwGPq9X5I83x`GK! z(vc*zE6{|{Vs5~yA^tjk114T)Z#Hdlm<3$zw_?!|1a4L+9hQ<;R7mJKwHt&9SQlPt z#1;$@`)VaNXLgGHMzGjUMoE)Hz%|bvpkzG_d@~nkrVK~>EUBWfg$$GQbkviSpCM(E z=b#iY4n%DBvW+V+)*Jx#CF|bu?M2GZdMVrFLl#0IaL>0lk)8vXfVg|`-l(Zf(|XwD z2(tQ>#h%P+g_4sGl*`bDdu7sd!Y07Zf>e-h;y%>rd83o;W78}&gz&;Xwy9GJ?)=gM z>`%Y!tt6>hvWeVfmV z(u_UW7+Z`Z#vZDS&Gjse{Z`zj*|To_f=`fX(W7bNHi zE6I(lw_)ahjjW^qsmpePn60Ix?-*g`vS1yfL%Vr2XrwKaBo(Z6JuAm5ce%$ZTk=@t zYV?a-4pZMrPB6V6&$}QsMUqGG5GwxqK#|1BVx}zFM)Eh)DL70lz0KtqlN4PL(e5$M z4;7W{$2e=Xgvy0DX%~E)^CO2iL0ThC@=Tso?}xgLf!#=?!2WKA-prTo()m2 zL&l;@HYWWT<1|K8FeCu0*i;x*H0u{;)gU2ZHilvLF@y;Svk3sQK1H8zzw~-RRl!F@ z69;FC(wRZGiJE4DJG*`URMbJhb&TF%1h6Ruqrty8mw?@XF11vsF%<^?a^LNSJ>>jx@Vlo#e3R@K`n;_<&Sr9S}^UpGfjyAM!xG4bBQq-wvqLV z7);_~Y8KBVXQo|=`%NDI3L=O1P&V+4Z4y714#Gt{c3K$6ZgkwD);M0s@v zFhBs7cbO_KaoGpB#IJ1HoN=>pji@ZHxfM+&h}HQ1ghoe3xQ)PtQB|$qV4e;VGML9> zFqg%uP{ziw7>mN({I~-^Y80{+FNMo|lF>S%)-!^?K;rcAW04Qk$KwNrENZ@o28iYz z5LVpbVsV1t>A*eh0MgW>cG5)ikoG(jQDJV3Z`Nj>q0FqR^)vHb#>^8Sn7tQx>qkm& z_1t5+Ux47(IkYz&l6E(zNyeQVQZmn&dS`HxTRQ9ufIwP%xU|$hv`A%Wag|j!jb<(l zeg4!d53dyKrct|2yw)`|;`>mSsAvQu`K%?+-_^iuo}G!k2@b#q(Ja|c@MTCnES6Rw z?G@QOGy|SP?9f!KDYxZ(Xr3gQ3z}!~7=RYvPxKX@I`=)wz-WTzoJG$>U>XeInhD6s zIRNmmOvq&Ib~ya7c06kyDPhSS=*PqjHWgx1{D3Uxt;0@P&{Pa(E-Dmw!0XU5ZMxXdu;__)RNPuBIx8ed^(cuqS4ClEZ z3_yz?DAEhEmj2l+0%Wu0!NH8PgiMEngrOj5hR=avfVrNhZE%+|Di~reTZvY?-vUyZ zcMHP!t-~QAckZ-&2350F{EwoPP}EAj5UkWZqm*EXQuEow7!X%T3@p^h1!}H0S!@v@ z3!|!9ze#9fQ$5$u;w1DZh^-gyck*b>Of;Gaf0962oeUh;=@>|O|G@%2pPU?yt94v* zojRy-v-qE>zE=Et;MpXEXNh~d->E(vAXsL5zf+CBlMmxf5o*CjSSy?AAVCXR_tT)wAdEKr-8B4t9>d=(kjn6c%WC+h&El=7ls5b=z_UpRZ${~5 zy}4CB5I(b4OMt-e&-LOfI-c#t2YB&!@(O%UTN&Q);4Kc0@lb}J*$alB*^7q16?{F0 zZ%&cWd>fj@@JFyA>Xr0%jiC*1Fs5sas9=cU?_g75R6*3w@OOfQ7=8{7|5pg34L_5H zpY1XHT>_~LPq?gxZ{92(rBd4PcLUERq3YBs&)3x300f5jeoY;J%h%ME;SCQOzP1g0 zU&JqF#4nbJzXyChhPNmZ3_laiV)!H35cNtrOJium8;pB3MpQ7w@b|H)FsdNxXZQy| zLJa>94c`{RXv5z}!$0UT{A__#Qy$?=8gRDj{Fj39W2up1T=UAKxE;YU|DmjiA4dtb@Q;Fp zO_NurHuSOf+|Jx!RrfvyAPCV7edN_~y_p;Eck*gHfb3@O5(VVV-1B{z+lWKchRfWT zH5YhBN_)k@J5s*#jTA43a3cjAHutP3rjjKrXy?aa1kZRe9()4LGG30S!J=NXJ*hGD zcrh4HX^f~~h|iy9Q(;s=)Ni~z3lcJ39_4sB0mA6<@&L!nBcAc{oIqN#_eMCKsBl(M z#m^K@&G7`)Q32xt%ACLD{VB~9xDJ=+!N4ZR>Qq%PE5WH`thK#o2T(+~RLN8_PNow4 zoowVxC58_pf!7wN;%XtvQTzC4i)Q89tm z=>?6UeQ7Y}X^f~~h%e`}sW7S_>gUUaAR)edg1-D4gwej7Ltj4b@#P|cRK6r!urE)g zI?9(Gpa5U;>Z@5?z_s2lf`Ltrcn5WF>opGjv1RY}J_Quv%ZV7ehysyKK<>ULj9c{$V_QeNn~LkhA??^RJubCj@PV7&}; zc>?Ps8XnDy(JX;=8XKZs1254SIb;Wc*l#@$h_R?U9`$vE1+W1<%$xOlI??Y zNF;44waFixJ+q@Lsb^aCDC{3u9>j{caL{9G1-RR^Fuvj1+uG+x8CzR=mxCY1)@~VF zzslIc-^oV4X|+NDWuI1!IQ5=Z|DiZ!AH7}4bSkbU%eIn+IRz0f&~-Yp!x zusY&q6&&Ijy{AJy4wv_J;3UpvL)7cS)fz*OUW4(0#)t}rgxVT56-E_=J9=~Y#L9@X z3x;vjj=+fJ>t*al^EhIE?Sm9Nxe_CGA{y0g%sO7uxC&_=bc6tJI5I{ectgdGCN^ns zL*0EhksK~f>ZyKGmV625gO z4Wbhl(7w0s*p$|>UW4>wLM}sfPY3U>0@ZTch*>HECiaF5G|1`D0~VKRp6{a^4~NTw zf{NM)fI&^_XT}ZWFAHT<-rE;Mn#9D5_l+i{yt$q@P|H36;E-La0kY>1^~rG(tjUz9 z0JE@;@L2l-M!+9LlLl=h$Cih z# zeC?~mEA^n^RlKUx9qKJtv~>ErUtMgDGQ9g0Z++d?quk+%Q3i)4T2L@Z`xbnkRIjdXHFi=gGP$)H5X*Cmp|8Nv3* zOHHgHP{TSO?U>aT;_YIma8@I6YL8sGqsNS;w^uzp?B8fY{sjmc7Y^gJ_Bf}taix*u z(P~;7S6ZI95McDI{5nFzvyTk>KbqDkds(bA%GgCHLfJ&7wGn_;GnF%a$+R}ow7b)t zXIhKIZ$rOHkDh6*AU@sGA=6q44K{_M#bB@(X)v*JDJ(XlX57aurlA*R-H2&T0+xEv z@+x3GtA=*8bUUKpmF6hZu$g1NXi-rtzAAT^VqSyC5*LH2Z(h5D4Nf4PHX{6xD>-F;mmBJgnwqcUG(yL$TPDQ#AmSEJF|sQ_?CJpeAQcT zl{UuvdV&;oDTY(nnd9yh?Yv6J92Y`~TkEBS_L^~GZ92IO!s+BpccPPjx)UdQr#lJX z{Bo;zx)Xcd1&io>ieXt68-seN++n6W65!}E)7?u=Y|`K`Eam_e*O$Qm<%xUH&ZH>6 zw&7g*dn83?x?>)M`aTBFj1K!Ik07*v#M*ZfqxS5$&h%Rsv<_9n{MTPQ*) zbsv>l4rrSw)v1rD)VHG4M^LICl_EvQZ687>0}7o0lz1Ec)aibulT^Frr_&se0>#;) z8vbA%8mMb~Xxp`w9>ihxQS z2UH65Ac(?6o&H%Jc6fEg`K&f$})N*{BrHV?C zqIO$#)qA+OHlWZ6K#7j%r%sP5ourzlPLCU%{sG$f{s79@KT(9z=?Us|9-wWa1TN7m zQgj{lFdSuIp%hnEX9IvrJ*kwEYMx3xZIrqIwDCfDl(DB#gi`7mDm53-Hc_fm)x+Va zJH%1d!z0NVbQCE%jv7C_+yRA707^WAe(LnB(n+d$>NFRmK=FA|4S%qXP+SO3WwH4v zV~bFP($EH~wFJ;MQL0lOWLIPEyTNr#CDS@VayuHs zD0qs4sjjK{e0A!}5!98h71=lf z1A4;s-5F(*23YE(L5|yu_$^&y( z`MexdCi&1R8)XM6WjjMz`7=Ld&lhE{rm}-Y+41ymbx8kSfb5q{^YF|O-HVim{r)9+ zjt}GCujt=R;@?@uzb)WjoN+Z@kC*c-c>an9Kk0Ad_4v)S0VO}X;36K3(8nBxu=(tQ zi{*}mz;Fwvt7v9e^Ghc`G_g+QcN-Z($zF^peT3)I^CF31BoZAerTk4U|FMRn!Mb3v zwv(aO7=!X_TI?sNAR|0EROs<!}}@b{XhDX6|b66RSo zlHosgBu+p!D#C@EF%KUGS#rEhnaBv=^&K-Z(uE~ItZ}(DD}Sa_4b!RA2UM@XOF#@m zmCTyOZ=scxAG%o=Wi`$&7)KPijtWRtg0LSCC)q3MKmBxr_TN=}adA{=cW!ug!PV9X z+I|cQZQ?Z`Gh<9DRX7c8*t-6{3y#O2iuabGOzYuh;MOi4(fOIH>ePp{@9L2iupN?Q z2}?-Rlj0`sy zBp=5XJWux!w>tIRNHu#_r_G*;c_KBw;mco#QE5%;qme;#Sq}1#6#4G}U3)$XQiS|l zA%AQ->S5-7t;9$n;8(&X4Q!n_dTk$BT$36<0`cit8jP|Q8vcHCe1Liv2lDt4494*z z5RCstBodlcL?U{c#}}clBT-H`Tf;)8UxyIy9AdpuYx-6B#hZR1PI5FHD5+J1klpby zXi6-gOb9Xgbxiwvcq};<^u=p;(rPb?F~n=%(`z$O&%tX#O^EnSZ@mgSNG)(v@<)?e zR--LAwYWVxwNMN%#hpwoJ4WJ^4M>(JK0r6kBfpLgSG=-c5R;SZ?)-AEp!#t?yd@OScKn8zkv20FC-et3m7D-#EC zjM1u+gUVGKfLL(}i4>uElbKvLksjq{59ob1vf|Q$R-G7ayshALm9i_6_z;lDA@V#p zEGpH2oR*6TCmIvZ1Z{gQ3T?vAX~KI@4`sqhjtLp5V!|)*hhsv-t2W_!sBC?XK3)Hb zCLkZz1Te&RUcKpzY%)d0ihkZhAT8pAR^>@QJh z!-k$PZlX;$8f+@!P8k8|GC4&!+Qjgt%&$;4DRZiTST$)$^RW@#3%O?XuUH*InJM#e zvtm6O-jfw;16h)JQ>Ls~o5eSK*iQrd8I)}kwKDW2-&@ssjnsx8vc$D<^DZbHU^A7Z znsA>Z)uf`6ze~*z&D4(=jWm+2n6vRuSnw4qGPG_+i#&rYvdNv#TiC>dK4LA&?YE*S zv4PSfBIGw9B61mOw}YT0bEX=53kn?(NC#!Hdr=QH)TV=s^&_BFX8D=phsfRl(J5G% z1hmWN=kB0>Ujvc)$#0(e-D&iD07UIyP+*$n5@R#;3#Hm!RP9%T9k7@%OM~RyfV2te ziF8XY(@i7z;xb)5I<*IERH5H5|34scsNVw$P+Y2cDn837K8K?JCQ{|5_`Os-@`}c; zP4WAvI3c}?%f-5B%%=Emt@!;)ajE91IA7l&5&Z;cm&G1K8G95(C}%%Nozvo&6awPa zCeeU)iQ|VrCs6>4(4F!dpj9rJ`%$CSQ{ZYBimheQ^$W-8lhp6*{pCo!TGA(pAaGt0 ze;aNSly34affGeqQu%eLm&%I4^L^=10v9A3DEr@ngl?Z8lFsDi`2Q&B@u=7B3F`#k zWPr`Uk=+Y3x2FtoT%666O^c~=#s4c7MZYlvkr_8C)NV!btE0=VA5os@pp}(hM?fe$ zb40x_W*ntIq0;R|>Bp$_ZYo_8PH7s<-Il=4;;8P0+?DgsfQC4feoT~xU9oIQj*27; zPJz;7=2!Y2D1Dq(T7De?q4Z$3CmFCW~Oe8(1bUWcIJF%0Xbch@#qr#x6Rq||H;;Zoil{SrtBs(BYdDo}RQK=E- zRt9c^*4c6KUViSz8r*Xjm|niT*&!RE*NZ8)fbT#qJ{U1$!AzX$Mc@wF``Wz_bQSXH zgA|l@*ISyz9XF!f$LA2p_(K!92_Sp7iJ10^{5qiU3bsx1oDZKd^I-$kehuP@9s}goxji?L{lCL?^9;{5l+!5_x+4 zIipNtDs#H4%wtrhQI5)xnh^0TW0MX}N;;tuxM`St9@y3yMh-uTpetd%%n6%^#PBSW z<7c8SX$D5NNiyu_p+iXS%`rP5D6`$W@oXOIY{BiE7r;+0FhvNtz?_GsL>Xnm!c~49 zGyg6gTp(7!mi1n=+*x7_8MjZ+gL|T$OE{965b>KoaP#o*pdGw<==SK%LyF<0n6`OX zj&7PqejOdMnkSdb@rA}bO~AvhK*6z()NvQhvp4FY%(Dn&to;FPaiC!5>xNPP#2--q z;ZfWI#Bf0(!r#e*IH!^>10Df1ZB&J|UnUOrxR8Q?c@HqY+@y1Z0#68L48zf8!6wgosyd!u_GLbw2uZ{TP~nd|VU25I1@a>r%?iu++w-YBmpF zp6v7yF)ZW5z5sN{=AllRTqhLlrMD2fdW2Y3Um?OYLZDnyKDxnqJEbFfcnXAp8Bme`W*j(RBl zKA?VA8WI639%pBBjWDzc>m7(!p>77^ha?tu?cxy1+{Mp4cj8&Q=rO>x%SYfRaU?=W z9Ic}WvOh)>aNi3i!TuP|@9{p_I;^=J6>xbuegq%){&u+BEVB(t*1I`?Y*6lil?u&7 zH(CJFtfw@EQK{zX+)qGCg7+ZMw!5Ry&b>cun*Ee^=wYyH^Xq4TvBDKgwDcR5^is`J`mc=i zhfw<7BE78K9ti8U&7fda8fUV>OBwzhxI{=^-blfl55m2)56jWJwo{A=z zAyNv_nnZeT>&^&ot#Yag;G8j$eWqC-W9uu3(lYj6Vk211E#@NITP^MIUHtkaHB zH;dmy#HgUBYa?o1OtpAYI2&>2M74iNWHaq0pyxAfS2T!eMG`UXWxq4e%SrE^-_>eY$9VK<77q%^{j{CfFbe`j;tqcXVgFm`3+Da)Yj3J&o{sbYAbr!AZUMu zq9*kmFIHa)wJ^p!mue!X8K8!_LxXQQ%Uwe#(6mc+#Ap#2=+IZQWld^@-eTel3%gWB zb~LF704biZ$J?Vil_xf9mF3rgE2X^kzF(y*&{Zt(7A>$PR|}k7fJY##H3k=tA&f#Y zTPoYJuXDYHXDyOvVZBum|Aq>v#lU~8?F)+Z^5tb5U*kIYG8u#d#6fs@;%mag$MTz> zkGqM6?@-EbQD`5p=7z-EsMj5<4w~yaYX>kF&^fsO1_g7Ag&9O__^RyLE*}MC9VRkxI45wZqir-FR&wW7V zcW~w2AcMIun=9RJk1O3q?Mhn5FQUhljW(Iuw}dTBR$myoeZ}rZ5O-XL7hU(UfXIC;81! zr$M5VA5O26{`UIfXyFUTjiu+%q1-GsxxsQwR4g4cMhU1t9cVAjwulLu6Up!eZ-)Of}$Si zo}fyq2Om^m5hOUUj-og!u#)nOLoLCTe8y)K5=YWV@R|J9(`P)BFFyMiJ`0t(lDE*d zrD9CyLDo_})0#M%0wMN!gdcKAHNPY!-wzb|K4nZ5gMp5zx7;O z5tC|ynGKIIB#zNS@*F;dR8{v4uoDp~U(fkP;DdGk}f=$I(_T_FK4Iz9)zP>(M< zJ{^CmS3q8kv5Kc<@fOuc3CkHQTu82Y+?N^~`mh0CFme*8&<4wutEHNs4bBw(DP5?s z@^|Z`yK#lWWqFd{CaF*_P(4@4RSv(%p8+z3y7bh3`O^4BLh4^2UX%J!hg4atG2*Na zHx(p#TZyy2ZLrnYsYz`bWs?8{vACw{`yM6o_UOcU)BxhkuY*)dzCo9fp$3&&_9ve< z+Wb4LmF4uK)sY!VmLCPQH0NL*nKp zl2Z)(vBl0ysV$>KA|8KBT&yLMUr*i+<#TN%-nbV@t^hH66pEVER<6)~WL}glk2=13 zz#HDM5eW%?b!w+xi*gC(IpX?XEw21Jtl;ad`ED5`oxA*3Qj4Uk#ZSC6=!Uv6ua=ew z0_T_3CMc#LbtZQ-Dhy8fb*L(VJ?75E@tcgf*KryeCxXg)|4j-ymV$<{Iq#raqAO9T z13U&@k?40~1E4>HhQ#Z>E>PcWtSWncRJm9}g6{MPH-1BCtMBDkG zT^5^wGL*jGIQkMLP~Y^uT(4pVNh>x{EB38YOsaV*=G@wyEQ(!^GBycCDDC9du3Xd- zMK5G=QLD1h8FVHIvI805Wt9QsKJJZZrf=joPZf3;-}DAi?3$vCO+gV#g&*i3LaTi5 zTzrv=zp0se=grONU~v7Yd?3|471(7I=m*+mvD;9_ZbcDFfuE@Wq5aZYq~dRCCLcGy z6YW@IY-oj@2z>hd-h2Oz$jy|Ns4bwtFhQx!!uKy1JU$`BiC0lJ(Tiz9z=41#Ei?F16`j z>9+o$=X(U{NP60jA+L?vuV6ttmKuT1VX?8%(a36ak$L|>fP~`Y^C%%7%~bFz$q+v3 zGGMkbe7p+S_Sd-7rbktSk6Wsv449TI?VDzb>e}=J1b{_;`0thQ-^YNfUYNd39d5}w zcxH91YGa{YH&SaQY;!u>#Cuu|IJ$US@yYLlM1oftu*ZwrnfIh$`2rgN9^B)h>b|^i z25|Fm+0z`-7%0Q{HKPrlqkltD!xhQ>jG`7j9T1fiP*^lq7qL5A7Uojyo9ZfdHK>X( zO?Huq1+R(_$y z)N*9&e|NzP$SX<$>H$E>-++mdl6yTR#cdlRspSA_|Bg#-`c4|vU6K4QNa98gwO+{9 zHR;KYp*=!4{s%fLO8J8fpeZ+afDcL5laJnpj}_!&tMDP?$KB*Zzm3QJAC@esvw~3r zzc(WN2`J$a|OMl?Zua1^2MO6eAs}zi^w1B~vhh$S?&=#`H|8C;bw^a?XKx5Az~) zmY?7#)Rf5-!9#G$v>j^FUby=O_9Dr8+6#A_2*>Y}6*86_Z;x~&j=9l9-f*(n zg#HjFA9%Nkz>PB5pKBRQ;VmamSYR4w8~7MNVC%Q32C=~LCU*c}ibXcJ;A4kO)>ABJ z8L@mou`~ii?GDCKEIT3{Ni4FrMqUjd2xAC}c?bwE3BVAzBfb?4fnb@0As`RJ`3CQj zyZhpuVmS-~&2dza>ZcpHvG{b>gm6qX2nSG-r2tCda9a*+Mw0au&bdZ7A5u6w1A(@g z@$@lK78uT>xybfxw)Pr@jIr3Lt@cv1rUO#Gau?0VzZD;ntS2A;F?@UiKB^KQ;hI>D zOC%QhlLZ-8*@P@WBN$edM(&_K36KTQpCi{y> zI3J^^13r6+h~>G+u3E$wqXy`cWIgE{WayLNt_cumQ;9a6f!z)k2x?$udt)rlXyqSR zE1HrCdNj1Xgsh60d0RT+hTqH>R$R&kGBA1@IH)oQ#vy1R&-4VXJkuMBtmJN_0y30) zhzvb*lk=PG)3CU8>KV+1V>_STqE4g?B%Y` zSpJvZ@jZLTcau`Yv0Y7Y`$|`9*56*K88xG8EcIFoa8-)ta4hdNr(=1qx%C7})3Z?e zCQEnnmoi+P)wLH+QJ&V7rzlVB3h6ZUA>mHM3?w`I!4!aG_v8+MLD9+G;kuHnd*8hG z%u;en5GO@f(ipm6l5!+K+tR`wMfl4`$>~u)>c~tGi&Er+TO*pP{a8Bv8uJ|TqlUQmR z<$pa&p`8ciIsb#DHi-g!?5$|Y(+^tOB#;jVp_p{3O-flTj|x>5*}`Ya!~m!p{WMVu zdsW}tspCkYqed$RkirY<%T~^&#t*$xOM;t5Xy|42thrE=4x$BiWWhw-$LQc;i^=V+kl= zQECY(Xj$lw{L2u1KO4y=QQTsPj`#03KNg>)=D-2ZBc>7rD?xV6;>TOmr*gZOI zhbBehBZRA@&|WTh*{LoZkMfzstHHAt^w!Pfvwb(U%=m&L_P-uws;s(pJ{e5t)$G{- zsRt8ywyMM|r1OV8RETT<_HSZlV^Hhg#B4BN6Z4d=*u?xAnSdF}J@<%sW|M{-61PwB z47gLggW@f>a1(Rtml8c`c@IGC2N#i-#~6Q2iyD9q2Qf}V<(6yHuVBUw1K>LLryTH7 z)xlakzvorfT5$wxtvG_UNKNt~5JC3j?m(_2U14((&-kC0+b;lFH1`L&ohaPSB)1D9 zacfaXqB;4<07kv)^NVIwKU&SrL(;|g!+{HZ&8+6R>X0SIu~pTv)Kd%*v0nUWbrriAYA@Ew0k=wUs)MqVWLz6UexgXaj z-Y3?(S*j!-4gpRu0=zqZSoh-s?*y8a7*)`|fPD5$&eB-q9)=~m#+oZdjROSxHC%`S z7~X-R60?ymxQnrIMi(;}l*)Q0Uq>a{pxi^cSUy4ZE}}A8^o}>Dzi$Ceya$L?iFa{L zyu-^%URLn3oR?*|=zyuEwF(Jq%|)=8k6<&OK$bQeB6wi{!xNf5sz!HdWqrVkI}Aca z405UUtjM-3_YQmnUXxzS+0)u;4v7G3fV8$&qg3_V>l)l%YLgt;Oj|}&7%`gkbSjkW zFBM31c!h?lf`(v|MN}*b0afY)Wm6*ln!V$ebckk7;54!c+nNL7h- zxF*)}vWAyWc=?!@k8sg;agg;X5&^ql!=POpY<-4Yk4g#2uQ5|WtCaY{D`=H!2sWwn zE6Ty8RjNVRWX4~!cf6f-reCFGh&oX!B~f0Ll6Ti^A@@W4+A*y?rcUj&Pi{a%YDeyM z)=tOX@x$3`J3>2O08&+ABd&?hanYKn=pFCWJAR})hO_@M<-EXix^D!xzCzmol}AaY zQqt%&`W=w~L_@c?^o}3xRBDWE(zg>wlhmzoJRfGq>>WSGDc@`Vk%)gWy=Y$29v75# zvAzaG>jt`!Z{S9LKp!%Md@sG``)az9Z|F*nwZ36xzbj#TmU}3-DFs(2C;?~#q`O}| zgcxW}_4G)7i2|xe?sZmAuio*VR1b%@p8=^V@e{6zA9?wKm(9F<&&zkXXqBB{{epxw zgVOi~()gVog$;G*q4s1eH-D&I>|pB`%I3s?SO|zkUa=69D;6~BZT2Q=S6urjD&ckObeY}&sXBmhQ>gIl=G{)I#6$rGDPky2eVbrUsEitZuwtZWXUKRdZSn$f7`?lI~}Gl%5JVpwz; zqAgl>87%vhrC{PBTx!!dr{ai7$EM;i^^=j4_!}0rWcsH}v60a7#VUzCjQ*>8T^)=xI+ueXx3b zCTfqF-R}l4nC;x|F>KbF*}Yp|UNPSr{lJJgl$k06W!62YWbHnunB(TgGG@1C_L4V> zW7c>As7)_yO}uMc6Yae2SZaam5dWg*or_xI5bacaO&L3$pqCyqxrHjHh} z7HVgWh;u=DQEQu2;ER>rk=j^B=by4j#YAL_I0Ozzf#^uf>y&|PUwR!9@Y3?ei1_)% zUmf^Xzxn-q)Sz?be8(BW^St8>@qKmRBjg@$qW06ltLME|e=*+ySk|u>ggn0=TF&n` zS+$%4DkYPWpWn~=JF+e68jOrljNE}6q&mJLmTC%4D2?$IR^NyfMNs=wP|GvawHoRY z39W{1RGewurdo_(F+ z%s+}K$%g0rC7&hXD4m2G=$B*&xsiq= z?ecEJ96%OhM3Pg00NV^5@kQ{+-X6Rv+?zO1p*_H+_ST5Iss(beLmF&W5@i`bGaipk z@OmYk+h#^AsYkQb=0KKF`>|}b`KZxfJNZ223W3U9C=o(o5Foc;gHQv$CDNr^u&0W2 z;XYuT^d1qU+dIC$G=qb6J@A4NaU4xKA0vynA6N&RQ1S&bfz=A|AwNS5!?W0w-HsL6 z2MF18d-k+K$Uab-Ib>5s;bgz4$ZiX=d_RTH)gZ% z(L#5h(ThgJT?pty7|iv?*3VH(R|UmI7}1tMG(fTxH-%&=-6fylNwBdiVQ)q&7oh2+ z{0H{83CP7wxEC{QDJ|be0`al{5>rU6?2;S7o73 zp0f9I-C?F`I+V>7zs&(abr{-QRbn1Y(a=0o>e|e5OxU`Sw#s(KR)3|fN*B7CW>i+O z9SV(k&jJW*DViulyN5NXj@jgd=SxXtVeWNSog0K6=m~}vwT>*=!h-CoOCINucr@P44knVd(H^L~I~9gHqwv%N^p zxTsY!1A7dhpt;9AvV5Gf#NY{8#*$4mU(Emrd`YrUzI14PrM7xS*KWcW$k0?otd>qS zr%=CnwWXs23S-!oj@UauFOb|5FwlvP1-tUIP9!y|8^ z3{ad~q?#kkrhMq;)EFXx20yZW)5&nIxN>-U2H0)NK)AI@2aDjry)%?&S&I_LS?f90 zBLDtc4jI%(NlB3t&P+l5GeDkoKaZJ&2B$?Su9M zsc{Mo89(Wf`;*$yjz?ayB^iN4_g0Qpl7-s8cC!1Pgg|w8B@J=Ie5$CrK8{m+sd?pm^a+g67u3m(mx5=BmWcP($J;UVg;I z^zh5j%4&zoI;#E%(pUY05KNGk(J#Ob_^=7n4YvuLktp9$lblCzN{MO-P-R{U1y}!zZ@w;&@`)u3Ml=J3{SN$t%ug19YN$4e0u8-=~2i zjXBJ~fo&`=)NHld7HQ6`Jpj!9D=xL^r`n)5t`)1@9T|~CwHR=$y-~ZvnSA1blL&)HZq-K04ks9`0Iq4j$6fNI_2w1!`#4;*>1+_w>57c#rqctpx0&e>wOYc;u$}HGiflVlxt>yTY^P?$HnW}E04ksD z`0Iq)j$6fNJ2wD&F1I7)^^}TZJ9hz@Jr);jJD-W|+=-0nwlf~J3$~p{&{z+?R~-Pi zL)5SuXC3Q{4s<(P`oxmsP!id6q;frl5bcnhpee=m?3Dh;6Ih=pl9*kYuK&l%&INbu5@mjiJzp_;^_ha$sb7^jEhFBz1w7Q#-%Y}`I3 zyA)EF1FCg&SZxBd9RB|%{EgX#S6b!2m0RW1BB+BH=0m6xVIUvm}6V+ZzY`1`VYYZ+3y1s*; z)LQFzV1(;0d&(9eYlNrLW>mr%AwS@j`i1;bpV)pN%SoIT`1!X+o3_xzCNu(`KO8)N z006&z2x#gv9iu_hDY4{TXcQ~IgI9}U60X5C6kjf7j#yktDbY5sxRb3!Z`YB*ahdqj zBMqO$m0-Z52Sj<4Y7NCyk`(;q0#8<%Z$LIyX*QQmAk6DC0dFN^qJ-2|awhZgGv%!i z-AXzq*LJ*$x)E^E;~t2qH+_`;+-XLnXSBNK^#Ld_a0+fB0;bXPs6hK(Tto*@0kv3_ zNFgUtjf?4k7pUfJCDlbUGCz{1D>mzrc4xui!fXxHGn~u@|IOBbYdWJw#%(0^aWRsiaa1M7BF6~jEY!80K!)lY4PZ0Y zBqnK(_<}fXi1l?}h7F;A_748-CHRLRHqYMiEz?txV#Oq*{yS?FCHftezddtD`V^&hfXp?O?OjQ*}FaS^VO2D%n#XR|i#MjQT< zqz7i&5@jGul7$XAx%W~~PgRMBq7o~6DOj7j1hF%)BJh+ZR_~;cWTC`r>tlc-)<>(V zN<5Bh;!$2|aWQ81hE%eAgHpu;RFI~S9_QiKE6C6;X9pN!hG7zRz%Xs1qMeDci7ma! z*(%0`6tE%sOt98}XU3?-g8&97=G;7U9U7g+$#5su7 zTBr<->?;6)v8Keo9d$Feqi!xGI_V{bGpIy$IX`FZCRfgAF8iC?<5{%7X*c--)O^ij zx$r0seF3tP&yZzUq1@}*IkZC0HSXkk0J9h2V%!Ob1n1zE^Vnrs>U3`P)Y_ltaSe{2 z{dY!7Pc7Z67LyUE>U`7%KPp++FmkHlhoiT>#KRBA?r4*Ne*%W}4w@>rSxN&SB!~A9 z$L6o#VbSXyeL#Yb{l%P51M1{b;G!JlUe6BuEH zxI}V_&r5r;K^s4l@1h}Tm3s)SbqE1kieur%4SNls%8m^T_}s7&NpIM4EDbT080l=} z#I6W*LTrbqSVv0LDq5Mfn2%71CA>1x^7)BuM)?~9A_P~h>1WCX4EeW`Yc=n358>Uj zlOoHD&ds5ltA*|LfF-X99tHlbF1Ub(2f@0c;X%;g32V7o*Hq#@UAQW+7)vEl&EmFW zZ1cq4!Os8`9*fU~0FAqkQBfYT?@ONG!0@PbJok-mL`@YfF-0%gK)jK+tVF(?!m{mH zh9y`}Lw=Y*H7v<2EOiQFQYf3kaZvwFsrcuLL~QFOiQF3w5}8Wv0uo&mK-joQd0!PS zgZS|kPI*QNUmFGZZumd}Za56V|8nP-Kx6Om2N3r!j!pPb|<%2nnJhB?wncZ zcG~A1}YLt6eR|-|0XpLapE=z^v=&~iKOgwUr zj7J&CFhSSIpcB8o9a4FXL|4jTBs&94G$Uz@nts3T8i^@$jijM#2d2<9k{vP&T_b4} zG?HBuiMfnKP~-IYb1NQc3=u!BiTD>2h9`}x$Hoo zzz#~YjPES3s~xmN8)FCi;5Y3+?veE)iXj-+4k+^+c2K7A$UQP1We3%Q?m&Z1?4UJL zdF?<~%3%iwk?Kfx&<-`T*?}o@?cgu29hgGb4)zS%!NH1(Ty`K(a@YaO>uLw>(Z<+8 zTl}US$UU-tL@@;8+5u&r!wwGBc;xQji8K+?dtwg6>>hKq18|eIP^RG~)+5NYuYKPQ z|8A8Pzjer#r5EdFl(`j@Dg$rljo}Kiemk!zmtBUTH8MCyNbSxH*`P|8dA8=NDaL4^ z)YgTF98fr`xDE3!C{n%UH&NHf_Lg5;FlRl0O8&R}63l+kFeLLE#SqT#bl(!eOHf#8 zcu74VIfzXjViSja(`1#~#MT3h+yq00J>w}w>L$z}{cVG5F1F!Q`4xy6kGzZ+J$dSR z2p_N<9^f_fwTq6Zbf$UjLR26NCY{(;-h}j-Mdq83NmNW;N7cby$=&VMm1=@n;Bwz8 zKo*b2ZeNwS2G_*XKxCF~KR~(7Tv;bjFE84xAblGzi^>~`Zce509LZ-$EX1QX52<8f zD|nYGNQ1?20g`DrKk;qP0*!fDlb)<9aU*gPH{gP5+-;{dbj_Wnx#y|br`x$7Fi;v*iK)2e z7ai0f4;WZm1O~ms$;Xm52}h}Z#30Gsd{)se&5DJaBHHF0G8Re(XCek?7^Gmqm2V|W6$)WfLA zaqGd6aT#Q>2oIMv6ZOsbfn`Kc!0{GsWT~x!OKn`IL%Zj(M1uEjA5O(BE(C=(cU^5@ zVd!*em?~}vcpTyVt@p(6k_9>EuKAGb=24J$3&GwlJ9bWr@?qD_3&q|&J9dWR`LOHe zg|1kyYH> zI$@<;Zv`5zx8l~T+nMoJ!8O;{L4t|Jr{gyrp4^=nIp2c0_y&Rz->}Dfy4yp>_o8Q_ zgDzqR6&G&jYiJbg?Gs~JQ8)qz5Iyf+* zfE^G&57j6nxfkwLuZxL`9*vvYTp~ZLC4i1ErQn)a#LGfn7T{uHff}i2Gas*>9I*^{ zc>3!N7=Ea>d<`<0%Wu#MaDHpn+8I`B_2=PHYjJqg45$Kcrs5|I2`B0yAY99nqEa`r z?k=o*4(raMHNHlxZ;U*8Ual|Qj;|e8HgV2>a>_W@43@3ER{S%Oz79Axxxs$cuE4vX zD;>PT4n#yR-@x^s;YDJE5SX}g5H7i4Q`Md=ZzbUmsKeQCkn$YTJl09hCBNuKU&<*X zej3CeVzGv?QWQ4HR*N`pCyt$})j?Ko3CJ!jabiT5mOQpB))yBZxRkfEtNP%H6DT=0}q zXOCl@bviK~39*9-_yGX-;%2Qvq4kZco5di-dLNmP=)!b7peDyWCbF&n2s~@w0WcIE z5B0XNqtB+&hcp5ljyfb@V?4{#JU+lV^)OSD4*>_ljOB{B1zlsQ6#(4J`j{m1uugRN zmC9M-eAd)T77{q0057S+lf?yHn^mkwWk3exv_;8H(+1AmO9eMg}XdFlfYCvt@_--k3H zXxsvNqZK{Qc8x}xcB_RceL@^ufTM^^TYUm89sA=`DzU$(@S}VK#S7q16ZkqUua5xQ zFAyA|Gpi0k&m&R(siuQpO|`Bbu1-w&gmln} z!YKOU-=;6szTLP^zPT3=mcI+V0EpPaV!9t4uSIuzBpM1tP+{s$LQCJ7-)6rT62f$ds|W`9jl~GjB&@zQV`2)@+Z`w z`d?Mls-#P;XI(AV)M7qb1IU{~G=4CRj{h5g+pSiS_OFEYtwQ^+$WHvi%NAVnkMjU{ zP+SlYt^lk_r$#xP&MdVFX!5bkTC~N{gIHcawln)n)<#@rMI(|By%C2*G$Qf-M#(a8 zNL9<-<+oC}&NIKvCDp}Bs*8+NnTAyV00nkyk?MCM)$c{Bzau-6ESCU`sAl|}nmJ#l znoLfttt1=)}Dgw ztz+3*dkVa*`G&-|;3jENKd=XW2^?yYWZ?lHKUoZ5%S0LY!8EiI0}{IpF12Z|R<=gf z$_jw-YUKcc%Aplv3KPCfgkc3mUak0AdxY1mn<( zBn#Jy{zCJ+Mk`E1D@8zJABc<5%4X>+apXkmEAI!il0d^8S|O$|;oC&W{;-`_3%=SO zVMnO#5pHO0N6Kx1m{MM)q%6t8rMwzY0PI5%E`Bf#DVG3=eGo2wDHkIrl9WFJ7_aTO zL&F?WCZ}R@;&C!9YyGd<;fl%aSZy%4-FNZLEn@^B+Lnz#EK!8v?A|0T;i3w?|GS0e?yXvwc<(+Ju$0w3WYcP=x-* z!O~Xy_*(}>=x-e?ZRHp6p&*k2{!9s2l7$O+qY?0q0BawHi(kMyASaT5zo3BGKC1|A z!pd6O(%(2JLVx36Y0G{5t%D-;w+@!J^b7cKkVygaWA<*2Fw;mTuW#XX%J#E_6G#Iq3ij(m_Af4pDKt2V# z)k#2CD$`wah`2&hq?QEYxQULKhK_at3j1YTOb`7zat|#A1ZkSJQ<>fZ@?#~jX8y{- zP7tWPkH5CZ(#6n&wSD2wbS<|MPzZ@hvT*BeAd-Tt8dFxUcx1K3YtP%Gn)P42lA>JB z(R4Yi944Kt1ttCxkBqVwloa`kJd(;8sFbo5ln8vMiC0R#CY}Nx$FnrYrHW&ftTV@r4ad8YrK^J5e z3GPM-&W#{J`EZClUXrD7M;C?LpbK%ENzetk%_Qi8%p$=(D8YGp7ww|y*w4`6FSprYeeeS01>rT;@R}2zJQSf9mDtQ( zap(HGT5;Ec_by^l7y#nUqFnu1z1pb-{hqc1zEZ90C*MG223{>d0Rjk>tn&a-hSu^> zYIlIM7vN%otlwmSXo?&&Hnb+Mi&&4jVLn~}gcTGUJFp02aRv;JSNFs46gV*UCyXT- zFg$MD55rU7z$hn-KqN%gAbwllOKj4~41GrwL#)ivci)J;5M@-z0RRn!sAQcLau`|z z$RW5%49qm*x)lIkl~|5zVi_-Q^Rg0`NE6k=0mNo)u^oBbB=cVN;E4c5X|P;Ac*2eW zc~!*`dbR^E+rj&O3ru zh)(z5LD(xFLNlVAU=T`cL3pCKExpgoQioWXW*X_7go-xJQu?J$D^vZ$ z=_XF0=_ad4Bf81oh_cE zAVMoDSIIhS^HQ`H_wWb6RV9AMHSrrSzw+`6FI#x|nU|k<`H`0&a51_b0uV~qu@C-K zT@Q5-#s6GHmlF}0u}XN!wc`;1(MZJp#-@w9K#vq6_PKFidTJ(D8}V1f4eEN&&UU0; zbpnK1=nE$HH)8>`dL>CG$azDR)*bI-89%n5x@>JVBHZ) zSaFl=rp_o7<2=}z{|@&yRzBTn95N#K8{^axbP`#emPYVr*d|1O#`S4+zU0r92#+iF z03XIhj6kd8R!D%o6ua+LpO+fa=V3OeYO{~w*zStIc$#8+DG^oz#4Dp(?21p+LU`QB z*q9rqd&!n>CR4FgEY_&vub!sYp=m*8Yq3vLmVArwq0)A+S0{@v2dXR@bsTFEBU_bX zO2j&)8LFe9U9XsHC|S+mxs<9NGHv~RbL=UZ3=X^hF`(4&RBME=6N@I0cO>( z129bKet@?SU=vW7&jH*>2OzIjG=iFBGnugBPL{ZnEyYQeMYpQwS9+eL`{u>T_1OUw;iJfE|F)Q+ z?B5>4EFL|#r_e5@jhc4|?Lz&X{~uBhO77AGmJ5N>9q&e#>aG|~RkyA4XgXFiXf+4l zRf%S}CidfHUtadX#SEI`P!n{F$E~p5N{E5pYO-?m*4Aj|AA8ta?-jajlIr%>wn!OY zb|2}Kc&-g{VL9AsYCJo4nuY~!HW`)yj)b}$&T55xe^!x2!u)xzCs+N_yME?_?8b5q zWH-x&?B?ZwEM4zGa!W?7i~)?fVFTC!$oI=Nb6k9wVC(Ks>|*)tYY>%m|FK=K@9 zG$}^Q+0}dza7MMf{s-Qk7naJq06e}_F)#lxv#6^MH5Ro%iyIVKW?Mq9PF)EIaHo>V z?ntO1X?G4uB{%Tp+0je;_fW0g?oUb|xtQF3*&jpG;b4}BZ62@6aRhD$CgbgS4V3W9 zaOynV5BuX)JYk?*u#4fn2>j(IkQlvWWs{&c7J|V8B5=7BT-K!LVE4sRvU#H-$gl~i zFYJ1v%0nGcGN+1SUD&lfFZ5+E5#5{u(cKh+u6Is!F9RJcll;+r`F(G!S*KgjTG10$ zTyZmt%cYVQ*L2dKO@AjTTC(czZ>l^*e{P9ie~{QK#CUnw-k1L=a7Ox;Z^z11*|EZ% zBvZLh<~*r8YRYlY3a)tV-|QZF74Z2Tm2zQL-d>u)EPTVVyeC@ake=9)XfsTDous(D z7h!;pS>)s2NLVwd{yfvR-;RZ$@vDo!wL~)-OaMjgh%wDmO|R|l&fmPBT%@VZCc^)P z3GP-AhP!FVC%F3^!QIcTKBSnRACm(_B>Zzl_c}3zs^+#_7$U3Y4ZuGoRz3j0>i4Q& z^NN9lAsRL>Ao_D(0iUI-pSzS@^sG=4(B+x)i-FX=A zK0J4_7+tDu0!6vrO%JJGoLQenWA+^Aw|+w!I_>1WZy0}yuX0;=D0w?w%he^Ac(1us zuEiVYtju@s7l;+ChK#T-Ln$#!aow!qPNbE8`v?`J8&$F|CEKw8PxhpOboNgu<)icq z>IaEW=`s{sIl2thy-%%($i}LW9Ae!nVs?m-lvv9e!VdLUA(c0vGP>cXxWUU`O+u}w zhbdpzUeiVHL06Zd>W4?iSD`)-KLb0hxQ1;3>N5d_AD@$s8su8Ta6$C@!f?iv(_k$y ztd+xKsR|nMd^`hCCtFwx-w0NoHCzX&l{!>jIb4n(*eFOsmcLqsE`Qxc+D^f-Quwfh z(1}n(@+8#wl7v31nLd&WCogn< zn@~}Xx++PE}5l)|pj}@w#@ig>~9Q z7$TQ&h}^z7mRiz6Gx8go-u8Hro?abI+1#yUXu6g#{0Hg<`vsWYifqgTrJHzWf)RHL zmlTQJ72_ts1=EPPd5(Z{1pju(vl=WmQ=Y0WijMtc;Ny7?bLY;LPHx?{T2ybyCbjKV zE&U_p#rf?CeKPpX>55_dGnDP)HSSpI7|;+lDUhIY3BN##Ked4RkP;=EL0!1CU8VEGc`8mpp;}OsavNIn}ufx`M{iK{%gLOlll@P>Y;5 zCj7?%TCA7nb24{V@nx;|@EPV8h_ZR*l6T zf|HDWiT|m>@RMv#EeQPzKLMf^JUmdV_(7!m0Vy;@v~1sLjH9AvC~;II*`lK6r1I&) zsPt*5u}?#uZ`@NQEr_L{XL2M>Bq3&yQqtEQ@EMe0JivoEc0k<3o3$ja=g84iUh){- zEE*ji?+ERcjV9ZB}-Ho_+rLKYF(d%L%DJ zV?k8~9gkwUMdI?Od-haAwvi8K0{Z+3=jAd-c${+t3ta;Fz7Ltm%n2Fp@SlNh%=I_%CYZj==NCu2(wWMTTU9Ab{i zXRa$&@FyJN@lt{xJ@LaC!Q+SN5xf_3pFrKZdp~FB2B?NMV*~u)U@b#;BWx1qxGhU| z-m%-nQYQ#uHgUtnce>m0L9b^yt0aMEGd_A8HUdR z5JyK+C^|Y%!8Tk=2QObg`BJ&^5QZL0^>qxVoxBBviH%Pakf;1kNY?q=`rUCsTy zOU$P|uk2kHC@~NbvnuXWjEm$hL>a35my{eCVNqh0S+`%+0%HJNYAObcN`44}lj$yjv_3QS#$!8Z>|T!0kR1s1SUn5wi5GJG*8l;>q4F|mn(BzkAiQ-I2h9V*A0Gol_uGzCS}q|NQ( zDN&7C;MhgUF)+UxOkA?1WLK0!!us$s38lHE#A3TZWb6bNGf!r4;n@=6)b<2ja*CN# z;0ax%KxTQDf{Ifls)$wG@AS+e$d%%!D3;6 zUGGFdM9Q}_COTwZ5hPQJgv=`)GAUh{px&?;iOk(Y$s87mOlQ9GfTz0;CpG>c-{yJ_ z9InlH!g0aPB=+z5bWe8@(6tLXIal*Tj=rtAwh|({p>o_<{(XK-LmYyENL+$_r#>fE z>Jb7Re9?Ap4f08edrT&?&|@}EVMr)jO%}@l(9xp@suhAspLW-tXI{}Sr3j!k0N8}W zTy5-~J9H@KTtOMTQ-1{OTXjL`be>rA5O^aAZ~q+l-R6x$nvY`hHY6wil$1RuFeSZ~ z&CA(5FeN2O-_)&)$Yn|@gSJ_%yN&?f^G)08Y+{b&oq3Ngs30 zwf}G=?Hinqkd(symR(_PQBH-)j6?xDIXf`7C?~MOw14#ft@aoH|4I9kB57YoMFHji zGrPXrqMZ8jDF3wVz}%vozzS3Tng6%S=V!gt1TbDP*%>K5lw6DpYiJwiKokW$1+@J$ z@7mpD3TM{Wi8}g(EQ>$9lQAXXYe2h$I7jqEPYBm7Z63=#pOp++r)>) zFRsss=EB0zkUAwTEPkcV_Af^I(R@xc|1As+sdJQ)+OsqVHyepY78Wl;BlOO|!r~)g zu17B{vPG`WE(?oa0s%rWazc_i)vEp^D}G-Q`9oZG)5u4)HOp=#h#akOayAiBL2HW5Wi9b$a+J#EXL%ybf->eTdUnQj2c^FEv#ZZ7%C9~JY*lt(Zc$EPg@r69{`ng6&Q^BF zr>WR5y<{r0%kLl+J-h7H1v(DSBN+}j3$U(c)?^o^Ta;6n5=>f8h8c#^*Z0{`xJ5Zp z6r?Zx?0{~}w*dBM%`TfjUl26XR9kOXYH9I>wo_0hG zk%zCpc>D=ZyZV#o*7PU)fP8VB!kReF{gfaWPBZSsdR)6$#WN1)%?#(w$+-k7F%)J7 zD$hFn!Z-p?K-nUf$w;8mf(W8}a1FC=D_*X|WB&*Kff6qVSF+)p!PlR)eWNAI|GX34x;cni{ke#abr6;PxrnM9 zM6Lf^M8`RZtUnh~cL&k_e=edP4x%=HE~4WdMCE@jqMi<-1O8k@y&Oab{<(-wa1gcq za}k~BAWHnXhaw!tZFC^t0*A?Y5^C^V# z&Jig8ucDmTa#Q}YL-|EP%B4ssznGLWP*9Z1JgN}NyF{RTfTEn(a#KFtp?qMFaw!tZ z2a$3{9*T0Al@&sHw+NIER+JN4ZpvSAD8D2~xfBWImy&XZGKzAU;}t@ARRqe1D9VW~ zH|4K7ln)J3E=5B5Wu%<3k)m8?jD=9%Jp$#IE6Ry2H{~-N%C87gE=5B5Rixa%GhH@> zIwwY$D1*DX-2=lV)FFC4Gw@`aXevYmkW3&=LV6y!PBp#wk1!|kX#a}yw zoa%h!m_aRoz-0Ro)SH}CK5|TS5Fp272gos63Dh>({@NkZ8Ig}1GjIkFm~20SdYkgd zZA*?BI|IaT*3D}LKE%-p97m0s z$_2>IFKcsX!>eqvgiZ47TV2F`t9WIYhrXPMEj8xlZe^quf1w7A4i^F*mf~0!n=^2e z*G^{=)!Rf>z&>1Gm)O&{P1ba~*@V9g@ZEhT-SAxB9OCjCig}_2Dwq>B_!GV7bt%D* zHweLWXXiwXIm~^Hbk}{~t+740hlVyG zn8aBXk}V$bEmFD?*#%Ilk&w76{FI_|<~mVhz9N!n#Y)#YR4yQuB5zPB*+S(aQuz+4 zEWi#78fA7f0Ln4DUV#%e7AwMt$=T{mxO=RM-7r@@idf{y5T4-~-jkOtA|di+q9_dZG-ol3Td z<^z)aeqkgVEXwr!G%MR94dJ_BK2(GfGb;s-o!H=zz1mB*WDD6Jlk8O_y8u%(NR=t( zJmKRL;`v~k;Asm`SxtTo3ZXY*a!g)AlNOymqbxE@aKgu@EGd_AaV~2C#8I&nimcX? zhY!g^-L29us>Xg6M7z$urVT{1x-c}Pj?k1woE;@9nNo5Kx1-O9m7fDsCvxq4JY+>8 z9HZjS9-Bie?(&;)itnQsa!ONQZ10mX2;<(u9uh*~*G)Jpnt_}8X>$yOo8>-Cn?vRG z4Q|H4X>yf;awCYraoXZJ%axaBP>T)YX3#Gxm%-l?)Ox-#ab}Z-`!p$uq(^WU z;-MLJd6qWo5~a6pawDkX8LD!3X{;1VV`t!CL?OZbUQHwsJn>Emhx|9OV@5s!x5s-B zz!xHbdq+|Li}2N|swixy<^qPb!L+YQPZ}A=gG)f+?oEPGGCQ#nGGmaw5cQK^YOds7 zPbPSHBH*?ZUhqR5rfB{0E?D}?!_vcKDX|6FiJx(iFNj#1QNgXHmi21WD@T!s_Yt^( zhp$w~w}K(xfG+3}1W}WIA{~bzKR7Zjo@M;VJ!W=q`jG^DbGygdG1;vzulPpA==;@y zt~|}r+8vdw-4RW}8aB!cV6BjKX)2PGAn6ZCbXzo)_V`fZ2&Y@sx<6-&e}75*d+I|rNw5jq;W&M_-Um|e zLsf4z>m8I)kE4OF-bbu=a7I0ThQe3x6V}@wcIkG}+Vt8oxQkSVyKpE&7XW?y!1uZ` zt(fzS{jLQ-gi>UsCJmz7)u2;W9D<~17t&crl&>4F}IQxu+4ts&Z&speD6e!$?LOJeIq$w*G zUmz=aAcc!=DffDgjm`kS74o#(19EM;uI4WTymTM77X?E?fI@%DUZkY|H|oO~;5%q0 z@w6k z4lQ9lI3zB$xEwZCDd~}T)o=-tHo-8^Rj)dF%!6Y@y0jODCMX`?;Ken082RfRPjUMr zbfuDR5EhBOTW*mc>_RAAJS9I*W*;x?&8!A@_(WM%;sj*o_vN7EzW`(PL2auOF7l1C zlK~4?c3L#lZh8R$!Fjq_XG$Ubtz0E$wl`uZo z7Ga=-a8IXjKjVj@oG`35{aE$+MKh`&t@gz|0^aZnS<^*LGs2h#VMrf21Mrf4$SGKq zdkBk>j7Sf+dl?pEAkywDEPmD%xaW0)5p7)%(TMgYpMOVd0RdC*W&+4tyPIDRc8BwO zq&vHM3skpRy(ayDQ$FuF3=$JdZ6alVV!L=rn;5&!mtAAYeq(rh7XK zw%vUBoCE6oVp*1{#LPLCJQYnTgPoNOBpD)uNJbu<%MGLqP6vY8v{=B{s4@^oe+=!1 zt*Lx;^Uu1{%>#z=@_%jV_3~$s4d_trA@mny!7JVZ1!oHVKTwBn9}5d!j?74k6bn8Z ztp!9)`uAgv-M;H6aw8S_jcdWIj?Zs6N{Y;@?0}n-)8GD5@mHj+@Tct!Vy|_fO+E>Wytz=H-%~z8(LYQ3n`r&7IOGDhqs=y8CoEZAH>j8Xgb!-VZu$@Zn1ZMoNz?JEu2cY*}_Hka)i$o3sk zIlhV8L=DNz@o6aJHpsi)!x8KvK?8A+)%C{1H^T}30F8`7>4c< z!(z$X0iNA`BVpBw%?YLt9>3eo6+~z?Dt@Aw1Y5ma>$ixsG@eAml;9 zsVFUf3MoqNpGb(x(o`92-Xs~?q|*uZX`ML3 zfckql94o-0mo$vlpl)nsPxR6Y~ol5@7bCfe^EgG|K5w zq7ndsrZaA0BuwK$#ElfqRIpQ^cH_12^GklaX419sd#{b(0A~svQ_phthajv;e{qcw z(mL_BYvFA{!kzF5>KLLs;XgXCTW=@hkxja4(;rc=};B^r0Y!W6hBrnB{ zcz}ITvx=7~Rq_t{4RLl@z&DXXXo6L( z64mfiVXHul4{E&BV@o0h`2CN{dR4qh=-O0x#+zw{e*E#(oKxePd_|M+S5)Y;L!XA_ z(yGt)plUB<(dbkAW2uTGj#$Lr$W6}Ht@cHte6CLHhXk}(7#F`a5)l<;VW!hO4>Qd} z32WgctR)h{jF$^7}M!+OQK?wD}{^2c)g| z%%jBc`7?f$SPy>|9VO!C7)mJRVq>y%;vfPoNva+;lN5*}I+)o-)F6gG=QCyI9G<&XTriO*uG=>HA-1Xu{(ik0Lsp)j994CLfre|`YFj7=5 zcc(GN$8WEx@A$actZLQH20KfIou@cHKF#s*5o9JN;}XfY{=oIEt5929fjmd9O;5ZA z4~DL}{~G_eNJLoh9uEJL9?r4wfopJHAV0Fyg7F#gIx`0A0i;x6f`z1qTdn%?f}Lo% z!rSt9B_Sl=rnF!hKdN;vNrouBF5}L=MoKB*wwH;NCQ?cuyDCwQ%*1e9B1vgKzyfv6 zD6Hipd=n)Ca@g+G(^>&UB1;~<)EQqSw~2+UBK&W{2&0Mh3F=@LG6l1c&*&lOg_G(L z{zi;wMfYEGlVA3%p@I|gfw#D+gw$}Z#BV@cg4+~K=Kz|WR2E-J2GTgcerQaIcsX*& zgkD~iWIaW^ixDvm$X*8ov>hYjE0LMF0+&c4ZmdMSYlw&m$SdLvKqN9d8vEZw#Kf}A zL`**NhBB5sOexGqW7Q^eoGio|st4HoUsfuJ^h3q^cq)aYpwAXs0Z zp|uGYnB7~4$5P)i%pkOy^rma|bYOJ)dx>CN&H3m#hqqnM`qrr_$Aj%5S>Dq&} zu=?%hjHsG$jm)DKg0keVWE>pJ-Dyx+o4&R1apJipvf?-l-9v0=!gFBxH(`0nm0^GvKjEcwBP@c-(XaI$RMl^K`g) zY6Cz}g-&Y|du_(L1tH+=iT>?sM?c=bea+}c`}a&1lMPsw+?`gHwdpli)Hmq5M=i|U zZ5C#j#&l@uV_>dCn0xthFgN#dFt-GmiN(Au!X*!zvPm>G7T~M~fMb>7qSm#4qLU_s zn)J`&nSX$1HjB376g~F}84@r*OAvwRgp_!P&Yb{UI`oM!Vp$m`PK4)NU<{zP$N|iS zSfzMhp-dJ}eo82#&x@ zRjJ~xj)0K{t8*^rQxfyFK$)ApsOgIN>9R>zQMr&A(orJ0FumM$5kQHXeiQPx%Rygl zdKPWzHP})lb}ALG6M-RrM&UP;M1XSrk^63yI`mny=<+kdS0O`T7xIg4oA?hT_2o?kS3XzDWGSi%}IPFh3`{-xanb0`$3vZAyXQp%>r)F-u9;=vOc6=@darC`u-^mVO7Bus%uF zQ%f}fC0g1_t_O*h{-AWXMzy}10YMtVrw%n7-tTtZiSEz;fp6@_m0At=uT4KNIu6cW z9S}OIpbUV!rAZS>=NNj>~BU?&aNeAY)C_JICFlz;QTWBWF781cu@Fy z9eiD?`5LYGl4L#k>T3AehvtJECI#QRC!zkAn5Y!!%4iK>P>9F*Zj{xrk z#w08gd8WsVo;|duQw05?D0!LY^H{~FB%1RvQrEd=gj| zK24G4^D50}rQ%bP_2jda;Zu|`EWqbAQTZ$*pFh?@RBS?SpwEYt>!L#UheECEP{b$# zX{##~Ol;Y^EfoGRh6vm^jOalFo)XT9CSdSr(F_MH4vnpqXe3!r(d=zRBl^1@2x`-= zsn;MK$<+68M8hT#MMG@SL}TZ!Y8;1ge$MdgO45*}C3yo-Q_L6 zdBhnmU{AOa2x`;f4BwCH4CRwMEja|UH9aCWaf}(tT}XhT#^Lwz$v+uK`7N8|O=JVZ zl-%n{Ki?^WMEJ&$EQ&CVY0S0c=H|L`W8IDxPBW#S+VuTo=xJf-5!G$(LoC&%s|qb* zcrj;b_ep37{jHQYqL#`VQA_bgRL$snhjP71-Z?spG9pbr89nL*E9HPFLgGs|$y-p7 zLXx{fQ>BPDL}rl!biGYDxs%p;@kCHG8Hj4r?+$^!J{}S=usi|~q+w0^F?SSy()~G2 z2J{z@fj5%CVRQKqf|_zXLe3zRBLM^qO0u3DwKp8a$kC%NN2|e6V(a}8{Xqw^#nyS* zvI&z9N-?mP>K&6G4v8fn)4Uz3c#~uZZ;^Va)>fI}Z3|G^j|*>aQd=vdYOA$CkfvDD z9Af;A?W*e~i97E(ui{D4Pk%t8MKh}%CWh9&6E)^QbM%X6pj^=Mtm+sq>CTg7w|Ge1?r{@@X;w`96c@;6;)l zywt@;CKz7I$jdXr%PZt%epFuW6$sL_COvboQO$gpnFV4a-<@0W9O>6Kavz#m#k7&* z4dy^|*vM>UBd;kNSx6h{s%>QRx!OiH9|BpD@IZ4zh`|mU`R-h?k^3n=+KA92HZl=e z$!AF(;ZGSU(FDX zlS9~h?ij-0Yu1ohswoFb*vaNgW69^q2<&8UfB-*|tS3Kv7=AjDqN&2qyh}mBci<;c zfy_ilTx6X&`GOXt+zWgy@nk$X5&;$w;WSr(A4C=4DS%+vXeh1y0yM@kZV0w{-7k-6 z{()`NkcHJ{`O*4-^$CL+GGE63AP52OGx=tG=!8TSx+fDd)&Xg3uM0} zOpBD4M`c>}xKAh3Yz+gs!mzs7?T~Me=8N{rM$2wac~OHcuppqSkn!c>fYx1X`%2_} zeO)43-S^zi^UB7{078N2S2iSBPk}TrR%Q3bL+tzae^O6w>BX-Gq0 z3r8Scw*4huQ8iOR$_y=q9h6x}vYt{n6>^on@DimkOQayqWClB*jZE`==QOElGmE?F zL^;;CrWN}Dx-5)IZQNVl2|lB&;x$sN-SX*S0KU!x;B^mxGXTIk6n$33@0*B%f$W*c z@6)i)_T^H!PXlC~&8ja1V1p&qat2yDjHovb3FlvgL+342i}OAQS;^U?0o_pU9-k9w zFbuvRbPkDn0}yM|BIn6btxaC6XityD)|59~^-q`3RRe}%Y_buFobxb8(=GQ9JE;r( z7pp1F1!hXaG^RACkefGMZZ=|qmN*%ik*2yA0*Li3T00<=N2yJF#-VrB2z?y}qEj(I zkEhez?Gu^VOd5j2w$L2o)VCMMQm3(aWIA260eP7CeBT!jJCKaE=QU8mV+_9SYm?S& z{+q<`CGW{YQ1_7`c+vti0sI8Ba&%mBo93o!eO9X6l898%H)K-f;`dUudv2=MWu?k3 ziAWWFSteC3eod9NP^pZe#TihUC2@>V1k4$6jE+2hpglvvn=j>c1;!Arieqv+v-=*3 zt<2*-ez}x=c>qo8z&A4A#sBq^;K>~{-)trTtYe38-tc9a?qV0=<$O6o1V#Grj)BBg zzU^>*YH4k#x+hfH;#r2`f**a&KVg5Qj?#8Vfr(A{qyYu9tDF2Cn3ufI^AO-Qg&!#0#1Y>~SZA)eea8+UP)7?8-rPnGIZI zT4S${Gts(ZFou}>2Xly-IGBCX9vn+etWdLo6@y~QL&z8Ot!D$046&fP@Z-z|nv$aS z!p~!aK*2Kblh_TJi6*$H*+2&^SGjve=DHwU3Kk>+di)L`Jj_M-6cHYZbfmHDZGf>l zqPBp*GUGtgA3t%U<8=}puUFCWGPd~PQM4eEn)LI09KAuA^z)a;Qsb}&F1^1aCP)dTs^ zWc5I<5PmYSr$bdGNsA>92VClUIc_jzN!C->ZvvEv{t=443lQMFe(G98Ux{=i(a)tI zyP>v#h$8xVY$2j2l5Hk>(vVg3PNA`j9HKW=Y0-BDT#EiJ+#q^MhKRl{@tkuu$x#&j zu|S~R#`RI%hQy;gv6Hej-3FY+X9MXh07J#2JJ45fIF@*{ifn*>x!05aEb-_;{Vv#;%VcrOj7OgvjD9+0FyqnH0|WR8<_n2OR}Z`+H&y@6N|jp@ zkt%wUOsZV`UaIcQP1Si>sd7sqQpI>QlPVX#rph`2DD~iW2~=juNNN-TbH+%ji~G@@ zA>kE+c-`oYNAFT}XU3ze2IY)LGd#N3UN#c|)=7g4jz>bo2{yce-Asc$0d%i7fGGG2O)7KwBrLXH7s0r&)+=_}+C5Ltsd5Jo>aU zj?8#e8AsN5G*h@Fx?aX1@#sB(LW#@W;V7%b>k>{mtJ9lqhp?UjqT2N80q8{w2G%7W zJ#LI{jdRfk8B5wQ2t&-KK^$VflRkMfobV+&9-TiB%k1RKjYlOJVnKD`$B9S3AwSOv zKNA^W&jUY+uaTMf3KtcRPSJ9edwt{4(L^}aMfflgK96*yvFvR~!kUKK0s{Nk1{f*+ z=*FX4Bp&_66OW$4c$7%6LzD67ugav;h(|97iAPrq2*#r`(H7qFXU3z$&>`Kg4OLq7uK}(n z9+hN>=nINR_oV3G00QkcwhoBsHY6VX%(SN4fU{UVfX)IiR6JVU(HoD>Asg_5a<3=- zS>n+hNY9%tH=i*cZHUZBhNRX<(b@r_bXA-7c*2p_$%fDMgK&@u15S3C-PTAvnnpaj z49(FW(V0@$vRKwfk(XtC)G5(17HRdnU}G*ni(6(qI*P;kwGxjm9}vJ#FsbXfKDvBB z)7(_8cW?(+ZQYWHRMC@UQsv_JQnh<-s@7$t$}NdV730xNs$Beu7k=f z8A**IV9ppxb@2k)GbB8JAg^1!@#r3kt;~3I>A;-vXog1@+skGG!1~jmg5%KwapjCh zGhrIZ8N=P+#1lUcQuO2MjYmI){OK3u?sUCM@h0_j6ItTX)wiLK{{IK?|o@ zh-;{EUBmS-BsU&CSQ$rVJgST%Ydo4MToPR`<526PfI^Ay$-Bc*R*6T7-}Fu;XGhKQ zTOq7=Kv0{$kMZcFr~`}asA0pJ^bOZJ?|9to{=EA-ZWO=kI=-@yI*&VQa7`XUUJ#4w z9W|0H)Os{8&W@V-8vJw3j-B;!(|E9S!#CjV2;uFW3&7hq7mzok^YEtL2fQ6XtY-*P&Fv-yv z&;XH1GDPEbG2`n*CXh-cSvndBYSSW>FCdjj0;vH6X&Azy9IRH!=da0QH0{?b+9g>} z+MOJ@Tz12Xe)<>`Z_wPL0=&DV1YA^3W3H?jeXlDmTw zo$#ste^Mv>*Qa2vN|?KW4rT(q=CMfUVb0SDXMYP2Y*LfHmmu!Dke%?}3uCEfhv`n( z9i_Sx5*J>$bX;p@Cv+>jo$zOLLW2S-2k_)^0OaX}k_=IKL7i|U06{c>160f0REm1LnZD*8}ffbCT*5PRY# zI~eP%w(#;ZFF)}z9QDoix)T5guPvoZ zQ%}IF@~<;fjM% zx07(QPWT#MyBUQR2-+S_FlM{sAa=KV60y{*JrJ>3%R+0&F;z|RmBn7Cv$AaQJQ)CS zb^!Stx$7V?Pnl*ks~8UiC=wx^LbQg)A`)7}-L5tz!)Bve4vw|Qg)`GWsLNe=$q58d z?gi5~3mAjl3#Om9uKM&uR+N9&D9Z(<#F(cd3u;Y^Tt~KQEJvFqZx)hn>CPn%WhJCLsC$i2DvODT?&{*@eS|iA!b{)Yef(5l$TjR{<4-UBCc_ zGiUESJ@rg?=lyPEJzW!KQ89rDBW7(C%sJ;AP}EZ|n6vVK-?yr|t9yE8X9v9hKF`*4 zReklv`o5~J?y6SD>+HDM%;LEubBp?5#|9+HPcHOW$t)Cf^v3BY95bfy*o`TFkx}4v zpY*2hov)LN&u+HpTJ5CUwm!YzT_>ntlSg!}CF4M#m*G_>~Mg zT}Nels5uJ@FZ=i3tH*iAG+oj9?obzIQs=Zp1aK%U$g~GN-|ETUa%z7bWO{1~&9!p_6_HDS| zp3(93P_~^n)V7_sV$`;D0W}X*>vyN-er@v^`FX$%`s#l8k)Jb<5OEca@P>>qOGda) zk^f2*7p`D(Ig=SoE@N^jlS`Pqjz%v0^SqnjEffUrB0=YVW_YgrFT}{;yUT!|E%7n5 z5s>xG5v-oFVXnM$KTM5|?R84)95jJJP)4WTus!%IY>}#guC9@u?{#{_+twav zc5N%)C-`U!_j!;5$k2O0EbF=hrw&4CNLhGVPom~v)L#BLxM`cE{Mst!SAKL3t! z_CuLj!)6XcCZINgZIMWic;GHQ-UU5E(sRe=%6HMrsYmRATMx`$v7TiD-zXy|k$#YS zWJE|6AKPo@XvBk=qeEhka?r}m(LWe{0W;vw9ZT<>IeHKiM%=@}Qt5qw(As|?vuj#r z|H{k&n>m7+g3a(0C?m#B|2r{qAP%!v5##^BQX~dG)sxGwWtqhXoGi09q?vs(*7=jr zd9b!2@v;Vnms=K~4SLjM9$yQLna8pFx%@!OJkEfOdth)|T7ai10B=&uPqWX^qv%WQ zC0nRFtG}@4?w*KC0s9QX>UHK1qp|6K?sZKQ0*e6^X`;J3VWV#cO$q%y9pUBK$o0*JE#8mfG z5gC$v_6DC*H;xq3*C|FvHrG_lNj{^ekhkAh-cCivI7F9yY+W=#H~tCwSTBRQii4cy zGk*q|U(YgsCNc{`u?r^^`)j9IbFNFR9yi73?QHV4zUA$l#(7Kj|K5(9uFX6ZG_(7E zkzCpSe=a$5L7M%F;^R|uUjOgiS7U}N+IU0`NB9{ZI}fep20|$}xBx|w8%#qcKg23w zI!QTqoR6NrLefAw!>)d{T;%h23Hd8o{w{5tzlM!;8E9r3X{cwU8RX12(oz*hYKlVB z6x@ia#mV18qM^1yNT0NdC<5w-vr!rK!@H2lZ$k7KtnWsqPV;VxCO^%{^Gk!d z%E)t%&-{I4exzmo{`#38^^-BbOikt=@R@&z%x`9ye;Aplhs;M*=EsM<`N#$?B6mG( zKH~HC7(;O3XMNtDCvRgdZ!at$-j+%BfL`_U_M*?*%j9jGZ_wpF`%iu*|=WOoJUVIoavP9oajenLXLrl3dv# zYc4tSN14hyvQ7KD0g7YK9?dT2Pfgzi8Vx_ft>Nc=6h)@|0Ga$&RvRB8V@$b6`rh=X zThQoN({vyC%>J9qPO!}W2bsupi81}ZsKN59TL$6kPQc|He(6cA2|c`3%Q(Co(W-S3 zUT)l~dv#uJ(yIGGUT)T^yDMIfZq>~UFUPiO`pC;ITQvysa;sJiDZHG}stC@@iLDBO zyxgW$Ud_vGTNTxLxm~M_z{_1*wc5nX-CDJL!^_=UwFJV;Jz8~3&C5Mobwka|eOk4k z!^_{d>SlwN`?YFb&&&N=HKpX`0j-*o@$#TnO+I*eaI2=7ygaN`VUd@Ix60Fb`R7*o z4L{LA9p|NCEp2~-EY=fOhizu@B=7Rn07|!Wwv)!HQ(@RSX>5COBJF28`KM@>uwj#% zmwkpBoo66$(fESETzBNMQM58jwCsbb&O>^F4;}z?=9*Wu(>+OI7 zn6|}_)&rS`s29^iwt*}&I?U23J!E9zA`};;+S{ ztiE9STeL$E%~&vvYr4B&x&s;79*Ak>=(cu8mhM0{wNyo6-TG!~sfx11OI1V^t;m#@ zTrHPel*iWx-EtK*1ISO>qpt$&44U}Fn^~j{NgN!xPO%Fr5jkxsdBrl;j(~CfX;%Y4 z22e?WP5T#j@&I-tdfJFnAa9+^Yq3YOyRFzAz&x9yv@k=60uORe4C8xDl2LcW7dF!! zbG-NsNzQgH+++R`IoJ0#2S7-c-Q$I3*KM~zjh+f0K=8cZXiGMtu&zJaB@K^E)1t1| zY-RD}g-6Dm$oABUj7hFNW4dx{%sogQCfJ&2n)4>xm@$U|1u$)d9~qN*81pR94-W#F zq%o(UxNs(uGnkyt}Z{tpFAgJu%9$()nWDXYMmpnf|34N?-3k zUH|F;8`b;Q=a$>NxTVVTQn@Bh>RXyPeL*lzoaBh|-mg%!RW5%NrL4<`{~^fvb=%G4 zwnZUReEynBy~lI+6XEWhMCZyU(%XP6BN?`rydy+jG z1;N9qKy)Vq(bCw%cV`PGU%Z-#q>G5uJ_s=6@&~aK5;IDoC|l|~WE!bgR1BzAv3B3$ zg=~>mJInQt$tNfN-b}_t&CVX+B|mM$fD-fy%Rs{ZGr-0@(edKBtiMckf!i6y)!H~~3&D>%M3cJLF z#q$E5&>L>FB#R(_Uh+>^1Vu}+i1)7-OC^!IE4AFzcgPilsjTVIw>U$sRd2h&(m)(p z;s48!+J_vZN9WX#`g4lUA@yXP6}N?;APBFRoh z!2%w9RuVfQF{cKft4Y100)tO>1qPq1*dniL%XMFJUC-dt0zmZv;ZPsw$0GItsX@A1 zSC+>(6c0l^J*_SR+Aj{NKm|n5?F1nj%HERNyPp< z=|ESdnKD7tD41W-?Lc*{$Hf|AzA{kuY$;yvfvs7U*#TshVd(}j>o+Q(>VG~^od!0l z4^(SeZu8=H!onC<)@Bi3nYc~@M9Rs~N#Ej)o=yg$VPwGnFT=(<4 zE7i9Y|K!t(8$~q0!qn=(>OEx2T0SY>>e*!onnm4?aU*)jR3ZnAu>u#34G4S~T5Ao? zEne7%Os?Fn!Tp&;;1I1u)0{Wi#@65-!`%lkJ*s;lTrdw&Pr&*^cpJzh*Wivvap5>7 z$1>?;atxCYpl%KBai9q9Ktc8z99vdjgPVnRuw2GNrnsiNYj973p^#j2P1U$RMRN;I zsf8GF9z9YDDY08st^H;ym4U?@EW}VFx{4NJo|aZ49^AXoxt1Y!ftsCLIKo&*t94^b z?3qh#?eQ&aOK~>w=7rskV$b+mNQ`37qDG_Goob|}w$XEbqxn!>?e`O7)oIRRB{ZuG zSgkXw3rUSWZ+Xs(XL-BNU29*4&^F48w*np0tK}d z91V)$eL(C26Iaor&uKqI?pPZ=tXUn4r>|fK`=!HQ#?~j^#^$gcA8F}+%iY6(1V?>5jXW=^O(3}N5}=En$3AyO-tGBR^=vqVz!N+ktTq*x2)&wIQ(g! z8oSFP64(z0LhZo=AdIk?+FjNgyKjZs9)eIy$lAu2=WHEJ6W*{O}om#2-{F()95ii)!<6o#egq8NPVLl=y#{4`QBOf zBu-@q?kDi0n*-+2K?1V%wM_7)OfZKgD6ER&!YWKwX40QYKPD|qz5=`(zMcY}Dtn6c z(mxd%UHnXYiWi@Y_YNlI%B{h-K*R^Wxz#3he2gu{lX6I#M{Ox?(*9m52F={c=!*c;fUqRn=6wt=Rl#5hI}9)TVA@EWN$3?zC@(?^ zFt4EqX8c}?jP?-c#K?~*jH~P(VpU1H*Gcrg3Y8rvr9KIzF3LT`)0ch;8?%^(B$C?M z%00xlugOmPh8Qt>h`$41uu!yz_)~Ojvxk@+4d2YDYY#Cy9%eRn4>7F(kNsGCh~1mA z!L*O!F7em^c8Pb$J@*jrPJ`=>^iBta>Q@JF4>7Qmx2JI2Jsj^L{@CpyUdrnOZ$hrp zJW!|iyoHRWy@JqNdUIIRvm{;T1t+__gW_OO;6Vp{8)Nbp&_PJ&IkwlNQF!7uX;e_1 zuaF8%X&U4C$GvN`N$ny2xOYe|C2^ru zQ`a8is2$^4U3-Z8u(u)7>-VSIL;Ug^Fv1ox!q+mwJVpAKP+WMC$qP)LXYw4AXPG?1 zWOFof;r@@fhYGerLGTAWT|(zR6MKj+X+fd(5VK|VyOjxO2ZLnXt;99;-K|_aJh6v( zA`olV;9kKwh_{E7#l062y)4JKOcD7hv5Wjew?T7-#6wV-KMOfJ`=QL7Z8O?KOl<`J zKq5Wj7_!bL#FXzif@3fmmn(lqFQ*>kC-8;|_XOVQ2i}M$@Ko`!z2@*tfjMJBVvllo z0zYTWA3z-X0%pL^9>*t!bH?Bvcg`3_+{3|NX=}^hU&!n^HlsbnQ*Gu5)|_iIe?uma z7{~wb#P}nKR~JKjh@BW^GJBq7_Q;6Yx6;fW*BR-2(M=%I+K65t;Rc2UXoG`lGCv6{ zMm9K#%%5+W{|7Qr4-DQ<3vdDj;5@h78~lg#DEboYeDUyr-5FPA_j~G%b@mz5ojp!w z)Kzrfd^BjHZ@Yf)Zt3vy^lyaBI!>+CVwI6 zpl_bY%ru*sOoEQ7?x`X&B>Akp;8sg9C;5z?Lf)oZ-cCivI7F9yY~7!%j~xPLsyoPO zKJ#ag`HL*`XCkv86kB_xrj}y0huAsq+2rkF%iB4P^Oo%YsTX)^abx!oyRPQ-|4Yb~ z?f>VJGZ&=Uugt!{(Chzh53w!sH)@=R)|vterQF~G6h&?@4VnC@m~l?K<*yh2`yfX0EiE8<43pG^O_tJH=smz)OHe*v6(H zhl82wq3K3nlAFo=RhD_}A*Qi{BaxVqZWwkLc<+2y-$R_GJU6qu6;#lDyncZ9yRRly z>)s&%BKvYMi(Wms4K;cob`8PvQ6nu;IE?*^Gd*P5L+rE}#|pNn+(WE}iVY&5eyBaf zE&g#VOP18qw-X0@wH(1^tXXZwmc>ktJ;W|9yiDG1vAn&q zfOuCxV&kG3!n68^x?SWInXazumZElarlp z+>yNln%R?`+sKt2vgVRAf0VI%h`m7$dx*Up_7K~gKQ(<9Xf*r?w}zkhQ50$817z~I zTWx%ZjEOC$r0-3Cx&@7sYntvOpV@zt**h$=|3M~-C5bWpzo^0TtLv>?-3hpy!#%`m zP3YmRTE^k!h*qtO@N(l;-K+C*lUCgi@^Z6Q-Cgl=bgOP=csaIJ(??!z*{VU1ms_=J zNa5v#Rz+}LPHa^OF+^<#hdS33|swpKe4`|h#jF$(sYVyI$gIhJtj+JXHjg__}5lpDQB%0>D$;K| zqV7XNbR%g=ZuEN+U~iNg(E{-ba#U{J=q|DcH`xm>abN1u(VYN6YHWBVs%X z`r)G>lXRm;P+WMJ$wN#YWby!$M*!;FXe>|!kE5Xa{iIN<)AB}*dx$UTk3Gb%wZMbi z!f?EYm}E@HB&}q}94~%DlCxb4_n1#0=lY)Z5R+xMNE_W_Zh@wH7W^c^^M0c(Q58~H z*B|YYhDRpecDj|tlNTNtbE4VMQ?n$h5Zx2AB##gd;?Uf->Yd4 zafUjhJ;Yy=|9m7xSYaP*JNw3yQG19Dzj$?3GZ|mb)J(?d7ouD|Jaj^H@Tk3q*cuU! z;H(kP9v3}=(;nh9s?>(3Xb~Fmdx#f+c(os-)eH60kuu;8#MSFG%GWCHT;G?cS z(33LsEQ#T~+DndJlA|sOa_`1{U?J0Ne#Nm{vzk223k!2)v_mlO;ejmzFgy5|HzA@) z_M)iK{+XTx&-;xQLzR5xe>uv10K-?0LcObqi#^0Y^Tb`8oJWIU#vWn;C-)Fb{^TCw zW~n4nccqrGhj?MaRMudhR4=twy>+Uk!B%92|1U#oA9B#ekot4L=q7t12_P}70KZs3 z0yI8o{?am+7jqhXWF-ZjU$K&bN4_VAwR?y^tUK_0v>*eIkSXvi3)boiJj+pro+UAy zS9{5^0*Wga3Nr_vMQAo_uoX%6Ul3^l4?cDeF)^nGpT*=4=?V-!*%cUk7F9P>wdJ~R zy~=8#vas7fFC6Lv{aD04AT>yLE29X5&%f*L1OHi&eL%?62Ue+9tW_yP&ypC)#T_!N74ePDGoi=qyv2vO|MlMZxMT3jZG8U+hzpjyJ?Vhu5087Q%bcqtET&8o}} zAhX;IXKOd+*K_{s`P_1RT&5PUQ9^xe>K%|@uo%AjC@pPg+#0%h7rSUtl zb!e3?hK)g#n0ttSF7YA(D#gRt_zO?G!9>0Q#A|#|`3+g;9^zk$b)UI)QDwT;|L{)i z^O{|2JRXC`@@d5lyN9@r8<*m*Ji83>?ZUVbJ!C481IAc^i^c{7 z=2Di{;N0SceaPg>?Hb%m46nG)Y9*THyva7U23KVdafro}a2d#wT!Xt6#f4j#+|1-A zCO0zqH9*}Ooc0hehl1=iIJT_52Dd!gAt+=#WQuFLy9TE{#N?W5s%F+m(cFSlY9WT4 zM~{?3O6*ouYrmOFWnl3J3o+D)uA+q)yNB5E;NAtr9^#ci&CV?xVXULoy0Inp%%!%( z9^w^OxYZ z(H>&)EDy4Kh#j|{lKcHcO71It3A@$TOIRWa9R~>|M|+4{)JRQjBkdt}jpjqiwO;{i zK*`Y_V(}~`YY#EKU15rr@*WkqavP?WrKAW`b`P=1HWsEHgkGtw;090(`vb8HOk71z z?jdGv^suJ-9^#cPcXki4$;R9@w1@Z#a<_`OJ5t+mj_D+K>ptRUOTFH?dM1}2JZ_7E?G%_Q+2;#H|{j8^)s zvWK`Xr7v@45B91L-G;v0El_$OrO(?847@a^rCyZ}T?k(t)+a%G{$L!Ti=^Y;uFT!r5f_ZNoP3yikW*KALdscyQ z{g0MDc|#KIsiTQ@QiOIX;;%$|+8CmJeaun@ZNF6`w58Q-kI`?Hy@(CtCdrXoTddzz=?W{K2V-Ai@D+Yq!rFzVBBZ>Cekq)itF%@W!8O0tmyUq5P zGgpp#Oy2ew{my@n*-S$Y{UuyOz2(Ny#s#_`UwSkeT^wQbl^aL52gla#D=9Md_mm`= zNL<%b?yTBVma(y=w5HX)elxy2+zn4PdS|Z-2T1Sl(M!>h8qj;AKI#ZV@9)7!e*`l% ze6&ZBO#OOKl8MB1dcUh{y%((B_1mc4m(`fMk@`CWdAOGJej4?T*xZ2LCp9>lI>ONV zY0&%9H`dmBl1%-2Pm+nmb$Y+Ms@|7!{e5k#cl~DQy{=b1jo!pF-UalK)N3a@saj6!#F-2up85CFufd#&#%mJUN{(2fM5_vnd?krz(n^Vw+=bLBJFz zW|)xYg0Y0%5(yZXgCi$?fw`b|<&*F75Hs((al~Fdo*n6rp_u5ACAhgor)u+zjazW4 zc1X(|z3H$4o&Ok)6@h;Y55Bn0j-*xt|HP0-4Y(n%`|^K0(mn$}fa9QExrsE)w_@f~ z!{{rIj0oO1*V#E@7#i=4->~&Z{o%3}bZC>0K5Uz6`&(7)mr>A?r_XLz`9Z;YX7D6vRkwv|> z%I%6f&)hJ1n-WfW%T1_k3qDB6`|5lf^Bo$KXEyB)aR);LoI=!RAnB@Ow72oT35RHI zLy30F>j%6}Ca+vhlpE?k{bUsVFBrtxNqq)}R4ABaFV+p;DWE=;QD!?-L~&;jOL*Q( zRE6p1$)h&Ga>2=?a;0@B6r?#7jlDx(OmTc;-krF508lBep2WENTM(Ghp}2Yhc8k(uqp* z9a1YqU*I7%Ng)+dcQIQ1i9%|UG&)#4A$8Y?rD`E{4?wtn`DgY^=Q>eH{R>JJQU$7z z%9CJz>X2F?Z@nRPcS^KdUOxyzN03*BRC%C6D$jgC?X>p?*mHJE$ve?uiP8 zGKQRFNM%(bq;5~4AWa#Ky^v~(8w;toVmJiGTeKjH3+CaqhcUqJ1#&jP-oyZVs25;E zz=bU6JnDu~7}TG`pnd~JIW>x-ryUFSwv69~R#-DM*_h$F?j`+u8ZI@2`^4;F^`L=! zn&ezHS_bTL(&h-`p5_=#ysrc^weBU8Wa_`CNs@`g)rf}m!F#&Cr}-V#4t?u4_%&NUmS~d&FLq zI3qR!wm^v9f^DEx|LOdGh)-As;#X3tg`f5MOk&t>XtVv|NEGrwl{t>abO-H zXgt;TN2%|=HmL9MHiV#YC@hR+($1uf$^L+G_tU>Kxc0?QusbS+ptIw9B6z2bcOO5r z<;w4@it2U$+pM!ghL!s)hqy(|sBM|pnfsw7I0QJ+@m_A>Eb%p-}EO=IGEjJY^4kv!uYZ2S&eNY?qtTr-D|G924$GPgNQ9ura+ zG6~|~6c9hO@eXP7n6{`2F%?y%0|3d;y&rzy<0c!&)VeJ2$2;}xW!@5I^w$xP;W0qW zQ&6EY9BDbSa1744?E0A(IO(w@)Ea)!BPSF*50y_Va@b#0Zg*Fw@rLf~c3OfbWiHD* zx{ws8RRZa7Qiyox>bX*<6|pA}LqugW!dQ1i{c2$=s`xxsqMmMfs$&R&lwSiwa6B4@ zY>lU7k!+XPt4SSKqbE>4jOQQs)+_WP8{AIixMonqR477sw#)0z_DsslKnpV8Ix@k@ zD7ETZi?e0d-l^1)#d1XprVAhQgM2z})YASAm^Akhdd+=)Kv75;2nl6_)zWb!4#GbY zyg9Gzd@6g9MXa(V_Y@GA(J_U}hTQcjdof`M+Iko@tt~a3O-`+vdILar*2AgC(pgrB z#ZfGo1uL1CBqaQEsgR7|(}}Vcw{m{7{y_FVId8uto~4MVIWM%0D#M1k@kYJl#5?rN zJi^=dLKoqQd4GtWYe1qs>j`@j{AS69DnaHF)CGobzQ6@)3 zB#Ai)3_?N@+o2j;&8ZS{TRayRVE4G;mH}IRYpskcyXF+??m}8U)YsSyJ6kRKhgszx17!-r37V2Yn>SMc~pMo_sk120%4z0$VCS+uBlM(0R5E^?f8EN9l2t!WhWW=2E z?5Z()}U(BJ+run^G_5Q~HiLW^RJQ z!p2NSFd5F|Jixe^SwveCGcQDG?U-2skrgwC80JdEI~^!ZZzJ*U#mu2Za1juM#L{)l z+<@>GSAoxnnXQDsgz#*X6*E1ayNsC|65FLf6s(ktnT~lAGfA&%%p67>myshPs)(7x zQH_{Ml_+LjkBd~yWE5L^7$Rgyv&Yd=pf*~LKr3{|jY({mvJ0__mRA6yiI#rzI9hJP zHe@i4mTXdYwA>W!6)nY&qU9)}RJ2TVuBy?J)T>6z&4}!3K%}E(Bo3mbGeIg^(r;=+ zORp~^$9xwp&4*p50ZYwjX{D?yS`v1?qGcQPp=jwzmx`8DS4Ol<@R=Dc8B<)eblNe| zk})QZmJBvEqNS_0(eeU7vwODV$BUMxxUp!tmcdxSkD?{>h?c{^Wq2c{H_`HG&M-GZ zVPQiitxPsxasyyov|QWZ8fbn7;m6!h6Hi_D(N#pE&2BafRMZ?N|7(r=EyD#lxlmvOz&gj9$#wPVPb znhJ_dO-*H*x-E27*335nl4kx5elQrCY-8qK)nHl$KQb@#Fz-+*cNWN4^FB-SmQYw2 z!lcM#eI|DR#+f%TxK=YidHfjj5>H*`B>~K>Vcwq`^Lj0_%u6<^oA*AD_04;i$#-Sm zJ0q}c^TzeYyi|xYuVcuVmkNr_OHEZVudA}=oefBucTN1jye8Y2c~>x)mdB6G%RJ1x z9ykjh02yoE=V{(`QCRp5lfg^|F}WWw&b%ucTq~KM7W^3V5>H*`C4r+y^v4{#zcH`Z zGRwSVqq=z?2U*{|51V{f=6xsv%QkOZZ_G=DIP*G&jCrY`*u2zK74y0(Yu*O|N%Qu{ z56o+_jhXl722&sW$h^$Myz79o@JW!d=6#Xo9f-oh+Dz7BQeg4~V4Qh>VQ~G@{QMd} z#=OK+mw8D5cYH8!A7fsxWtMr#Ms@SP0J6S$pE3Ea%=>f%mTlg+-k6sPaprXl8S_#> zv3aSfD&}=n*1S&vlIC3&KQOP!HfG+>dJ5C0_>p;;hj|Bpv+yO5vF3f5=3Ntog*BMu znXJy_MZh@oes0=oSR_QI<~cJh=Z0YkX2>eX-Y_n_NFRqF^NOFSp6U-3%@R35FkX$((JJLqSoDfKFOCn)5HsEmdjn0-`7+)Pi)+xo>UcZs z$#(a0*wMb@eZ-i=(xDR`RVCvk-4)9x$@n-mkyrIgwUq(^?|G9JIEeBIfZ03aW_80V}twnyd^(^;CQ*Yf53R(F6)% zv9k(>zjReXm=vo$(C*qoJHNX%rQme&9r)vx^3rOuo6q|9b+P_q9jq@0+%RGm>v2`L zS^vSZo)_!d4L=V>=!`jZL3rm^Trl*ySMugp>+Ai7tU-0dkYS@fYDLt6s4

kdc6t1AT%Ai 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≀}-%-%h)XCt&o-xLoNS5 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