From 9947eb0ae30b35e127d2dfc7ffb8d275da546c36 Mon Sep 17 00:00:00 2001 From: Michal Mizera Date: Sat, 17 Dec 2016 23:03:34 +0100 Subject: [PATCH] Removed vJoy support + added successfully translating HID to vBox controller --- MFIGamepadConfigCreator/ConfigCreator.cs | 125 +- .../MFIGamepadConfigCreator.csproj | 23 +- .../vJoySDK/x64/vJoyInterface.dll | Bin 179200 -> 0 bytes .../vJoySDK/x86/vJoyInterface.dll | Bin 147456 -> 0 bytes .../Configs/Nimbus.mficonfiguration | 110 +- MFIGamepadFeeder/Gamepads/GamepadManager.cs | 88 +- MFIGamepadFeeder/MFIGamepadFeeder.csproj | 17 +- MFIGamepadFeeder/MainWindow.xaml | 6 +- MFIGamepadFeeder/Properties/AssemblyInfo.cs | 4 +- .../vJoySDK/x64/vJoyInterface.dll | Bin 179200 -> 0 bytes .../vJoySDK/x86/vJoyInterface.dll | Bin 147456 -> 0 bytes .../Configuration/GamepadConfiguration.cs | 1 - .../Configuration/GamepadConfigurationItem.cs | 14 +- MFIGamepadShared/Gamepad.cs | 193 +- MFIGamepadShared/MFIGamepadShared.csproj | 5 - .../x64/vJoyInterfaceWrap.dll | Bin 13312 -> 0 bytes .../x86/vJoyInterfaceWrap.dll | Bin 13824 -> 0 bytes vGenWrapper/NtStatus.cs | 1605 ++++++++++++++++- vGenWrapper/XInputGamepadButtons.cs | 28 +- vGenWrapper/vGenWrapper.cs | 127 +- 20 files changed, 1964 insertions(+), 382 deletions(-) delete mode 100644 MFIGamepadConfigCreator/vJoySDK/x64/vJoyInterface.dll delete mode 100644 MFIGamepadConfigCreator/vJoySDK/x86/vJoyInterface.dll delete mode 100644 MFIGamepadFeeder/vJoySDK/x64/vJoyInterface.dll delete mode 100644 MFIGamepadFeeder/vJoySDK/x86/vJoyInterface.dll delete mode 100644 MFIGamepadShared/vJoyInterfaceWrap/x64/vJoyInterfaceWrap.dll delete mode 100644 MFIGamepadShared/vJoyInterfaceWrap/x86/vJoyInterfaceWrap.dll diff --git a/MFIGamepadConfigCreator/ConfigCreator.cs b/MFIGamepadConfigCreator/ConfigCreator.cs index 5077233..39d0819 100644 --- a/MFIGamepadConfigCreator/ConfigCreator.cs +++ b/MFIGamepadConfigCreator/ConfigCreator.cs @@ -1,6 +1,6 @@ using System.Collections.ObjectModel; -using MFIGamepadFeeder.Gamepads.Configuration; using MFIGamepadShared.Configuration; +using vGenWrapper; namespace MFIGamepadConfigCreator { @@ -12,147 +12,100 @@ public GamepadConfiguration GetNimbusConfiguration() { new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = null, Type = GamepadItemType.Empty }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = null, - Type = GamepadItemType.DPadUp + Type = GamepadItemType.DPad, + DPadType = XInputGamepadDPadButtons.DpadUp }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = null, - Type = GamepadItemType.DPadRight + Type = GamepadItemType.DPad, + DPadType = XInputGamepadDPadButtons.DpadRight }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = null, - Type = GamepadItemType.DPadDown + Type = GamepadItemType.DPad, + DPadType = XInputGamepadDPadButtons.DpadDown }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = null, - Type = GamepadItemType.DPadLeft + Type = GamepadItemType.DPad, + DPadType = XInputGamepadDPadButtons.DpadLeft }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = 1, - Type = GamepadItemType.Button + Type = GamepadItemType.Button, + ButtonType = XInputGamepadButtons.A }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = 2, - Type = GamepadItemType.Button + Type = GamepadItemType.Button, + ButtonType = XInputGamepadButtons.B }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = 3, - Type = GamepadItemType.Button + Type = GamepadItemType.Button, + ButtonType = XInputGamepadButtons.X }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = 4, - Type = GamepadItemType.Button + Type = GamepadItemType.Button, + ButtonType = XInputGamepadButtons.Y }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = 5, - Type = GamepadItemType.Button + Type = GamepadItemType.Button, + ButtonType = XInputGamepadButtons.LBumper }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = 6, - Type = GamepadItemType.Button + Type = GamepadItemType.Button, + ButtonType = XInputGamepadButtons.RBumper }, new GamepadConfigurationItem { - TargetUsage = HID_USAGES.HID_USAGE_SL0, - InvertAxis = false, - ConvertAxis = false, - TargetButtonId = null, - Type = GamepadItemType.Axis + Type = GamepadItemType.Axis, + AxisType = AxisType.LTrigger }, new GamepadConfigurationItem { - TargetUsage = HID_USAGES.HID_USAGE_SL1, - InvertAxis = false, - ConvertAxis = false, - TargetButtonId = null, - Type = GamepadItemType.Axis + Type = GamepadItemType.Axis, + AxisType = AxisType.RTrigger }, new GamepadConfigurationItem { - TargetUsage = null, - InvertAxis = null, - ConvertAxis = null, - TargetButtonId = 7, - Type = GamepadItemType.Button + Type = GamepadItemType.Button, + ButtonType = XInputGamepadButtons.Start }, new GamepadConfigurationItem { - TargetUsage = HID_USAGES.HID_USAGE_X, + Type = GamepadItemType.Axis, + AxisType = AxisType.Lx, InvertAxis = false, - ConvertAxis = true, - TargetButtonId = null, - Type = GamepadItemType.Axis + ConvertAxis = true }, new GamepadConfigurationItem { - TargetUsage = HID_USAGES.HID_USAGE_Y, + Type = GamepadItemType.Axis, + AxisType = AxisType.Ly, InvertAxis = true, - ConvertAxis = true, - TargetButtonId = null, - Type = GamepadItemType.Axis + ConvertAxis = true }, new GamepadConfigurationItem { - TargetUsage = HID_USAGES.HID_USAGE_RX, + Type = GamepadItemType.Axis, + AxisType = AxisType.Rx, InvertAxis = false, - ConvertAxis = true, - TargetButtonId = null, - Type = GamepadItemType.Axis + ConvertAxis = true }, new GamepadConfigurationItem { - TargetUsage = HID_USAGES.HID_USAGE_RY, + Type = GamepadItemType.Axis, + AxisType = AxisType.Ry, InvertAxis = true, - ConvertAxis = true, - TargetButtonId = null, - Type = GamepadItemType.Axis + ConvertAxis = true } }; diff --git a/MFIGamepadConfigCreator/MFIGamepadConfigCreator.csproj b/MFIGamepadConfigCreator/MFIGamepadConfigCreator.csproj index e6a2960..7b88588 100644 --- a/MFIGamepadConfigCreator/MFIGamepadConfigCreator.csproj +++ b/MFIGamepadConfigCreator/MFIGamepadConfigCreator.csproj @@ -136,10 +136,6 @@ true - - ..\packages\HidSharp.1.5\lib\net35\HidSharp.dll - True - @@ -207,22 +203,15 @@ {35c01170-5735-4aac-bb97-aa52a735b5a5} MFIGamepadShared - - - - Always - - - Always - + + {2E0670A9-6FE6-47B0-AD7A-E6C245522D8B} + vGenWrapper + - MOVE /Y $(OutDir)\vJoySDK\$(PlatformName)\* $(OutDir) -MOVE /Y $(OutDir)\vGenSDK\$(PlatformName)\* $(OutDir) - -rd /s /q "$(OutDir)\vJoySDK\" -rd /s /q "$(OutDir)\vGenSDK\" + + _IyKEL)VA(P}M9Gvx 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 diff --git a/MFIGamepadConfigCreator/vJoySDK/x86/vJoyInterface.dll b/MFIGamepadConfigCreator/vJoySDK/x86/vJoyInterface.dll deleted file mode 100644 index 309de0e5ab1f5da55908dfbae95b398673224ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147456 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

k)ED=fSkUg)}3Rq@vhaDiKojdlgZpE)S?#rwZ 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 Mj4Go2zw!0|0BS0p)&Kwi diff --git a/MFIGamepadShared/Configuration/GamepadConfiguration.cs b/MFIGamepadShared/Configuration/GamepadConfiguration.cs index 5a1d955..4aa09ad 100644 --- a/MFIGamepadShared/Configuration/GamepadConfiguration.cs +++ b/MFIGamepadShared/Configuration/GamepadConfiguration.cs @@ -1,5 +1,4 @@ using System.Collections.ObjectModel; -using MFIGamepadFeeder.Gamepads.Configuration; using Newtonsoft.Json; namespace MFIGamepadShared.Configuration diff --git a/MFIGamepadShared/Configuration/GamepadConfigurationItem.cs b/MFIGamepadShared/Configuration/GamepadConfigurationItem.cs index 945ff8e..1385d91 100644 --- a/MFIGamepadShared/Configuration/GamepadConfigurationItem.cs +++ b/MFIGamepadShared/Configuration/GamepadConfigurationItem.cs @@ -1,13 +1,12 @@ -namespace MFIGamepadFeeder.Gamepads.Configuration +using vGenWrapper; + +namespace MFIGamepadShared.Configuration { public enum GamepadItemType { Axis, Button, - DPadUp, - DPadRight, - DPadDown, - DPadLeft, + DPad, Empty } @@ -16,7 +15,8 @@ public class GamepadConfigurationItem public GamepadItemType Type { get; set; } public bool? InvertAxis { get; set; } public bool? ConvertAxis { get; set; } - public HID_USAGES? TargetUsage { get; set; } - public uint? TargetButtonId { get; set; } + public XInputGamepadButtons? ButtonType { get; set; } + public XInputGamepadDPadButtons? DPadType { get; set; } + public AxisType? AxisType { get; set; } } } \ No newline at end of file diff --git a/MFIGamepadShared/Gamepad.cs b/MFIGamepadShared/Gamepad.cs index 073f16a..caf51d3 100644 --- a/MFIGamepadShared/Gamepad.cs +++ b/MFIGamepadShared/Gamepad.cs @@ -1,8 +1,5 @@ -using System.Collections.ObjectModel; -using MFIGamepadFeeder.Gamepads.Configuration; -using MFIGamepadShared.Configuration; +using MFIGamepadShared.Configuration; using vGenWrapper; -using vJoyInterfaceWrap; public delegate void ErrorOccuredEventHandler(object sender, string errorMessage); @@ -13,44 +10,46 @@ public class Gamepad private readonly GamepadConfiguration _config; private readonly uint _gamepadId; private readonly VGenWrapper _vGenWrapper; - private readonly vJoy _vJoy; - public Gamepad(GamepadConfiguration config, uint gamepadId, ErrorOccuredEventHandler gamepadErrorOccuredEvent) + public Gamepad(GamepadConfiguration config, uint gamepadId, VGenWrapper vGenWrapper, + ErrorOccuredEventHandler gamepadErrorOccuredEvent) { ErrorOccuredEvent += gamepadErrorOccuredEvent; _config = config; - _vJoy = new vJoy(); - _vGenWrapper = new VGenWrapper(); + _vGenWrapper = vGenWrapper; _gamepadId = gamepadId; - if (!_vJoy.vJoyEnabled()) + var controllerPluggedIn = false; + var checkIfPluggedIn = vGenWrapper.vbox_isControllerPluggedIn(_gamepadId, ref controllerPluggedIn); + + if (checkIfPluggedIn != NtStatus.Success) { - Log(@"vJoy driver not enabled: Failed Getting vJoy attributes."); + Log($"Failed to check if controller plugged in {_gamepadId} ({checkIfPluggedIn})!"); return; } - uint dllVer = 0, drvVer = 0; - var match = _vJoy.DriverMatch(ref dllVer, ref drvVer); - if (!match) + if (controllerPluggedIn) { - Log($@"Version of Driver ({drvVer:X}) does NOT match DLL Version ({dllVer:X})\n"); - return; + var unplugStatus = vGenWrapper.vbox_UnPlug(_gamepadId); + if (unplugStatus != NtStatus.Success) + { + var forceUnplugStatus = vGenWrapper.vbox_ForceUnPlug(_gamepadId); + if (forceUnplugStatus != NtStatus.Success) + { + Log($"Failed to force unplug gamepad {_gamepadId} ({forceUnplugStatus})!"); + return; + } + } } - var status = _vJoy.GetVJDStatus(_gamepadId); - if ((status == VjdStat.VJD_STAT_OWN) || ((status == VjdStat.VJD_STAT_FREE) && !_vJoy.AcquireVJD(_gamepadId))) + var plugInStatus = vGenWrapper.vbox_PlugIn(_gamepadId); + if (plugInStatus != NtStatus.Success) { - Log($@"Failed to acquire vJoy device number {_gamepadId}.\n"); + Log($"Failed to plug in gamepad {_gamepadId} ({plugInStatus})!"); return; } - ResetGamepad(_gamepadId); - - Log("VBusExists: " + _vGenWrapper.vbox_isVBusExist()); - Log("NumOfEmptyBusSlots: " + _vGenWrapper.vbox_GetNumEmptyBusSlots()); - Log("UnPlug 1: " + _vGenWrapper.vbox_UnPlug(2)); - Log("UnPlugForce 1: " + _vGenWrapper.vbox_ForceUnPlug(2)); - Log("PlugIn 1: " + _vGenWrapper.vbox_PlugIn(2)); + vGenWrapper.vbox_ResetController(_gamepadId); } public event ErrorOccuredEventHandler ErrorOccuredEvent; @@ -60,116 +59,88 @@ private void Log(string message) ErrorOccuredEvent?.Invoke(this, message); } - private void ResetGamepad(uint id) - { - _vJoy.ResetVJD(id); - var zeroState = new byte[_config.ConfigItems.Count]; - - for (var i = 0; i < _config.ConfigItems.Count; i++) - zeroState[i] = 0; - - UpdateState(zeroState); - } - public void UpdateState(byte[] state) { // Log(string.Join(" ", state)); - for (var i = 0; i < _config.ConfigItems.Count; i++) - SetGamepadItem(state, i, _config.ConfigItems[i]); + XInputGamepadButtons buttonsState = 0; + XInputGamepadDPadButtons dPadState = 0; - SetDPad(state, _config.ConfigItems); - } - - private void SetGamepadItem(byte[] values, int index, GamepadConfigurationItem config) - { - double value = values[index]; - if (config.Type == GamepadItemType.Axis) + for (var i = 0; i < _config.ConfigItems.Count; i++) { - long maxAxisValue = 0; - var targetAxis = config.TargetUsage ?? HID_USAGES.HID_USAGE_X; - _vJoy.GetVJDAxisMax(_gamepadId, targetAxis, ref maxAxisValue); - value = NormalizeAxis((byte) value, config.ConvertAxis ?? false); - - if (config.InvertAxis ?? false) - value = InvertNormalizedAxis(value); - - _vJoy.SetAxis((int) (value*maxAxisValue), _gamepadId, targetAxis); + var configForCurrentItem = _config.ConfigItems[i]; + var itemValue = state[i]; + + if (configForCurrentItem.Type == GamepadItemType.Axis) + UpdateAxis(itemValue, configForCurrentItem); + else if ((configForCurrentItem.Type == GamepadItemType.DPad) && ConvertToButtonState(itemValue) && + (configForCurrentItem.DPadType != null)) + dPadState |= configForCurrentItem.DPadType.Value; + else if ((configForCurrentItem.Type == GamepadItemType.Button) && ConvertToButtonState(itemValue) && + (configForCurrentItem.ButtonType != null)) + buttonsState |= configForCurrentItem.ButtonType.Value; } - else if (config.Type == GamepadItemType.Button) - { - var buttonState = ConvertToButtonState((byte) value); - _vJoy.SetBtn(buttonState, _gamepadId, config.TargetButtonId ?? 0); - if (config.TargetButtonId == 1) - _vGenWrapper.vbox_SetBtn(2, XInputGamepadButtons.A, buttonState); - } + var buttonPressState = _vGenWrapper.vbox_SetButton(_gamepadId, buttonsState, true); + var buttonReleaseState = _vGenWrapper.vbox_SetButton(_gamepadId, ~buttonsState, false); + var dPadStatus = _vGenWrapper.vbox_SetDpad(_gamepadId, dPadState); + + if (dPadStatus != NtStatus.Success) + Log($"Failed to set DPad {dPadStatus} (${dPadStatus})"); + if (buttonPressState != NtStatus.Success) + Log($"Failed to set buttons (Press) {buttonsState} (${buttonPressState})"); + if (buttonReleaseState != NtStatus.Success) + Log($"Failed to set buttons (Release) {~buttonsState} (${buttonReleaseState})"); } - private void SetDPad(byte[] values, Collection config) + private void UpdateAxis(double itemValue, GamepadConfigurationItem configForCurrentItem) { - var dPadUp = false; - var dPadRight = false; - var dPadDown = false; - var dPadLeft = false; - - for (var i = 0; i < config.Count; i++) - { - if (config[i].Type == GamepadItemType.DPadUp) - dPadUp = ConvertToButtonState(values[i]); + var value = NormalizeAxis(itemValue, configForCurrentItem.ConvertAxis ?? false); - if (config[i].Type == GamepadItemType.DPadRight) - dPadRight = ConvertToButtonState(values[i]); + if (configForCurrentItem.InvertAxis ?? false) + value = InvertNormalizedAxis(value); - if (config[i].Type == GamepadItemType.DPadDown) - dPadDown = ConvertToButtonState(values[i]); - - if (config[i].Type == GamepadItemType.DPadLeft) - dPadLeft = ConvertToButtonState(values[i]); + var axisSetStatus = NtStatus.Success; + switch (configForCurrentItem.AxisType) + { + case AxisType.Rx: + axisSetStatus = _vGenWrapper.vbox_SetAxisRx(_gamepadId, (short) (value*short.MaxValue)); + break; + case AxisType.Ry: + axisSetStatus = _vGenWrapper.vbox_SetAxisRy(_gamepadId, (short) (value*short.MaxValue)); + break; + case AxisType.Lx: + axisSetStatus = _vGenWrapper.vbox_SetAxisLx(_gamepadId, (short) (value*short.MaxValue)); + break; + case AxisType.Ly: + axisSetStatus = _vGenWrapper.vbox_SetAxisLy(_gamepadId, (short) (value*short.MaxValue)); + break; + case AxisType.LTrigger: + axisSetStatus = _vGenWrapper.vbox_SetTriggerL(_gamepadId, (byte) (value*byte.MaxValue)); + break; + case AxisType.RTrigger: + axisSetStatus = _vGenWrapper.vbox_SetTriggerR(_gamepadId, (byte) (value*byte.MaxValue)); + break; } - var angle = -1; - - if (dPadUp && dPadRight) - angle = 4500; - else if (dPadRight && dPadDown) - angle = 13500; - else if (dPadDown && dPadLeft) - angle = 22500; - else if (dPadLeft && dPadUp) - angle = 31500; - else if (dPadUp) - angle = 0; - else if (dPadRight) - angle = 9000; - else if (dPadDown) - angle = 18000; - else if (dPadLeft) - angle = 27000; - - - _vJoy.SetContPov(angle, _gamepadId, 1); + if (axisSetStatus != NtStatus.Success) + Log($"Failed to set axis {configForCurrentItem.AxisType} (${axisSetStatus})"); } - - private double NormalizeAxis(byte valueToNormalize, bool shouldConvert) + private static double NormalizeAxis(double valueToNormalize, bool shouldConvert) { - if (shouldConvert) - { - if (valueToNormalize < byte.MaxValue/2.0) - return (valueToNormalize + byte.MaxValue/2.0)/byte.MaxValue; - return (valueToNormalize - byte.MaxValue/2.0)/byte.MaxValue; - } - - return (double) valueToNormalize/byte.MaxValue; + if (!shouldConvert) return valueToNormalize/byte.MaxValue; + if (valueToNormalize < byte.MaxValue/2.0) + return valueToNormalize/(byte.MaxValue/2.0); + return (valueToNormalize - byte.MaxValue)/(byte.MaxValue/2.0); } - private double InvertNormalizedAxis(double axisToInvert) + private static double InvertNormalizedAxis(double axisToInvert) { return 1.0 - axisToInvert; } - private bool ConvertToButtonState(byte value) + private static bool ConvertToButtonState(byte value) { return value > 0; } diff --git a/MFIGamepadShared/MFIGamepadShared.csproj b/MFIGamepadShared/MFIGamepadShared.csproj index cb443bf..26a366b 100644 --- a/MFIGamepadShared/MFIGamepadShared.csproj +++ b/MFIGamepadShared/MFIGamepadShared.csproj @@ -138,11 +138,6 @@ - - - vJoyInterfaceWrap\x64\vJoyInterfaceWrap.dll - - vJoyInterfaceWrap\x86\vJoyInterfaceWrap.dll diff --git a/MFIGamepadShared/vJoyInterfaceWrap/x64/vJoyInterfaceWrap.dll b/MFIGamepadShared/vJoyInterfaceWrap/x64/vJoyInterfaceWrap.dll deleted file mode 100644 index 360e8556184d002d9ab351c07e37bc680da8b133..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13312 zcmeHNd30OlmA~)lN!F6hPDl(m;RT1(35nxuC7}t#w&d7}7e$htI206FezrwqNqLf- zI4Qxyl0qpQxF4}1@$!#A59-n3$ zRiAB@PFE?BnJ$=II3_s!JvTMS7V^=lUdjiVUlU{ft%)m)>g4rQoL zYnqQTcytS9OZWKl7Ls2%zr{lrBCu1>Q(ezsgj-qV@Wsl?zuc_ZZ%$5F13ArCevL za*itJsuKP6t>iY)XK4d{mJ)sDJdvBwvsAf|ONqRQrIl#y*{1r6^6ZLq4ogJyTXY&$ z6L9q<7>OoC3a(n{$ULyCf{u*HL8A##gH!D1IqBnpE~2t;iidu|NnZmi##pfxilYJ& z6A1*H&V^y+1nOl@cQYL8DfzTkGkedGMJcScz4{4dC+$G<`~h1-W^Sto?wkcU+xCQ-f^NgxxxxpKwFLp3*8ZL zVsnJmu7EAUVTs;^41z1$;ycC zG#(||hN1s4mT+UdWM^`tMfNZ;9M~Y#*dM25kg;y5aeIGP807}=AHvw!mdy`=^G8Rw zcQ5uV2tc4WwDp9T8bl<+BHfCE1Ah|->o(%R(kEokb;TE5l9KCT-{5nepJnum9`wBy z@XFU8JJ58c@xrYzB~Lr(rOr=5&36=^97&xz5xG+1rLbk6)$`46uDV2?(c@? zV?oA7@zi`Q7rcx&3BDxOCu&%8e}M7(H5_>pG@Rcc19Ha~34a?MYOSy_g}R7?DP=W5Zc~FmxI-T zokYD|v`?|EIOFYthhu9NHm=wM;(16h9j))8BZ?gs+qH_#726Gp-5|D`!MIKdE1{om zQ>>uanAk=X%L*G(tUx~BeB&21Fm;pX*T824HG}1YBHu6gD@RYPpDQ@3vAhp@H^M{O ztI#YFe8j`@_jJZPp>cgQ{WWL`g0E;SKPNaWnl`~zf(r$E1osFo6}(9BX{q&Jf-ee& zpm$r@puK^}J3Wja(iy)YxJvX_2%Zql2SnZ>_?T#xORf7va}&^w`Lcczab6WHYb+-` zj9WyW3)%H-@aWpW)MFasU+cP7OZSiun63!|n~gcZLs%cRG+MI|xD*;6y=I&PT;=@* zcG8CfjF0&l@A5FdC^#E4<)Z~5#>Ilm1wStSFV(RAWx?yj|0%&Y1apG-2>w)XLvS%# z+#=XSA`3!0UA;w=Cj0gPe z`7OanU^(RbMgFjd_1_bGt0GW9N6et)=EVH5hg*Cy$a(IqVcaG7#Q^vEA;CvwY#smC zYdGg$30~r5pN)c!^(02XNB=0%t{45kiN>*R4RQQ0U`+TtG)3<-C;Th;RHWDq#_B3| zcg@-=cKr-?>4_x zEu&786}Que=xPmDdwjS@5704f1x=aEZ>RlqvxbX1K5W|@ifXv9E4C#N)o^uJtlNlc zd_8nL3&9U)e5G{QSLhCHU4;#M@7DP4#Ib!LcwBpXg~hcyw2LcjB=mU=cXs%2>+PX0 zYPgwGY^(nXZCi!?r~e(N`3^(bz;W`nqDDteFGbcN9A&>|YeyFYM=vov5jU z=c|hC4VQU@Rv{_HnfMU^Lt8UR1iv1q-MrcGa!@r3} zXHUfw4Grjdx=XQJ!E8FN*tK-IUZ(o< z2_K9E4eJMKlVT6jetnXTSD39Ip{EqPIJ8E;ioUJb*1#J5C_S%OkFiF-nqE}wKyXr@ zqL&qWjIP$Nq2DTId5`JW(f=rRB6y2_jJ7m7xg@l!_4iOjvC+^+_4iV*V&Tv|`Yp6u zu}l1)(Ql)Div7<2kp6zkC^qJQRR18^ialvOuHQ~a6l(~4Q~wBEr`QjS@8}<;n-#k= z^gaD9x?Qo=fuHCfr%x#MdhqA^-E`bx_4ne=?;cJWZw`)u{fF+dr?dv|>-wjZ?I~@M z_oV(e6*k)&@I0WHQ}4lwt-(9j^VtepuU8n?6hbk ztV%vmCI4NO+*Q?Xb)0JX+Nzvy5&6%1maFIVO!A-i{C-N-=W}OR^QZ0tgT8~c>LsqF z(QgFb+6dJ0e5enS}Q>J1~jS#`si$6kX8Wa(OSXHf~|sGg1dlc z;rX3?Qi2)51A>!+cL+XCFZxY-oSqFe();N7;0oaV!8LfJ@vr{%kUxaGmiLk0>jPe6 zYymzWY=iZgP!HXR2tM-To5V2-&&qy0(`SGSCJ}UZz==X^Jo%9)4_t9s8!}Kt4jQ$>&rLO=B z^aQX(PXiCpGr)Jzv%o2O0eBt#5O@Rq1bCaY{y}NwBht!U(#qY^%BQ526l(#q$g zm51qPsQZYt^(ATRtJ2of66aeI=bt3bcO}k0OPn7{oS%x%zl+Z=;nPeZYV|bJeA)p# zmomUcvVj-UM}X_;Z-MWiuLIlZ*T9{EarzzP%V>$wOli6hxSs}qMM@jjYDefvgMvrM zHcUYZ9ie-$y7L^voB4oQSbiEvmnM?~{3(Of0bj!J~9 zrS23~713W|RT0(_f36k(>%{+h@joX1?-uI~V!ctU?-A=wVtubzZx-t zpYSwzkl)bZ$?ryk%NqJ*4VM8rCS{2BOF5fPNI94GVs{dr<8o5Y$DKIyvuGg1r zmP@&oUJ(0wIx6jLq+7YvFTxmc`3`ze;#^7>i@lY$N}lc1BY8yVfW+BOkBMIwSzgX- zC!G*|4<-1yS?i-wslSWDQpV{LX}6z#C*^J$lX4KNko_;C25IMV`hoBy-6{1_v|99O zdL8kNDV`D?Ej!QHL;<-^W3BTUpg~!~0nAqrM+nC(9J6uE!7&%dJRG$+>Tt}*u>i+e zI2Pi-r?V@Z?2or@k0j&WEi>3!YAcsY`CKt_Xe|wOrb;4Ibn9H*x@o`lu5LYT>B$e5 zv(_cl(b1L+w{Q6S)-X^$+BbCczz<4g;9Azp*$TaiK?#i zb}I)PYm#Hhur-lMTX<(}<4Crq50o>uHLwG6e_=RPa>SUG&E#Myj)^5^6|E9WoL{7) zBiY{9J58dISXW<|U{A&qt%+nuEE1teA{p=Mm9n=FWqTsloeW0?qOJXL#~O|GZg-Q4 zv~_Wf1XSHs2&^hH~{yQO`O#Ln&UM2|F+2=`7m-ru{km$e&-f=$A5#wuSGCO%HQ?dh~j_;&ErhBfYKd2{mh7ahBa2Fff?rUe_2IfFhw9ZjC`o zB+=Pvf8^g+MWs4BIfA<`V)4XuM#*U30JR><6bIU3d#cnRqOI2Lp>W1_^vc>68?3G~ zINiOr{`jC1q1t1RBRG0xZHw)#j}AUdkK56Y$cOa2&YOZ8p9Uj&FTG5HTYg{&2|hiS;klX_C4xlE}%Y*B}8Ssb=2H<90OQ5()lIVEpz??f|MixOjYzEpzH zks7uVnQ@C+OQlqLzlf3Cgq6(~VC-m%BqkjpDuPN-xk(}%FVoEb*Tc4nvy7Pf}UqoX`<)4KNj_&}zZnW1Yf z7OnB2>|`Q?E=;@j4Hfeoby`z#w9(D+l)e9SQ%5Fi4On(Dlh2)Q?8=Sg?eSCz##Hu< zUYM$p%xKvbzte++tzz2F6gbGV5#1_evQh(Q^VA`ciqm#C^Qet$Pr7uvp*>%iv@@e) zf7CQyNaZG{>%_{r66ToOL_0&7Y^GFYZJWf<%Vbg*%RinuY*CS+*BWilTO%VB%@-Zv zpglqdM`RK6B9CJ+rn0@|@gd80eu%A@dQ!RaNGe?_+ozdSm)r_rJ2PR~J*iT9j9QD6 zxpaFfn;pVhq_ivar0n8YDvJ{VVE341Wo6xVTUe)R;W{!dz_=7*w-Kk;mBXbNNm$Lp zr)v1JELzN6$86`-sTz6wPGRKu;toHIZ9w^Et{oe+$wRo7e_pxf zxYlwh@8*L2*H<8C7ebiPckXGGUlN-;J3|q}sYD#&rF;QXolV&k&hl!fusy*AcM${N z+%7q@?drmrVmg|in5pD3omR%m!@~#?&t|x2PM7jFVP?=3USRPQmIyB}M{vfy852F4 z%kv4NSQ$NM4L8fA<_lPQe4})l+1XcEbFSSvr{F&VxQT;14=2wgIZH*|0y_74l*A=% zM>qm=2@X!L`Gi$=-O;Ne4O}_Q${E)PXY7f`Qi&LZVkwm?DcU!5C1#xRPBDtBLLz0O zaHl4U1rOG4@tTe1Gr3aV$OzUl<-y23=t<3(gXY6`T~%BfF9ea>no!@~m-2frm`S#m$#pq>I#%v5WA-xT?iK zISi91)IzAL(`y~94%w4Bq?RrImyzDzl^eDW$?_#Wy>Z{Wa@K)ziceVbnDC|Bzx&dq zrB8I;bhtPB!FwJ&PWb&$^LtD@&q1iIWjcpJ_txkQwOzWe-b=b(57cVA>fzX6kT!<} zT~rOg`r0m|Mz0U}$oOa?n0Tsu}AlLbzeaD`E*~6?$eQn4+od^ zH5ie3fq4Opgg=1c2?PQ)Z0{v z8b(*x9v*3pM;dyPB)!$gW~n7+~ibs-L@$8HdTgIxj>bjs$7M3 zwFczE){q>n?9VKeW0*M_;e>^`gg|Gz3heZm{0*<2iCT+wm+f&(5@j|Fo0P z7xML@H=m0fN?UTv!gq=XiyHiRJriA^k=fp8s^?l0_ebW8>y2Dh=`8#KC_a`dXU$0F zaAtoV=jt*1s|v3P;=1*RS5Ne$&R)LzcB}bqeB0+8Ro)Yq5xCX;g!|D~oSQX{AONoYuH$uCDIQW$?b- zsn^oHu6b=UcK95P0wOkV-i#f-Mx&LJ`7-|n*tGdE-!e;MmN|ka0=|r!BX)k=goACS zals*4s!;R3 z18YtN`J9o(IbK6fxJ7^^hu`K;kJKqXE#!VT;C(S)>-N%8)NMz+aeOV*F3Eo&+wtDo zq}|eP0q@`~NTy`PG2X6Qi1;!#MUM?gYv-Z2T$Fa>Q`^6GjVoCocUg%ov9=XXN(5L@TRt{PCV$hFP_c z2~Gz16(d;H=799Ch@9LpUx!|<#qo9=o8?RRZDS$o@XR^mkwee2RlWVw`Av`9l^A>c zs|@XqN)(=*0!Eu>cNF7NLXM~F%s)AvCf$ero3suyzgGU;ijyQ-s&30!X~SrH9Btc} z5B^82^GQe_`&1sh(zuWA+%V%6g#YoLado(JG2PcN-tB4>Ma(=_P8oAssv5QbODvu* syyib8#;LQ`g1MTWH^OgJT&ESiD@tF7(344w&7Z30j>TWf|9>O!zg+$nNdN!< diff --git a/MFIGamepadShared/vJoyInterfaceWrap/x86/vJoyInterfaceWrap.dll b/MFIGamepadShared/vJoyInterfaceWrap/x86/vJoyInterfaceWrap.dll deleted file mode 100644 index b69f26fea7c88451eb1752f5c75a3f0f2fffc011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13824 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 diff --git a/vGenWrapper/NtStatus.cs b/vGenWrapper/NtStatus.cs index b613c68..16d04bc 100644 --- a/vGenWrapper/NtStatus.cs +++ b/vGenWrapper/NtStatus.cs @@ -1,12 +1,1603 @@ -using System; - -namespace vGenWrapper +namespace vGenWrapper { public enum NtStatus : uint { - Success = 0x00000000, - ResourceNotOwned = 3221226084, - DeviceDoesNotExist = 3221225664, - IoDeviceError = 0xC0000185 + Success = 0X0, // STATUS_SUCCESS + Wait1 = 0X1, // STATUS_WAIT_1 + Wait2 = 0X2, // STATUS_WAIT_2 + Wait3 = 0X3, // STATUS_WAIT_3 + Wait63 = 0X3F, // STATUS_WAIT_63 + Abandoned = 0X80, // STATUS_ABANDONED + AbandonedWait0 = 0X80, // STATUS_ABANDONED_WAIT_0 + AbandonedWait63 = 0XBF, // STATUS_ABANDONED_WAIT_63 + UserApc = 0XC0, // STATUS_USER_APC + KernelApc = 0X100, // STATUS_KERNEL_APC + Alerted = 0X101, // STATUS_ALERTED + Timeout = 0X102, // STATUS_TIMEOUT + Pending = 0X103, // STATUS_PENDING + Reparse = 0X104, // STATUS_REPARSE + MoreEntries = 0X105, // STATUS_MORE_ENTRIES + NotAllAssigned = 0X106, // STATUS_NOT_ALL_ASSIGNED + SomeNotMapped = 0X107, // STATUS_SOME_NOT_MAPPED + OplockBreakInProgress = 0X108, // STATUS_OPLOCK_BREAK_IN_PROGRESS + VolumeMounted = 0X109, // STATUS_VOLUME_MOUNTED + RxactCommitted = 0X10A, // STATUS_RXACT_COMMITTED + NotifyCleanup = 0X10B, // STATUS_NOTIFY_CLEANUP + NotifyEnumDir = 0X10C, // STATUS_NOTIFY_ENUM_DIR + NoQuotasForAccount = 0X10D, // STATUS_NO_QUOTAS_FOR_ACCOUNT + PageFaultTransition = 0X110, // STATUS_PAGE_FAULT_TRANSITION + PageFaultDemandZero = 0X111, // STATUS_PAGE_FAULT_DEMAND_ZERO + PageFaultCopyOnWrite = 0X112, // STATUS_PAGE_FAULT_COPY_ON_WRITE + PageFaultGuardPage = 0X113, // STATUS_PAGE_FAULT_GUARD_PAGE + PageFaultPagingFile = 0X114, // STATUS_PAGE_FAULT_PAGING_FILE + CachePageLocked = 0X115, // STATUS_CACHE_PAGE_LOCKED + CrashDump = 0X116, // STATUS_CRASH_DUMP + BufferAllZeros = 0X117, // STATUS_BUFFER_ALL_ZEROS + ReparseObject = 0X118, // STATUS_REPARSE_OBJECT + TranslationComplete = 0X120, // STATUS_TRANSLATION_COMPLETE + NothingToTerminate = 0X122, // STATUS_NOTHING_TO_TERMINATE + ProcessNotInJob = 0X123, // STATUS_PROCESS_NOT_IN_JOB + ProcessInJob = 0X124, // STATUS_PROCESS_IN_JOB + VolsnapHibernateReady = 0X125, // STATUS_VOLSNAP_HIBERNATE_READY + ProcessCloned = 0X129, // STATUS_PROCESS_CLONED + FileLockedWithWriters = 0X12B, // STATUS_FILE_LOCKED_WITH_WRITERS + ValidImageHash = 0X12C, // STATUS_VALID_IMAGE_HASH + RingPreviouslyEmpty = 0X210, // STATUS_RING_PREVIOUSLY_EMPTY + RingPreviouslyFull = 0X211, // STATUS_RING_PREVIOUSLY_FULL + RingNewlyEmpty = 0X213, // STATUS_RING_NEWLY_EMPTY + OplockHandleClosed = 0X216, // STATUS_OPLOCK_HANDLE_CLOSED + WaitForOplock = 0X367, // STATUS_WAIT_FOR_OPLOCK + DbgExceptionHandled = 0X10001, // DBG_EXCEPTION_HANDLED + DbgContinue = 0X10002, // DBG_CONTINUE + FltIoComplete = 0X1C0001, // STATUS_FLT_IO_COMPLETE + DisAttributeBuilt = 0X3C0001, // STATUS_DIS_ATTRIBUTE_BUILT + ObjectNameExists = 0X40000000, // STATUS_OBJECT_NAME_EXISTS + ThreadWasSuspended = 0X40000001, // STATUS_THREAD_WAS_SUSPENDED + WorkingSetLimitRange = 0X40000002, // STATUS_WORKING_SET_LIMIT_RANGE + ImageNotAtBase = 0X40000003, // STATUS_IMAGE_NOT_AT_BASE + RxactStateCreated = 0X40000004, // STATUS_RXACT_STATE_CREATED + SegmentNotification = 0X40000005, // STATUS_SEGMENT_NOTIFICATION + LocalUserSessionKey = 0X40000006, // STATUS_LOCAL_USER_SESSION_KEY + BadCurrentDirectory = 0X40000007, // STATUS_BAD_CURRENT_DIRECTORY + SerialMoreWrites = 0X40000008, // STATUS_SERIAL_MORE_WRITES + RegistryRecovered = 0X40000009, // STATUS_REGISTRY_RECOVERED + FtWriteRecovery = 0X4000000B, // STATUS_FT_WRITE_RECOVERY + SerialCounterTimeout = 0X4000000C, // STATUS_SERIAL_COUNTER_TIMEOUT + NullLmPassword = 0X4000000D, // STATUS_NULL_LM_PASSWORD + ReceivePartial = 0X4000000F, // STATUS_RECEIVE_PARTIAL + ReceiveExpedited = 0X40000010, // STATUS_RECEIVE_EXPEDITED + EventDone = 0X40000012, // STATUS_EVENT_DONE + EventPending = 0X40000013, // STATUS_EVENT_PENDING + CheckingFileSystem = 0X40000014, // STATUS_CHECKING_FILE_SYSTEM + FatalAppExit = 0X40000015, // STATUS_FATAL_APP_EXIT + PredefinedHandle = 0X40000016, // STATUS_PREDEFINED_HANDLE + WasUnlocked = 0X40000017, // STATUS_WAS_UNLOCKED + ServiceNotification = 0X40000018, // STATUS_SERVICE_NOTIFICATION + WasLocked = 0X40000019, // STATUS_WAS_LOCKED + AlreadyWin32 = 0X4000001B, // STATUS_ALREADY_WIN32 + Wx86Unsimulate = 0X4000001C, // STATUS_WX86_UNSIMULATE + Wx86Continue = 0X4000001D, // STATUS_WX86_CONTINUE + Wx86SingleStep = 0X4000001E, // STATUS_WX86_SINGLE_STEP + Wx86Breakpoint = 0X4000001F, // STATUS_WX86_BREAKPOINT + Wx86ExceptionContinue = 0X40000020, // STATUS_WX86_EXCEPTION_CONTINUE + Wx86ExceptionChain = 0X40000022, // STATUS_WX86_EXCEPTION_CHAIN + NoYieldPerformed = 0X40000024, // STATUS_NO_YIELD_PERFORMED + TimerResumeIgnored = 0X40000025, // STATUS_TIMER_RESUME_IGNORED + ArbitrationUnhandled = 0X40000026, // STATUS_ARBITRATION_UNHANDLED + CardbusNotSupported = 0X40000027, // STATUS_CARDBUS_NOT_SUPPORTED + Wx86Createwx86Tib = 0X40000028, // STATUS_WX86_CREATEWX86TIB + MpProcessorMismatch = 0X40000029, // STATUS_MP_PROCESSOR_MISMATCH + Hibernated = 0X4000002A, // STATUS_HIBERNATED + ResumeHibernation = 0X4000002B, // STATUS_RESUME_HIBERNATION + MessageRetrieved = 0X4000002E, // STATUS_MESSAGE_RETRIEVED + AbandonHiberfile = 0X40000033, // STATUS_ABANDON_HIBERFILE + BizrulesNotEnabled = 0X40000034, // STATUS_BIZRULES_NOT_ENABLED + FtReadFromCopy = 0X40000035, // STATUS_FT_READ_FROM_COPY + ImageAtDifferentBase = 0X40000036, // STATUS_IMAGE_AT_DIFFERENT_BASE + DbgReplyLater = 0X40010001, // DBG_REPLY_LATER + DbgUnableToProvideHandle = 0X40010002, // DBG_UNABLE_TO_PROVIDE_HANDLE + DbgTerminateThread = 0X40010003, // DBG_TERMINATE_THREAD + DbgTerminateProcess = 0X40010004, // DBG_TERMINATE_PROCESS + DbgControlC = 0X40010005, // DBG_CONTROL_C + DbgPrintexceptionC = 0X40010006, // DBG_PRINTEXCEPTION_C + DbgRipexception = 0X40010007, // DBG_RIPEXCEPTION + DbgControlBreak = 0X40010008, // DBG_CONTROL_BREAK + DbgCommandException = 0X40010009, // DBG_COMMAND_EXCEPTION + GuardPageViolation = 0X80000001, // STATUS_GUARD_PAGE_VIOLATION + DatatypeMisalignment = 0X80000002, // STATUS_DATATYPE_MISALIGNMENT + Breakpoint = 0X80000003, // STATUS_BREAKPOINT + SingleStep = 0X80000004, // STATUS_SINGLE_STEP + BufferOverflow = 0X80000005, // STATUS_BUFFER_OVERFLOW + NoMoreFiles = 0X80000006, // STATUS_NO_MORE_FILES + WakeSystemDebugger = 0X80000007, // STATUS_WAKE_SYSTEM_DEBUGGER + HandlesClosed = 0X8000000A, // STATUS_HANDLES_CLOSED + NoInheritance = 0X8000000B, // STATUS_NO_INHERITANCE + GuidSubstitutionMade = 0X8000000C, // STATUS_GUID_SUBSTITUTION_MADE + PartialCopy = 0X8000000D, // STATUS_PARTIAL_COPY + DevicePaperEmpty = 0X8000000E, // STATUS_DEVICE_PAPER_EMPTY + DevicePoweredOff = 0X8000000F, // STATUS_DEVICE_POWERED_OFF + DeviceOffLine = 0X80000010, // STATUS_DEVICE_OFF_LINE + DeviceBusy = 0X80000011, // STATUS_DEVICE_BUSY + NoMoreEas = 0X80000012, // STATUS_NO_MORE_EAS + InvalidEaName = 0X80000013, // STATUS_INVALID_EA_NAME + EaListInconsistent = 0X80000014, // STATUS_EA_LIST_INCONSISTENT + InvalidEaFlag = 0X80000015, // STATUS_INVALID_EA_FLAG + VerifyRequired = 0X80000016, // STATUS_VERIFY_REQUIRED + ExtraneousInformation = 0X80000017, // STATUS_EXTRANEOUS_INFORMATION + RxactCommitNecessary = 0X80000018, // STATUS_RXACT_COMMIT_NECESSARY + NoMoreEntries = 0X8000001A, // STATUS_NO_MORE_ENTRIES + FilemarkDetected = 0X8000001B, // STATUS_FILEMARK_DETECTED + MediaChanged = 0X8000001C, // STATUS_MEDIA_CHANGED + BusReset = 0X8000001D, // STATUS_BUS_RESET + EndOfMedia = 0X8000001E, // STATUS_END_OF_MEDIA + BeginningOfMedia = 0X8000001F, // STATUS_BEGINNING_OF_MEDIA + MediaCheck = 0X80000020, // STATUS_MEDIA_CHECK + SetmarkDetected = 0X80000021, // STATUS_SETMARK_DETECTED + NoDataDetected = 0X80000022, // STATUS_NO_DATA_DETECTED + ServerHasOpenHandles = 0X80000024, // STATUS_SERVER_HAS_OPEN_HANDLES + AlreadyDisconnected = 0X80000025, // STATUS_ALREADY_DISCONNECTED + Longjump = 0X80000026, // STATUS_LONGJUMP + PlugplayQueryVetoed = 0X80000028, // STATUS_PLUGPLAY_QUERY_VETOED + UnwindConsolidate = 0X80000029, // STATUS_UNWIND_CONSOLIDATE + RegistryHiveRecovered = 0X8000002A, // STATUS_REGISTRY_HIVE_RECOVERED + DllMightBeInsecure = 0X8000002B, // STATUS_DLL_MIGHT_BE_INSECURE + StoppedOnSymlink = 0X8000002D, // STATUS_STOPPED_ON_SYMLINK + NoAceCondition = 0X8000002F, // STATUS_NO_ACE_CONDITION + DbgExceptionNotHandled = 0X80010001, // DBG_EXCEPTION_NOT_HANDLED + ClusterNodeAlreadyUp = 0X80130001, // STATUS_CLUSTER_NODE_ALREADY_UP + FltBufferTooSmall = 0X801C0001, // STATUS_FLT_BUFFER_TOO_SMALL + FvePartialMetadata = 0X80210001, // STATUS_FVE_PARTIAL_METADATA + FveTransientState = 0X80210002, // STATUS_FVE_TRANSIENT_STATE + Unsuccessful = 0XC0000001, // STATUS_UNSUCCESSFUL + NotImplemented = 0XC0000002, // STATUS_NOT_IMPLEMENTED + InvalidInfoClass = 0XC0000003, // STATUS_INVALID_INFO_CLASS + InfoLengthMismatch = 0XC0000004, // STATUS_INFO_LENGTH_MISMATCH + AccessViolation = 0XC0000005, // STATUS_ACCESS_VIOLATION + InPageError = 0XC0000006, // STATUS_IN_PAGE_ERROR + PagefileQuota = 0XC0000007, // STATUS_PAGEFILE_QUOTA + InvalidHandle = 0XC0000008, // STATUS_INVALID_HANDLE + BadInitialStack = 0XC0000009, // STATUS_BAD_INITIAL_STACK + BadInitialPc = 0XC000000A, // STATUS_BAD_INITIAL_PC + InvalidCid = 0XC000000B, // STATUS_INVALID_CID + TimerNotCanceled = 0XC000000C, // STATUS_TIMER_NOT_CANCELED + InvalidParameter = 0XC000000D, // STATUS_INVALID_PARAMETER + NoSuchDevice = 0XC000000E, // STATUS_NO_SUCH_DEVICE + NoSuchFile = 0XC000000F, // STATUS_NO_SUCH_FILE + InvalidDeviceRequest = 0XC0000010, // STATUS_INVALID_DEVICE_REQUEST + EndOfFile = 0XC0000011, // STATUS_END_OF_FILE + WrongVolume = 0XC0000012, // STATUS_WRONG_VOLUME + NoMediaInDevice = 0XC0000013, // STATUS_NO_MEDIA_IN_DEVICE + UnrecognizedMedia = 0XC0000014, // STATUS_UNRECOGNIZED_MEDIA + NonexistentSector = 0XC0000015, // STATUS_NONEXISTENT_SECTOR + MoreProcessingRequired = 0XC0000016, // STATUS_MORE_PROCESSING_REQUIRED + NoMemory = 0XC0000017, // STATUS_NO_MEMORY + ConflictingAddresses = 0XC0000018, // STATUS_CONFLICTING_ADDRESSES + NotMappedView = 0XC0000019, // STATUS_NOT_MAPPED_VIEW + UnableToFreeVm = 0XC000001A, // STATUS_UNABLE_TO_FREE_VM + UnableToDeleteSection = 0XC000001B, // STATUS_UNABLE_TO_DELETE_SECTION + InvalidSystemService = 0XC000001C, // STATUS_INVALID_SYSTEM_SERVICE + IllegalInstruction = 0XC000001D, // STATUS_ILLEGAL_INSTRUCTION + InvalidLockSequence = 0XC000001E, // STATUS_INVALID_LOCK_SEQUENCE + InvalidViewSize = 0XC000001F, // STATUS_INVALID_VIEW_SIZE + InvalidFileForSection = 0XC0000020, // STATUS_INVALID_FILE_FOR_SECTION + AlreadyCommitted = 0XC0000021, // STATUS_ALREADY_COMMITTED + AccessDenied = 0XC0000022, // STATUS_ACCESS_DENIED + BufferTooSmall = 0XC0000023, // STATUS_BUFFER_TOO_SMALL + ObjectTypeMismatch = 0XC0000024, // STATUS_OBJECT_TYPE_MISMATCH + NoncontinuableException = 0XC0000025, // STATUS_NONCONTINUABLE_EXCEPTION + InvalidDisposition = 0XC0000026, // STATUS_INVALID_DISPOSITION + Unwind = 0XC0000027, // STATUS_UNWIND + BadStack = 0XC0000028, // STATUS_BAD_STACK + InvalidUnwindTarget = 0XC0000029, // STATUS_INVALID_UNWIND_TARGET + NotLocked = 0XC000002A, // STATUS_NOT_LOCKED + ParityError = 0XC000002B, // STATUS_PARITY_ERROR + UnableToDecommitVm = 0XC000002C, // STATUS_UNABLE_TO_DECOMMIT_VM + NotCommitted = 0XC000002D, // STATUS_NOT_COMMITTED + InvalidPortAttributes = 0XC000002E, // STATUS_INVALID_PORT_ATTRIBUTES + PortMessageTooLong = 0XC000002F, // STATUS_PORT_MESSAGE_TOO_LONG + InvalidParameterMix = 0XC0000030, // STATUS_INVALID_PARAMETER_MIX + InvalidQuotaLower = 0XC0000031, // STATUS_INVALID_QUOTA_LOWER + DiskCorruptError = 0XC0000032, // STATUS_DISK_CORRUPT_ERROR + ObjectNameInvalid = 0XC0000033, // STATUS_OBJECT_NAME_INVALID + ObjectNameNotFound = 0XC0000034, // STATUS_OBJECT_NAME_NOT_FOUND + ObjectNameCollision = 0XC0000035, // STATUS_OBJECT_NAME_COLLISION + PortDisconnected = 0XC0000037, // STATUS_PORT_DISCONNECTED + DeviceAlreadyAttached = 0XC0000038, // STATUS_DEVICE_ALREADY_ATTACHED + ObjectPathInvalid = 0XC0000039, // STATUS_OBJECT_PATH_INVALID + ObjectPathNotFound = 0XC000003A, // STATUS_OBJECT_PATH_NOT_FOUND + ObjectPathSyntaxBad = 0XC000003B, // STATUS_OBJECT_PATH_SYNTAX_BAD + DataOverrun = 0XC000003C, // STATUS_DATA_OVERRUN + DataLateError = 0XC000003D, // STATUS_DATA_LATE_ERROR + DataError = 0XC000003E, // STATUS_DATA_ERROR + CrcError = 0XC000003F, // STATUS_CRC_ERROR + SectionTooBig = 0XC0000040, // STATUS_SECTION_TOO_BIG + PortConnectionRefused = 0XC0000041, // STATUS_PORT_CONNECTION_REFUSED + InvalidPortHandle = 0XC0000042, // STATUS_INVALID_PORT_HANDLE + SharingViolation = 0XC0000043, // STATUS_SHARING_VIOLATION + QuotaExceeded = 0XC0000044, // STATUS_QUOTA_EXCEEDED + InvalidPageProtection = 0XC0000045, // STATUS_INVALID_PAGE_PROTECTION + MutantNotOwned = 0XC0000046, // STATUS_MUTANT_NOT_OWNED + SemaphoreLimitExceeded = 0XC0000047, // STATUS_SEMAPHORE_LIMIT_EXCEEDED + PortAlreadySet = 0XC0000048, // STATUS_PORT_ALREADY_SET + SectionNotImage = 0XC0000049, // STATUS_SECTION_NOT_IMAGE + SuspendCountExceeded = 0XC000004A, // STATUS_SUSPEND_COUNT_EXCEEDED + ThreadIsTerminating = 0XC000004B, // STATUS_THREAD_IS_TERMINATING + BadWorkingSetLimit = 0XC000004C, // STATUS_BAD_WORKING_SET_LIMIT + IncompatibleFileMap = 0XC000004D, // STATUS_INCOMPATIBLE_FILE_MAP + SectionProtection = 0XC000004E, // STATUS_SECTION_PROTECTION + EasNotSupported = 0XC000004F, // STATUS_EAS_NOT_SUPPORTED + EaTooLarge = 0XC0000050, // STATUS_EA_TOO_LARGE + NonexistentEaEntry = 0XC0000051, // STATUS_NONEXISTENT_EA_ENTRY + NoEasOnFile = 0XC0000052, // STATUS_NO_EAS_ON_FILE + EaCorruptError = 0XC0000053, // STATUS_EA_CORRUPT_ERROR + FileLockConflict = 0XC0000054, // STATUS_FILE_LOCK_CONFLICT + LockNotGranted = 0XC0000055, // STATUS_LOCK_NOT_GRANTED + DeletePending = 0XC0000056, // STATUS_DELETE_PENDING + CtlFileNotSupported = 0XC0000057, // STATUS_CTL_FILE_NOT_SUPPORTED + UnknownRevision = 0XC0000058, // STATUS_UNKNOWN_REVISION + RevisionMismatch = 0XC0000059, // STATUS_REVISION_MISMATCH + InvalidOwner = 0XC000005A, // STATUS_INVALID_OWNER + InvalidPrimaryGroup = 0XC000005B, // STATUS_INVALID_PRIMARY_GROUP + NoImpersonationToken = 0XC000005C, // STATUS_NO_IMPERSONATION_TOKEN + CantDisableMandatory = 0XC000005D, // STATUS_CANT_DISABLE_MANDATORY + NoLogonServers = 0XC000005E, // STATUS_NO_LOGON_SERVERS + NoSuchLogonSession = 0XC000005F, // STATUS_NO_SUCH_LOGON_SESSION + NoSuchPrivilege = 0XC0000060, // STATUS_NO_SUCH_PRIVILEGE + PrivilegeNotHeld = 0XC0000061, // STATUS_PRIVILEGE_NOT_HELD + InvalidAccountName = 0XC0000062, // STATUS_INVALID_ACCOUNT_NAME + UserExists = 0XC0000063, // STATUS_USER_EXISTS + NoSuchUser = 0XC0000064, // STATUS_NO_SUCH_USER + GroupExists = 0XC0000065, // STATUS_GROUP_EXISTS + NoSuchGroup = 0XC0000066, // STATUS_NO_SUCH_GROUP + MemberInGroup = 0XC0000067, // STATUS_MEMBER_IN_GROUP + MemberNotInGroup = 0XC0000068, // STATUS_MEMBER_NOT_IN_GROUP + LastAdmin = 0XC0000069, // STATUS_LAST_ADMIN + WrongPassword = 0XC000006A, // STATUS_WRONG_PASSWORD + IllFormedPassword = 0XC000006B, // STATUS_ILL_FORMED_PASSWORD + PasswordRestriction = 0XC000006C, // STATUS_PASSWORD_RESTRICTION + LogonFailure = 0XC000006D, // STATUS_LOGON_FAILURE + AccountRestriction = 0XC000006E, // STATUS_ACCOUNT_RESTRICTION + InvalidLogonHours = 0XC000006F, // STATUS_INVALID_LOGON_HOURS + InvalidWorkstation = 0XC0000070, // STATUS_INVALID_WORKSTATION + PasswordExpired = 0XC0000071, // STATUS_PASSWORD_EXPIRED + AccountDisabled = 0XC0000072, // STATUS_ACCOUNT_DISABLED + NoneMapped = 0XC0000073, // STATUS_NONE_MAPPED + TooManyLuidsRequested = 0XC0000074, // STATUS_TOO_MANY_LUIDS_REQUESTED + LuidsExhausted = 0XC0000075, // STATUS_LUIDS_EXHAUSTED + InvalidSubAuthority = 0XC0000076, // STATUS_INVALID_SUB_AUTHORITY + InvalidAcl = 0XC0000077, // STATUS_INVALID_ACL + InvalidSid = 0XC0000078, // STATUS_INVALID_SID + InvalidSecurityDescr = 0XC0000079, // STATUS_INVALID_SECURITY_DESCR + ProcedureNotFound = 0XC000007A, // STATUS_PROCEDURE_NOT_FOUND + InvalidImageFormat = 0XC000007B, // STATUS_INVALID_IMAGE_FORMAT + NoToken = 0XC000007C, // STATUS_NO_TOKEN + BadInheritanceAcl = 0XC000007D, // STATUS_BAD_INHERITANCE_ACL + RangeNotLocked = 0XC000007E, // STATUS_RANGE_NOT_LOCKED + DiskFull = 0XC000007F, // STATUS_DISK_FULL + ServerDisabled = 0XC0000080, // STATUS_SERVER_DISABLED + ServerNotDisabled = 0XC0000081, // STATUS_SERVER_NOT_DISABLED + TooManyGuidsRequested = 0XC0000082, // STATUS_TOO_MANY_GUIDS_REQUESTED + GuidsExhausted = 0XC0000083, // STATUS_GUIDS_EXHAUSTED + InvalidIdAuthority = 0XC0000084, // STATUS_INVALID_ID_AUTHORITY + AgentsExhausted = 0XC0000085, // STATUS_AGENTS_EXHAUSTED + InvalidVolumeLabel = 0XC0000086, // STATUS_INVALID_VOLUME_LABEL + SectionNotExtended = 0XC0000087, // STATUS_SECTION_NOT_EXTENDED + NotMappedData = 0XC0000088, // STATUS_NOT_MAPPED_DATA + ResourceDataNotFound = 0XC0000089, // STATUS_RESOURCE_DATA_NOT_FOUND + ResourceTypeNotFound = 0XC000008A, // STATUS_RESOURCE_TYPE_NOT_FOUND + ResourceNameNotFound = 0XC000008B, // STATUS_RESOURCE_NAME_NOT_FOUND + ArrayBoundsExceeded = 0XC000008C, // STATUS_ARRAY_BOUNDS_EXCEEDED + FloatDenormalOperand = 0XC000008D, // STATUS_FLOAT_DENORMAL_OPERAND + FloatDivideByZero = 0XC000008E, // STATUS_FLOAT_DIVIDE_BY_ZERO + FloatInexactResult = 0XC000008F, // STATUS_FLOAT_INEXACT_RESULT + FloatInvalidOperation = 0XC0000090, // STATUS_FLOAT_INVALID_OPERATION + FloatOverflow = 0XC0000091, // STATUS_FLOAT_OVERFLOW + FloatStackCheck = 0XC0000092, // STATUS_FLOAT_STACK_CHECK + FloatUnderflow = 0XC0000093, // STATUS_FLOAT_UNDERFLOW + IntegerDivideByZero = 0XC0000094, // STATUS_INTEGER_DIVIDE_BY_ZERO + IntegerOverflow = 0XC0000095, // STATUS_INTEGER_OVERFLOW + PrivilegedInstruction = 0XC0000096, // STATUS_PRIVILEGED_INSTRUCTION + TooManyPagingFiles = 0XC0000097, // STATUS_TOO_MANY_PAGING_FILES + FileInvalid = 0XC0000098, // STATUS_FILE_INVALID + AllottedSpaceExceeded = 0XC0000099, // STATUS_ALLOTTED_SPACE_EXCEEDED + InsufficientResources = 0XC000009A, // STATUS_INSUFFICIENT_RESOURCES + DfsExitPathFound = 0XC000009B, // STATUS_DFS_EXIT_PATH_FOUND + DeviceDataError = 0XC000009C, // STATUS_DEVICE_DATA_ERROR + DeviceNotConnected = 0XC000009D, // STATUS_DEVICE_NOT_CONNECTED + DevicePowerFailure = 0XC000009E, // STATUS_DEVICE_POWER_FAILURE + FreeVmNotAtBase = 0XC000009F, // STATUS_FREE_VM_NOT_AT_BASE + MemoryNotAllocated = 0XC00000A0, // STATUS_MEMORY_NOT_ALLOCATED + WorkingSetQuota = 0XC00000A1, // STATUS_WORKING_SET_QUOTA + MediaWriteProtected = 0XC00000A2, // STATUS_MEDIA_WRITE_PROTECTED + DeviceNotReady = 0XC00000A3, // STATUS_DEVICE_NOT_READY + InvalidGroupAttributes = 0XC00000A4, // STATUS_INVALID_GROUP_ATTRIBUTES + BadImpersonationLevel = 0XC00000A5, // STATUS_BAD_IMPERSONATION_LEVEL + CantOpenAnonymous = 0XC00000A6, // STATUS_CANT_OPEN_ANONYMOUS + BadValidationClass = 0XC00000A7, // STATUS_BAD_VALIDATION_CLASS + BadTokenType = 0XC00000A8, // STATUS_BAD_TOKEN_TYPE + BadMasterBootRecord = 0XC00000A9, // STATUS_BAD_MASTER_BOOT_RECORD + InstructionMisalignment = 0XC00000AA, // STATUS_INSTRUCTION_MISALIGNMENT + InstanceNotAvailable = 0XC00000AB, // STATUS_INSTANCE_NOT_AVAILABLE + PipeNotAvailable = 0XC00000AC, // STATUS_PIPE_NOT_AVAILABLE + InvalidPipeState = 0XC00000AD, // STATUS_INVALID_PIPE_STATE + PipeBusy = 0XC00000AE, // STATUS_PIPE_BUSY + IllegalFunction = 0XC00000AF, // STATUS_ILLEGAL_FUNCTION + PipeDisconnected = 0XC00000B0, // STATUS_PIPE_DISCONNECTED + PipeClosing = 0XC00000B1, // STATUS_PIPE_CLOSING + PipeConnected = 0XC00000B2, // STATUS_PIPE_CONNECTED + PipeListening = 0XC00000B3, // STATUS_PIPE_LISTENING + InvalidReadMode = 0XC00000B4, // STATUS_INVALID_READ_MODE + IoTimeout = 0XC00000B5, // STATUS_IO_TIMEOUT + FileForcedClosed = 0XC00000B6, // STATUS_FILE_FORCED_CLOSED + ProfilingNotStarted = 0XC00000B7, // STATUS_PROFILING_NOT_STARTED + ProfilingNotStopped = 0XC00000B8, // STATUS_PROFILING_NOT_STOPPED + CouldNotInterpret = 0XC00000B9, // STATUS_COULD_NOT_INTERPRET + FileIsADirectory = 0XC00000BA, // STATUS_FILE_IS_A_DIRECTORY + NotSupported = 0XC00000BB, // STATUS_NOT_SUPPORTED + RemoteNotListening = 0XC00000BC, // STATUS_REMOTE_NOT_LISTENING + DuplicateName = 0XC00000BD, // STATUS_DUPLICATE_NAME + BadNetworkPath = 0XC00000BE, // STATUS_BAD_NETWORK_PATH + NetworkBusy = 0XC00000BF, // STATUS_NETWORK_BUSY + DeviceDoesNotExist = 0XC00000C0, // STATUS_DEVICE_DOES_NOT_EXIST + TooManyCommands = 0XC00000C1, // STATUS_TOO_MANY_COMMANDS + AdapterHardwareError = 0XC00000C2, // STATUS_ADAPTER_HARDWARE_ERROR + InvalidNetworkResponse = 0XC00000C3, // STATUS_INVALID_NETWORK_RESPONSE + UnexpectedNetworkError = 0XC00000C4, // STATUS_UNEXPECTED_NETWORK_ERROR + BadRemoteAdapter = 0XC00000C5, // STATUS_BAD_REMOTE_ADAPTER + PrintQueueFull = 0XC00000C6, // STATUS_PRINT_QUEUE_FULL + NoSpoolSpace = 0XC00000C7, // STATUS_NO_SPOOL_SPACE + PrintCancelled = 0XC00000C8, // STATUS_PRINT_CANCELLED + NetworkNameDeleted = 0XC00000C9, // STATUS_NETWORK_NAME_DELETED + NetworkAccessDenied = 0XC00000CA, // STATUS_NETWORK_ACCESS_DENIED + BadDeviceType = 0XC00000CB, // STATUS_BAD_DEVICE_TYPE + BadNetworkName = 0XC00000CC, // STATUS_BAD_NETWORK_NAME + TooManyNames = 0XC00000CD, // STATUS_TOO_MANY_NAMES + TooManySessions = 0XC00000CE, // STATUS_TOO_MANY_SESSIONS + SharingPaused = 0XC00000CF, // STATUS_SHARING_PAUSED + RequestNotAccepted = 0XC00000D0, // STATUS_REQUEST_NOT_ACCEPTED + RedirectorPaused = 0XC00000D1, // STATUS_REDIRECTOR_PAUSED + NetWriteFault = 0XC00000D2, // STATUS_NET_WRITE_FAULT + ProfilingAtLimit = 0XC00000D3, // STATUS_PROFILING_AT_LIMIT + NotSameDevice = 0XC00000D4, // STATUS_NOT_SAME_DEVICE + FileRenamed = 0XC00000D5, // STATUS_FILE_RENAMED + VirtualCircuitClosed = 0XC00000D6, // STATUS_VIRTUAL_CIRCUIT_CLOSED + NoSecurityOnObject = 0XC00000D7, // STATUS_NO_SECURITY_ON_OBJECT + CantWait = 0XC00000D8, // STATUS_CANT_WAIT + PipeEmpty = 0XC00000D9, // STATUS_PIPE_EMPTY + CantAccessDomainInfo = 0XC00000DA, // STATUS_CANT_ACCESS_DOMAIN_INFO + CantTerminateSelf = 0XC00000DB, // STATUS_CANT_TERMINATE_SELF + InvalidServerState = 0XC00000DC, // STATUS_INVALID_SERVER_STATE + InvalidDomainState = 0XC00000DD, // STATUS_INVALID_DOMAIN_STATE + InvalidDomainRole = 0XC00000DE, // STATUS_INVALID_DOMAIN_ROLE + NoSuchDomain = 0XC00000DF, // STATUS_NO_SUCH_DOMAIN + DomainExists = 0XC00000E0, // STATUS_DOMAIN_EXISTS + DomainLimitExceeded = 0XC00000E1, // STATUS_DOMAIN_LIMIT_EXCEEDED + OplockNotGranted = 0XC00000E2, // STATUS_OPLOCK_NOT_GRANTED + InvalidOplockProtocol = 0XC00000E3, // STATUS_INVALID_OPLOCK_PROTOCOL + InternalDbCorruption = 0XC00000E4, // STATUS_INTERNAL_DB_CORRUPTION + InternalError = 0XC00000E5, // STATUS_INTERNAL_ERROR + GenericNotMapped = 0XC00000E6, // STATUS_GENERIC_NOT_MAPPED + BadDescriptorFormat = 0XC00000E7, // STATUS_BAD_DESCRIPTOR_FORMAT + InvalidUserBuffer = 0XC00000E8, // STATUS_INVALID_USER_BUFFER + UnexpectedIoError = 0XC00000E9, // STATUS_UNEXPECTED_IO_ERROR + UnexpectedMmCreateErr = 0XC00000EA, // STATUS_UNEXPECTED_MM_CREATE_ERR + UnexpectedMmMapError = 0XC00000EB, // STATUS_UNEXPECTED_MM_MAP_ERROR + UnexpectedMmExtendErr = 0XC00000EC, // STATUS_UNEXPECTED_MM_EXTEND_ERR + NotLogonProcess = 0XC00000ED, // STATUS_NOT_LOGON_PROCESS + LogonSessionExists = 0XC00000EE, // STATUS_LOGON_SESSION_EXISTS + InvalidParameter1 = 0XC00000EF, // STATUS_INVALID_PARAMETER_1 + InvalidParameter2 = 0XC00000F0, // STATUS_INVALID_PARAMETER_2 + InvalidParameter3 = 0XC00000F1, // STATUS_INVALID_PARAMETER_3 + InvalidParameter4 = 0XC00000F2, // STATUS_INVALID_PARAMETER_4 + InvalidParameter5 = 0XC00000F3, // STATUS_INVALID_PARAMETER_5 + InvalidParameter6 = 0XC00000F4, // STATUS_INVALID_PARAMETER_6 + InvalidParameter7 = 0XC00000F5, // STATUS_INVALID_PARAMETER_7 + InvalidParameter8 = 0XC00000F6, // STATUS_INVALID_PARAMETER_8 + InvalidParameter9 = 0XC00000F7, // STATUS_INVALID_PARAMETER_9 + InvalidParameter10 = 0XC00000F8, // STATUS_INVALID_PARAMETER_10 + InvalidParameter11 = 0XC00000F9, // STATUS_INVALID_PARAMETER_11 + InvalidParameter12 = 0XC00000FA, // STATUS_INVALID_PARAMETER_12 + RedirectorNotStarted = 0XC00000FB, // STATUS_REDIRECTOR_NOT_STARTED + RedirectorStarted = 0XC00000FC, // STATUS_REDIRECTOR_STARTED + StackOverflow = 0XC00000FD, // STATUS_STACK_OVERFLOW + NoSuchPackage = 0XC00000FE, // STATUS_NO_SUCH_PACKAGE + BadFunctionTable = 0XC00000FF, // STATUS_BAD_FUNCTION_TABLE + VariableNotFound = 0XC0000100, // STATUS_VARIABLE_NOT_FOUND + DirectoryNotEmpty = 0XC0000101, // STATUS_DIRECTORY_NOT_EMPTY + FileCorruptError = 0XC0000102, // STATUS_FILE_CORRUPT_ERROR + NotADirectory = 0XC0000103, // STATUS_NOT_A_DIRECTORY + BadLogonSessionState = 0XC0000104, // STATUS_BAD_LOGON_SESSION_STATE + LogonSessionCollision = 0XC0000105, // STATUS_LOGON_SESSION_COLLISION + NameTooLong = 0XC0000106, // STATUS_NAME_TOO_LONG + FilesOpen = 0XC0000107, // STATUS_FILES_OPEN + ConnectionInUse = 0XC0000108, // STATUS_CONNECTION_IN_USE + MessageNotFound = 0XC0000109, // STATUS_MESSAGE_NOT_FOUND + ProcessIsTerminating = 0XC000010A, // STATUS_PROCESS_IS_TERMINATING + InvalidLogonType = 0XC000010B, // STATUS_INVALID_LOGON_TYPE + NoGuidTranslation = 0XC000010C, // STATUS_NO_GUID_TRANSLATION + CannotImpersonate = 0XC000010D, // STATUS_CANNOT_IMPERSONATE + ImageAlreadyLoaded = 0XC000010E, // STATUS_IMAGE_ALREADY_LOADED + AbiosNotPresent = 0XC000010F, // STATUS_ABIOS_NOT_PRESENT + AbiosLidNotExist = 0XC0000110, // STATUS_ABIOS_LID_NOT_EXIST + AbiosLidAlreadyOwned = 0XC0000111, // STATUS_ABIOS_LID_ALREADY_OWNED + AbiosNotLidOwner = 0XC0000112, // STATUS_ABIOS_NOT_LID_OWNER + AbiosInvalidCommand = 0XC0000113, // STATUS_ABIOS_INVALID_COMMAND + AbiosInvalidLid = 0XC0000114, // STATUS_ABIOS_INVALID_LID + AbiosInvalidSelector = 0XC0000116, // STATUS_ABIOS_INVALID_SELECTOR + NoLdt = 0XC0000117, // STATUS_NO_LDT + InvalidLdtSize = 0XC0000118, // STATUS_INVALID_LDT_SIZE + InvalidLdtOffset = 0XC0000119, // STATUS_INVALID_LDT_OFFSET + InvalidLdtDescriptor = 0XC000011A, // STATUS_INVALID_LDT_DESCRIPTOR + InvalidImageNeFormat = 0XC000011B, // STATUS_INVALID_IMAGE_NE_FORMAT + RxactInvalidState = 0XC000011C, // STATUS_RXACT_INVALID_STATE + RxactCommitFailure = 0XC000011D, // STATUS_RXACT_COMMIT_FAILURE + MappedFileSizeZero = 0XC000011E, // STATUS_MAPPED_FILE_SIZE_ZERO + TooManyOpenedFiles = 0XC000011F, // STATUS_TOO_MANY_OPENED_FILES + Cancelled = 0XC0000120, // STATUS_CANCELLED + CannotDelete = 0XC0000121, // STATUS_CANNOT_DELETE + InvalidComputerName = 0XC0000122, // STATUS_INVALID_COMPUTER_NAME + FileDeleted = 0XC0000123, // STATUS_FILE_DELETED + SpecialAccount = 0XC0000124, // STATUS_SPECIAL_ACCOUNT + SpecialGroup = 0XC0000125, // STATUS_SPECIAL_GROUP + SpecialUser = 0XC0000126, // STATUS_SPECIAL_USER + MembersPrimaryGroup = 0XC0000127, // STATUS_MEMBERS_PRIMARY_GROUP + FileClosed = 0XC0000128, // STATUS_FILE_CLOSED + TooManyThreads = 0XC0000129, // STATUS_TOO_MANY_THREADS + ThreadNotInProcess = 0XC000012A, // STATUS_THREAD_NOT_IN_PROCESS + TokenAlreadyInUse = 0XC000012B, // STATUS_TOKEN_ALREADY_IN_USE + PagefileQuotaExceeded = 0XC000012C, // STATUS_PAGEFILE_QUOTA_EXCEEDED + CommitmentLimit = 0XC000012D, // STATUS_COMMITMENT_LIMIT + InvalidImageLeFormat = 0XC000012E, // STATUS_INVALID_IMAGE_LE_FORMAT + InvalidImageNotMz = 0XC000012F, // STATUS_INVALID_IMAGE_NOT_MZ + InvalidImageProtect = 0XC0000130, // STATUS_INVALID_IMAGE_PROTECT + InvalidImageWin16 = 0XC0000131, // STATUS_INVALID_IMAGE_WIN_16 + LogonServerConflict = 0XC0000132, // STATUS_LOGON_SERVER_CONFLICT + TimeDifferenceAtDc = 0XC0000133, // STATUS_TIME_DIFFERENCE_AT_DC + SynchronizationRequired = 0XC0000134, // STATUS_SYNCHRONIZATION_REQUIRED + DllNotFound = 0XC0000135, // STATUS_DLL_NOT_FOUND + OpenFailed = 0XC0000136, // STATUS_OPEN_FAILED + IoPrivilegeFailed = 0XC0000137, // STATUS_IO_PRIVILEGE_FAILED + OrdinalNotFound = 0XC0000138, // STATUS_ORDINAL_NOT_FOUND + EntrypointNotFound = 0XC0000139, // STATUS_ENTRYPOINT_NOT_FOUND + ControlCExit = 0XC000013A, // STATUS_CONTROL_C_EXIT + LocalDisconnect = 0XC000013B, // STATUS_LOCAL_DISCONNECT + RemoteDisconnect = 0XC000013C, // STATUS_REMOTE_DISCONNECT + RemoteResources = 0XC000013D, // STATUS_REMOTE_RESOURCES + LinkFailed = 0XC000013E, // STATUS_LINK_FAILED + LinkTimeout = 0XC000013F, // STATUS_LINK_TIMEOUT + InvalidConnection = 0XC0000140, // STATUS_INVALID_CONNECTION + InvalidAddress = 0XC0000141, // STATUS_INVALID_ADDRESS + DllInitFailed = 0XC0000142, // STATUS_DLL_INIT_FAILED + MissingSystemfile = 0XC0000143, // STATUS_MISSING_SYSTEMFILE + UnhandledException = 0XC0000144, // STATUS_UNHANDLED_EXCEPTION + AppInitFailure = 0XC0000145, // STATUS_APP_INIT_FAILURE + PagefileCreateFailed = 0XC0000146, // STATUS_PAGEFILE_CREATE_FAILED + NoPagefile = 0XC0000147, // STATUS_NO_PAGEFILE + InvalidLevel = 0XC0000148, // STATUS_INVALID_LEVEL + WrongPasswordCore = 0XC0000149, // STATUS_WRONG_PASSWORD_CORE + IllegalFloatContext = 0XC000014A, // STATUS_ILLEGAL_FLOAT_CONTEXT + PipeBroken = 0XC000014B, // STATUS_PIPE_BROKEN + RegistryCorrupt = 0XC000014C, // STATUS_REGISTRY_CORRUPT + RegistryIoFailed = 0XC000014D, // STATUS_REGISTRY_IO_FAILED + NoEventPair = 0XC000014E, // STATUS_NO_EVENT_PAIR + UnrecognizedVolume = 0XC000014F, // STATUS_UNRECOGNIZED_VOLUME + SerialNoDeviceInited = 0XC0000150, // STATUS_SERIAL_NO_DEVICE_INITED + NoSuchAlias = 0XC0000151, // STATUS_NO_SUCH_ALIAS + MemberNotInAlias = 0XC0000152, // STATUS_MEMBER_NOT_IN_ALIAS + MemberInAlias = 0XC0000153, // STATUS_MEMBER_IN_ALIAS + AliasExists = 0XC0000154, // STATUS_ALIAS_EXISTS + LogonNotGranted = 0XC0000155, // STATUS_LOGON_NOT_GRANTED + TooManySecrets = 0XC0000156, // STATUS_TOO_MANY_SECRETS + SecretTooLong = 0XC0000157, // STATUS_SECRET_TOO_LONG + InternalDbError = 0XC0000158, // STATUS_INTERNAL_DB_ERROR + FullscreenMode = 0XC0000159, // STATUS_FULLSCREEN_MODE + TooManyContextIds = 0XC000015A, // STATUS_TOO_MANY_CONTEXT_IDS + LogonTypeNotGranted = 0XC000015B, // STATUS_LOGON_TYPE_NOT_GRANTED + NotRegistryFile = 0XC000015C, // STATUS_NOT_REGISTRY_FILE + FtMissingMember = 0XC000015F, // STATUS_FT_MISSING_MEMBER + IllFormedServiceEntry = 0XC0000160, // STATUS_ILL_FORMED_SERVICE_ENTRY + IllegalCharacter = 0XC0000161, // STATUS_ILLEGAL_CHARACTER + UnmappableCharacter = 0XC0000162, // STATUS_UNMAPPABLE_CHARACTER + UndefinedCharacter = 0XC0000163, // STATUS_UNDEFINED_CHARACTER + FloppyVolume = 0XC0000164, // STATUS_FLOPPY_VOLUME + FloppyIdMarkNotFound = 0XC0000165, // STATUS_FLOPPY_ID_MARK_NOT_FOUND + FloppyWrongCylinder = 0XC0000166, // STATUS_FLOPPY_WRONG_CYLINDER + FloppyUnknownError = 0XC0000167, // STATUS_FLOPPY_UNKNOWN_ERROR + FloppyBadRegisters = 0XC0000168, // STATUS_FLOPPY_BAD_REGISTERS + DiskRecalibrateFailed = 0XC0000169, // STATUS_DISK_RECALIBRATE_FAILED + DiskOperationFailed = 0XC000016A, // STATUS_DISK_OPERATION_FAILED + DiskResetFailed = 0XC000016B, // STATUS_DISK_RESET_FAILED + SharedIrqBusy = 0XC000016C, // STATUS_SHARED_IRQ_BUSY + FtOrphaning = 0XC000016D, // STATUS_FT_ORPHANING + PartitionFailure = 0XC0000172, // STATUS_PARTITION_FAILURE + InvalidBlockLength = 0XC0000173, // STATUS_INVALID_BLOCK_LENGTH + DeviceNotPartitioned = 0XC0000174, // STATUS_DEVICE_NOT_PARTITIONED + UnableToLockMedia = 0XC0000175, // STATUS_UNABLE_TO_LOCK_MEDIA + UnableToUnloadMedia = 0XC0000176, // STATUS_UNABLE_TO_UNLOAD_MEDIA + EomOverflow = 0XC0000177, // STATUS_EOM_OVERFLOW + NoMedia = 0XC0000178, // STATUS_NO_MEDIA + NoSuchMember = 0XC000017A, // STATUS_NO_SUCH_MEMBER + InvalidMember = 0XC000017B, // STATUS_INVALID_MEMBER + KeyDeleted = 0XC000017C, // STATUS_KEY_DELETED + NoLogSpace = 0XC000017D, // STATUS_NO_LOG_SPACE + TooManySids = 0XC000017E, // STATUS_TOO_MANY_SIDS + KeyHasChildren = 0XC0000180, // STATUS_KEY_HAS_CHILDREN + ChildMustBeVolatile = 0XC0000181, // STATUS_CHILD_MUST_BE_VOLATILE + DriverInternalError = 0XC0000183, // STATUS_DRIVER_INTERNAL_ERROR + InvalidDeviceState = 0XC0000184, // STATUS_INVALID_DEVICE_STATE + IoDeviceError = 0XC0000185, // STATUS_IO_DEVICE_ERROR + DeviceProtocolError = 0XC0000186, // STATUS_DEVICE_PROTOCOL_ERROR + BackupController = 0XC0000187, // STATUS_BACKUP_CONTROLLER + LogFileFull = 0XC0000188, // STATUS_LOG_FILE_FULL + TooLate = 0XC0000189, // STATUS_TOO_LATE + NoTrustLsaSecret = 0XC000018A, // STATUS_NO_TRUST_LSA_SECRET + NoTrustSamAccount = 0XC000018B, // STATUS_NO_TRUST_SAM_ACCOUNT + TrustedDomainFailure = 0XC000018C, // STATUS_TRUSTED_DOMAIN_FAILURE + EventlogFileCorrupt = 0XC000018E, // STATUS_EVENTLOG_FILE_CORRUPT + EventlogCantStart = 0XC000018F, // STATUS_EVENTLOG_CANT_START + TrustFailure = 0XC0000190, // STATUS_TRUST_FAILURE + MutantLimitExceeded = 0XC0000191, // STATUS_MUTANT_LIMIT_EXCEEDED + NetlogonNotStarted = 0XC0000192, // STATUS_NETLOGON_NOT_STARTED + AccountExpired = 0XC0000193, // STATUS_ACCOUNT_EXPIRED + PossibleDeadlock = 0XC0000194, // STATUS_POSSIBLE_DEADLOCK + RemoteSessionLimit = 0XC0000196, // STATUS_REMOTE_SESSION_LIMIT + EventlogFileChanged = 0XC0000197, // STATUS_EVENTLOG_FILE_CHANGED + FsDriverRequired = 0XC000019C, // STATUS_FS_DRIVER_REQUIRED + InvalidLockRange = 0XC00001A1, // STATUS_INVALID_LOCK_RANGE + InvalidAceCondition = 0XC00001A2, // STATUS_INVALID_ACE_CONDITION + DuplicatePrivileges = 0XC00001A6, // STATUS_DUPLICATE_PRIVILEGES + RepairNeeded = 0XC00001A8, // STATUS_REPAIR_NEEDED + QuotaNotEnabled = 0XC00001A9, // STATUS_QUOTA_NOT_ENABLED + NoApplicationPackage = 0XC00001AA, // STATUS_NO_APPLICATION_PACKAGE + NetworkOpenRestriction = 0XC0000201, // STATUS_NETWORK_OPEN_RESTRICTION + NoUserSessionKey = 0XC0000202, // STATUS_NO_USER_SESSION_KEY + UserSessionDeleted = 0XC0000203, // STATUS_USER_SESSION_DELETED + ResourceLangNotFound = 0XC0000204, // STATUS_RESOURCE_LANG_NOT_FOUND + InsuffServerResources = 0XC0000205, // STATUS_INSUFF_SERVER_RESOURCES + InvalidBufferSize = 0XC0000206, // STATUS_INVALID_BUFFER_SIZE + InvalidAddressWildcard = 0XC0000208, // STATUS_INVALID_ADDRESS_WILDCARD + TooManyAddresses = 0XC0000209, // STATUS_TOO_MANY_ADDRESSES + AddressAlreadyExists = 0XC000020A, // STATUS_ADDRESS_ALREADY_EXISTS + AddressClosed = 0XC000020B, // STATUS_ADDRESS_CLOSED + ConnectionDisconnected = 0XC000020C, // STATUS_CONNECTION_DISCONNECTED + ConnectionReset = 0XC000020D, // STATUS_CONNECTION_RESET + TooManyNodes = 0XC000020E, // STATUS_TOO_MANY_NODES + TransactionAborted = 0XC000020F, // STATUS_TRANSACTION_ABORTED + TransactionTimedOut = 0XC0000210, // STATUS_TRANSACTION_TIMED_OUT + TransactionNoRelease = 0XC0000211, // STATUS_TRANSACTION_NO_RELEASE + TransactionNoMatch = 0XC0000212, // STATUS_TRANSACTION_NO_MATCH + TransactionResponded = 0XC0000213, // STATUS_TRANSACTION_RESPONDED + TransactionInvalidId = 0XC0000214, // STATUS_TRANSACTION_INVALID_ID + TransactionInvalidType = 0XC0000215, // STATUS_TRANSACTION_INVALID_TYPE + NotServerSession = 0XC0000216, // STATUS_NOT_SERVER_SESSION + NotClientSession = 0XC0000217, // STATUS_NOT_CLIENT_SESSION + DebugAttachFailed = 0XC0000219, // STATUS_DEBUG_ATTACH_FAILED + DataNotAccepted = 0XC000021B, // STATUS_DATA_NOT_ACCEPTED + NoBrowserServersFound = 0XC000021C, // STATUS_NO_BROWSER_SERVERS_FOUND + VdmHardError = 0XC000021D, // STATUS_VDM_HARD_ERROR + DriverCancelTimeout = 0XC000021E, // STATUS_DRIVER_CANCEL_TIMEOUT + ReplyMessageMismatch = 0XC000021F, // STATUS_REPLY_MESSAGE_MISMATCH + MappedAlignment = 0XC0000220, // STATUS_MAPPED_ALIGNMENT + ImageChecksumMismatch = 0XC0000221, // STATUS_IMAGE_CHECKSUM_MISMATCH + LostWritebehindData = 0XC0000222, // STATUS_LOST_WRITEBEHIND_DATA + PasswordMustChange = 0XC0000224, // STATUS_PASSWORD_MUST_CHANGE + NotFound = 0XC0000225, // STATUS_NOT_FOUND + NotTinyStream = 0XC0000226, // STATUS_NOT_TINY_STREAM + RecoveryFailure = 0XC0000227, // STATUS_RECOVERY_FAILURE + StackOverflowRead = 0XC0000228, // STATUS_STACK_OVERFLOW_READ + FailCheck = 0XC0000229, // STATUS_FAIL_CHECK + DuplicateObjectid = 0XC000022A, // STATUS_DUPLICATE_OBJECTID + ObjectidExists = 0XC000022B, // STATUS_OBJECTID_EXISTS + ConvertToLarge = 0XC000022C, // STATUS_CONVERT_TO_LARGE + Retry = 0XC000022D, // STATUS_RETRY + FoundOutOfScope = 0XC000022E, // STATUS_FOUND_OUT_OF_SCOPE + AllocateBucket = 0XC000022F, // STATUS_ALLOCATE_BUCKET + PropsetNotFound = 0XC0000230, // STATUS_PROPSET_NOT_FOUND + MarshallOverflow = 0XC0000231, // STATUS_MARSHALL_OVERFLOW + InvalidVariant = 0XC0000232, // STATUS_INVALID_VARIANT + AccountLockedOut = 0XC0000234, // STATUS_ACCOUNT_LOCKED_OUT + HandleNotClosable = 0XC0000235, // STATUS_HANDLE_NOT_CLOSABLE + ConnectionRefused = 0XC0000236, // STATUS_CONNECTION_REFUSED + GracefulDisconnect = 0XC0000237, // STATUS_GRACEFUL_DISCONNECT + AddressNotAssociated = 0XC0000239, // STATUS_ADDRESS_NOT_ASSOCIATED + ConnectionInvalid = 0XC000023A, // STATUS_CONNECTION_INVALID + ConnectionActive = 0XC000023B, // STATUS_CONNECTION_ACTIVE + NetworkUnreachable = 0XC000023C, // STATUS_NETWORK_UNREACHABLE + HostUnreachable = 0XC000023D, // STATUS_HOST_UNREACHABLE + ProtocolUnreachable = 0XC000023E, // STATUS_PROTOCOL_UNREACHABLE + PortUnreachable = 0XC000023F, // STATUS_PORT_UNREACHABLE + RequestAborted = 0XC0000240, // STATUS_REQUEST_ABORTED + ConnectionAborted = 0XC0000241, // STATUS_CONNECTION_ABORTED + BadCompressionBuffer = 0XC0000242, // STATUS_BAD_COMPRESSION_BUFFER + UserMappedFile = 0XC0000243, // STATUS_USER_MAPPED_FILE + AuditFailed = 0XC0000244, // STATUS_AUDIT_FAILED + TimerResolutionNotSet = 0XC0000245, // STATUS_TIMER_RESOLUTION_NOT_SET + ConnectionCountLimit = 0XC0000246, // STATUS_CONNECTION_COUNT_LIMIT + LoginTimeRestriction = 0XC0000247, // STATUS_LOGIN_TIME_RESTRICTION + LoginWkstaRestriction = 0XC0000248, // STATUS_LOGIN_WKSTA_RESTRICTION + ImageMpUpMismatch = 0XC0000249, // STATUS_IMAGE_MP_UP_MISMATCH + InsufficientLogonInfo = 0XC0000250, // STATUS_INSUFFICIENT_LOGON_INFO + BadDllEntrypoint = 0XC0000251, // STATUS_BAD_DLL_ENTRYPOINT + BadServiceEntrypoint = 0XC0000252, // STATUS_BAD_SERVICE_ENTRYPOINT + LpcReplyLost = 0XC0000253, // STATUS_LPC_REPLY_LOST + IpAddressConflict1 = 0XC0000254, // STATUS_IP_ADDRESS_CONFLICT1 + IpAddressConflict2 = 0XC0000255, // STATUS_IP_ADDRESS_CONFLICT2 + RegistryQuotaLimit = 0XC0000256, // STATUS_REGISTRY_QUOTA_LIMIT + PathNotCovered = 0XC0000257, // STATUS_PATH_NOT_COVERED + NoCallbackActive = 0XC0000258, // STATUS_NO_CALLBACK_ACTIVE + LicenseQuotaExceeded = 0XC0000259, // STATUS_LICENSE_QUOTA_EXCEEDED + PwdTooShort = 0XC000025A, // STATUS_PWD_TOO_SHORT + PwdTooRecent = 0XC000025B, // STATUS_PWD_TOO_RECENT + PwdHistoryConflict = 0XC000025C, // STATUS_PWD_HISTORY_CONFLICT + PlugplayNoDevice = 0XC000025E, // STATUS_PLUGPLAY_NO_DEVICE + UnsupportedCompression = 0XC000025F, // STATUS_UNSUPPORTED_COMPRESSION + InvalidHwProfile = 0XC0000260, // STATUS_INVALID_HW_PROFILE + DriverOrdinalNotFound = 0XC0000262, // STATUS_DRIVER_ORDINAL_NOT_FOUND + ResourceNotOwned = 0XC0000264, // STATUS_RESOURCE_NOT_OWNED + TooManyLinks = 0XC0000265, // STATUS_TOO_MANY_LINKS + QuotaListInconsistent = 0XC0000266, // STATUS_QUOTA_LIST_INCONSISTENT + FileIsOffline = 0XC0000267, // STATUS_FILE_IS_OFFLINE + EvaluationExpiration = 0XC0000268, // STATUS_EVALUATION_EXPIRATION + IllegalDllRelocation = 0XC0000269, // STATUS_ILLEGAL_DLL_RELOCATION + LicenseViolation = 0XC000026A, // STATUS_LICENSE_VIOLATION + DllInitFailedLogoff = 0XC000026B, // STATUS_DLL_INIT_FAILED_LOGOFF + DriverUnableToLoad = 0XC000026C, // STATUS_DRIVER_UNABLE_TO_LOAD + DfsUnavailable = 0XC000026D, // STATUS_DFS_UNAVAILABLE + VolumeDismounted = 0XC000026E, // STATUS_VOLUME_DISMOUNTED + Wx86InternalError = 0XC000026F, // STATUS_WX86_INTERNAL_ERROR + Wx86FloatStackCheck = 0XC0000270, // STATUS_WX86_FLOAT_STACK_CHECK + ValidateContinue = 0XC0000271, // STATUS_VALIDATE_CONTINUE + NoMatch = 0XC0000272, // STATUS_NO_MATCH + NoMoreMatches = 0XC0000273, // STATUS_NO_MORE_MATCHES + NotAReparsePoint = 0XC0000275, // STATUS_NOT_A_REPARSE_POINT + IoReparseTagInvalid = 0XC0000276, // STATUS_IO_REPARSE_TAG_INVALID + IoReparseTagMismatch = 0XC0000277, // STATUS_IO_REPARSE_TAG_MISMATCH + IoReparseDataInvalid = 0XC0000278, // STATUS_IO_REPARSE_DATA_INVALID + PwdTooLong = 0XC000027A, // STATUS_PWD_TOO_LONG + StowedException = 0XC000027B, // STATUS_STOWED_EXCEPTION + RangeListConflict = 0XC0000282, // STATUS_RANGE_LIST_CONFLICT + SourceElementEmpty = 0XC0000283, // STATUS_SOURCE_ELEMENT_EMPTY + DestinationElementFull = 0XC0000284, // STATUS_DESTINATION_ELEMENT_FULL + IllegalElementAddress = 0XC0000285, // STATUS_ILLEGAL_ELEMENT_ADDRESS + MagazineNotPresent = 0XC0000286, // STATUS_MAGAZINE_NOT_PRESENT + ReinitializationNeeded = 0XC0000287, // STATUS_REINITIALIZATION_NEEDED + DeviceRequiresCleaning = 0X80000288, // STATUS_DEVICE_REQUIRES_CLEANING + DeviceDoorOpen = 0X80000289, // STATUS_DEVICE_DOOR_OPEN + EncryptionFailed = 0XC000028A, // STATUS_ENCRYPTION_FAILED + DecryptionFailed = 0XC000028B, // STATUS_DECRYPTION_FAILED + RangeNotFound = 0XC000028C, // STATUS_RANGE_NOT_FOUND + NoRecoveryPolicy = 0XC000028D, // STATUS_NO_RECOVERY_POLICY + NoEfs = 0XC000028E, // STATUS_NO_EFS + WrongEfs = 0XC000028F, // STATUS_WRONG_EFS + NoUserKeys = 0XC0000290, // STATUS_NO_USER_KEYS + FileNotEncrypted = 0XC0000291, // STATUS_FILE_NOT_ENCRYPTED + NotExportFormat = 0XC0000292, // STATUS_NOT_EXPORT_FORMAT + FileEncrypted = 0XC0000293, // STATUS_FILE_ENCRYPTED + WakeSystem = 0X40000294, // STATUS_WAKE_SYSTEM + WmiGuidNotFound = 0XC0000295, // STATUS_WMI_GUID_NOT_FOUND + WmiInstanceNotFound = 0XC0000296, // STATUS_WMI_INSTANCE_NOT_FOUND + WmiItemidNotFound = 0XC0000297, // STATUS_WMI_ITEMID_NOT_FOUND + WmiTryAgain = 0XC0000298, // STATUS_WMI_TRY_AGAIN + SharedPolicy = 0XC0000299, // STATUS_SHARED_POLICY + PolicyObjectNotFound = 0XC000029A, // STATUS_POLICY_OBJECT_NOT_FOUND + PolicyOnlyInDs = 0XC000029B, // STATUS_POLICY_ONLY_IN_DS + VolumeNotUpgraded = 0XC000029C, // STATUS_VOLUME_NOT_UPGRADED + NoTrackingService = 0XC000029F, // STATUS_NO_TRACKING_SERVICE + ServerSidMismatch = 0XC00002A0, // STATUS_SERVER_SID_MISMATCH + DsNoAttributeOrValue = 0XC00002A1, // STATUS_DS_NO_ATTRIBUTE_OR_VALUE + DsBusy = 0XC00002A5, // STATUS_DS_BUSY + DsUnavailable = 0XC00002A6, // STATUS_DS_UNAVAILABLE + DsNoRidsAllocated = 0XC00002A7, // STATUS_DS_NO_RIDS_ALLOCATED + DsNoMoreRids = 0XC00002A8, // STATUS_DS_NO_MORE_RIDS + DsIncorrectRoleOwner = 0XC00002A9, // STATUS_DS_INCORRECT_ROLE_OWNER + DsRidmgrInitError = 0XC00002AA, // STATUS_DS_RIDMGR_INIT_ERROR + DsObjClassViolation = 0XC00002AB, // STATUS_DS_OBJ_CLASS_VIOLATION + DsCantOnNonLeaf = 0XC00002AC, // STATUS_DS_CANT_ON_NON_LEAF + DsCantOnRdn = 0XC00002AD, // STATUS_DS_CANT_ON_RDN + DsCantModObjClass = 0XC00002AE, // STATUS_DS_CANT_MOD_OBJ_CLASS + DsCrossDomMoveFailed = 0XC00002AF, // STATUS_DS_CROSS_DOM_MOVE_FAILED + DsGcNotAvailable = 0XC00002B0, // STATUS_DS_GC_NOT_AVAILABLE + CantEnableDenyOnly = 0XC00002B3, // STATUS_CANT_ENABLE_DENY_ONLY + FloatMultipleFaults = 0XC00002B4, // STATUS_FLOAT_MULTIPLE_FAULTS + FloatMultipleTraps = 0XC00002B5, // STATUS_FLOAT_MULTIPLE_TRAPS + DeviceRemoved = 0XC00002B6, // STATUS_DEVICE_REMOVED + JournalNotActive = 0XC00002B8, // STATUS_JOURNAL_NOT_ACTIVE + Nointerface = 0XC00002B9, // STATUS_NOINTERFACE + DsRidmgrDisabled = 0XC00002BA, // STATUS_DS_RIDMGR_DISABLED + DsAdminLimitExceeded = 0XC00002C1, // STATUS_DS_ADMIN_LIMIT_EXCEEDED + DriverFailedSleep = 0XC00002C2, // STATUS_DRIVER_FAILED_SLEEP + WmiReadOnly = 0XC00002C6, // STATUS_WMI_READ_ONLY + WmiSetFailure = 0XC00002C7, // STATUS_WMI_SET_FAILURE + CommitmentMinimum = 0XC00002C8, // STATUS_COMMITMENT_MINIMUM + RegNatConsumption = 0XC00002C9, // STATUS_REG_NAT_CONSUMPTION + TransportFull = 0XC00002CA, // STATUS_TRANSPORT_FULL + DsSamInitFailure = 0XC00002CB, // STATUS_DS_SAM_INIT_FAILURE + OnlyIfConnected = 0XC00002CC, // STATUS_ONLY_IF_CONNECTED + PnpRestartEnumeration = 0XC00002CE, // STATUS_PNP_RESTART_ENUMERATION + JournalEntryDeleted = 0XC00002CF, // STATUS_JOURNAL_ENTRY_DELETED + PnpRebootRequired = 0XC00002D2, // STATUS_PNP_REBOOT_REQUIRED + PowerStateInvalid = 0XC00002D3, // STATUS_POWER_STATE_INVALID + DsInvalidGroupType = 0XC00002D4, // STATUS_DS_INVALID_GROUP_TYPE + DsHavePrimaryMembers = 0XC00002DC, // STATUS_DS_HAVE_PRIMARY_MEMBERS + WmiNotSupported = 0XC00002DD, // STATUS_WMI_NOT_SUPPORTED + InsufficientPower = 0XC00002DE, // STATUS_INSUFFICIENT_POWER + SamNeedBootkeyFloppy = 0XC00002E0, // STATUS_SAM_NEED_BOOTKEY_FLOPPY + DsCantStart = 0XC00002E1, // STATUS_DS_CANT_START + DsInitFailure = 0XC00002E2, // STATUS_DS_INIT_FAILURE + SamInitFailure = 0XC00002E3, // STATUS_SAM_INIT_FAILURE + DsGcRequired = 0XC00002E4, // STATUS_DS_GC_REQUIRED + MultipleFaultViolation = 0XC00002E8, // STATUS_MULTIPLE_FAULT_VIOLATION + CannotMake = 0XC00002EA, // STATUS_CANNOT_MAKE + SystemShutdown = 0XC00002EB, // STATUS_SYSTEM_SHUTDOWN + DsInitFailureConsole = 0XC00002EC, // STATUS_DS_INIT_FAILURE_CONSOLE + NoTgtReply = 0XC00002EF, // STATUS_NO_TGT_REPLY + ObjectidNotFound = 0XC00002F0, // STATUS_OBJECTID_NOT_FOUND + NoIpAddresses = 0XC00002F1, // STATUS_NO_IP_ADDRESSES + WrongCredentialHandle = 0XC00002F2, // STATUS_WRONG_CREDENTIAL_HANDLE + CryptoSystemInvalid = 0XC00002F3, // STATUS_CRYPTO_SYSTEM_INVALID + MaxReferralsExceeded = 0XC00002F4, // STATUS_MAX_REFERRALS_EXCEEDED + MustBeKdc = 0XC00002F5, // STATUS_MUST_BE_KDC + TooManyPrincipals = 0XC00002F7, // STATUS_TOO_MANY_PRINCIPALS + NoPaData = 0XC00002F8, // STATUS_NO_PA_DATA + PkinitNameMismatch = 0XC00002F9, // STATUS_PKINIT_NAME_MISMATCH + SmartcardLogonRequired = 0XC00002FA, // STATUS_SMARTCARD_LOGON_REQUIRED + KdcInvalidRequest = 0XC00002FB, // STATUS_KDC_INVALID_REQUEST + KdcUnableToRefer = 0XC00002FC, // STATUS_KDC_UNABLE_TO_REFER + KdcUnknownEtype = 0XC00002FD, // STATUS_KDC_UNKNOWN_ETYPE + ShutdownInProgress = 0XC00002FE, // STATUS_SHUTDOWN_IN_PROGRESS + NotSupportedOnSbs = 0XC0000300, // STATUS_NOT_SUPPORTED_ON_SBS + WmiGuidDisconnected = 0XC0000301, // STATUS_WMI_GUID_DISCONNECTED + WmiAlreadyDisabled = 0XC0000302, // STATUS_WMI_ALREADY_DISABLED + WmiAlreadyEnabled = 0XC0000303, // STATUS_WMI_ALREADY_ENABLED + MftTooFragmented = 0XC0000304, // STATUS_MFT_TOO_FRAGMENTED + CopyProtectionFailure = 0XC0000305, // STATUS_COPY_PROTECTION_FAILURE + CssKeyNotPresent = 0XC0000307, // STATUS_CSS_KEY_NOT_PRESENT + CssKeyNotEstablished = 0XC0000308, // STATUS_CSS_KEY_NOT_ESTABLISHED + CssScrambledSector = 0XC0000309, // STATUS_CSS_SCRAMBLED_SECTOR + CssRegionMismatch = 0XC000030A, // STATUS_CSS_REGION_MISMATCH + CssResetsExhausted = 0XC000030B, // STATUS_CSS_RESETS_EXHAUSTED + PasswordChangeRequired = 0XC000030C, // STATUS_PASSWORD_CHANGE_REQUIRED + PkinitFailure = 0XC0000320, // STATUS_PKINIT_FAILURE + NoKerbKey = 0XC0000322, // STATUS_NO_KERB_KEY + HostDown = 0XC0000350, // STATUS_HOST_DOWN + UnsupportedPreauth = 0XC0000351, // STATUS_UNSUPPORTED_PREAUTH + EfsAlgBlobTooBig = 0XC0000352, // STATUS_EFS_ALG_BLOB_TOO_BIG + PortNotSet = 0XC0000353, // STATUS_PORT_NOT_SET + DebuggerInactive = 0XC0000354, // STATUS_DEBUGGER_INACTIVE + DsVersionCheckFailure = 0XC0000355, // STATUS_DS_VERSION_CHECK_FAILURE + AuditingDisabled = 0XC0000356, // STATUS_AUDITING_DISABLED + Prent4MachineAccount = 0XC0000357, // STATUS_PRENT4_MACHINE_ACCOUNT + InvalidImageWin32 = 0XC0000359, // STATUS_INVALID_IMAGE_WIN_32 + InvalidImageWin64 = 0XC000035A, // STATUS_INVALID_IMAGE_WIN_64 + BadBindings = 0XC000035B, // STATUS_BAD_BINDINGS + NetworkSessionExpired = 0XC000035C, // STATUS_NETWORK_SESSION_EXPIRED + ApphelpBlock = 0XC000035D, // STATUS_APPHELP_BLOCK + AllSidsFiltered = 0XC000035E, // STATUS_ALL_SIDS_FILTERED + NotSafeModeDriver = 0XC000035F, // STATUS_NOT_SAFE_MODE_DRIVER + FailedDriverEntry = 0XC0000365, // STATUS_FAILED_DRIVER_ENTRY + DeviceEnumerationError = 0XC0000366, // STATUS_DEVICE_ENUMERATION_ERROR + MountPointNotResolved = 0XC0000368, // STATUS_MOUNT_POINT_NOT_RESOLVED + McaOccured = 0XC000036A, // STATUS_MCA_OCCURED + SystemHiveTooLarge = 0XC000036E, // STATUS_SYSTEM_HIVE_TOO_LARGE + DsShuttingDown = 0X40000370, // STATUS_DS_SHUTTING_DOWN + NoSecrets = 0XC0000371, // STATUS_NO_SECRETS + FailedStackSwitch = 0XC0000373, // STATUS_FAILED_STACK_SWITCH + HeapCorruption = 0XC0000374, // STATUS_HEAP_CORRUPTION + SmartcardWrongPin = 0XC0000380, // STATUS_SMARTCARD_WRONG_PIN + SmartcardCardBlocked = 0XC0000381, // STATUS_SMARTCARD_CARD_BLOCKED + SmartcardNoCard = 0XC0000383, // STATUS_SMARTCARD_NO_CARD + SmartcardNoCertificate = 0XC0000385, // STATUS_SMARTCARD_NO_CERTIFICATE + SmartcardNoKeyset = 0XC0000386, // STATUS_SMARTCARD_NO_KEYSET + SmartcardIoError = 0XC0000387, // STATUS_SMARTCARD_IO_ERROR + DowngradeDetected = 0XC0000388, // STATUS_DOWNGRADE_DETECTED + SmartcardCertRevoked = 0XC0000389, // STATUS_SMARTCARD_CERT_REVOKED + IssuingCaUntrusted = 0XC000038A, // STATUS_ISSUING_CA_UNTRUSTED + RevocationOfflineC = 0XC000038B, // STATUS_REVOCATION_OFFLINE_C + PkinitClientFailure = 0XC000038C, // STATUS_PKINIT_CLIENT_FAILURE + SmartcardCertExpired = 0XC000038D, // STATUS_SMARTCARD_CERT_EXPIRED + SmartcardSilentContext = 0XC000038F, // STATUS_SMARTCARD_SILENT_CONTEXT + DsNameNotUnique = 0XC0000404, // STATUS_DS_NAME_NOT_UNIQUE + DsDuplicateIdFound = 0XC0000405, // STATUS_DS_DUPLICATE_ID_FOUND + User2UserRequired = 0XC0000408, // STATUS_USER2USER_REQUIRED + StackBufferOverrun = 0XC0000409, // STATUS_STACK_BUFFER_OVERRUN + NoS4UProtSupport = 0XC000040A, // STATUS_NO_S4U_PROT_SUPPORT + RevocationOfflineKdc = 0XC000040C, // STATUS_REVOCATION_OFFLINE_KDC + IssuingCaUntrustedKdc = 0XC000040D, // STATUS_ISSUING_CA_UNTRUSTED_KDC + KdcCertExpired = 0XC000040E, // STATUS_KDC_CERT_EXPIRED + KdcCertRevoked = 0XC000040F, // STATUS_KDC_CERT_REVOKED + ParameterQuotaExceeded = 0XC0000410, // STATUS_PARAMETER_QUOTA_EXCEEDED + HibernationFailure = 0XC0000411, // STATUS_HIBERNATION_FAILURE + DelayLoadFailed = 0XC0000412, // STATUS_DELAY_LOAD_FAILED + VdmDisallowed = 0XC0000414, // STATUS_VDM_DISALLOWED + NtlmBlocked = 0XC0000418, // STATUS_NTLM_BLOCKED + AssertionFailure = 0XC0000420, // STATUS_ASSERTION_FAILURE + VerifierStop = 0XC0000421, // STATUS_VERIFIER_STOP + CallbackPopStack = 0XC0000423, // STATUS_CALLBACK_POP_STACK + HiveUnloaded = 0XC0000425, // STATUS_HIVE_UNLOADED + CompressionDisabled = 0XC0000426, // STATUS_COMPRESSION_DISABLED + FileSystemLimitation = 0XC0000427, // STATUS_FILE_SYSTEM_LIMITATION + InvalidImageHash = 0XC0000428, // STATUS_INVALID_IMAGE_HASH + NotCapable = 0XC0000429, // STATUS_NOT_CAPABLE + RequestOutOfSequence = 0XC000042A, // STATUS_REQUEST_OUT_OF_SEQUENCE + ImplementationLimit = 0XC000042B, // STATUS_IMPLEMENTATION_LIMIT + ElevationRequired = 0XC000042C, // STATUS_ELEVATION_REQUIRED + NoSecurityContext = 0XC000042D, // STATUS_NO_SECURITY_CONTEXT + Pku2UCertFailure = 0XC000042F, // STATUS_PKU2U_CERT_FAILURE + BeyondVdl = 0XC0000432, // STATUS_BEYOND_VDL + PteChanged = 0XC0000434, // STATUS_PTE_CHANGED + PurgeFailed = 0XC0000435, // STATUS_PURGE_FAILED + InvalidLabel = 0XC0000446, // STATUS_INVALID_LABEL + AmbiguousSystemDevice = 0XC0000451, // STATUS_AMBIGUOUS_SYSTEM_DEVICE + SystemDeviceNotFound = 0XC0000452, // STATUS_SYSTEM_DEVICE_NOT_FOUND + RestartBootApplication = 0XC0000453, // STATUS_RESTART_BOOT_APPLICATION + InvalidSession = 0XC0000455, // STATUS_INVALID_SESSION + ThreadNotInSession = 0XC0000457, // STATUS_THREAD_NOT_IN_SESSION + InvalidWeight = 0XC0000458, // STATUS_INVALID_WEIGHT + RequestPaused = 0XC0000459, // STATUS_REQUEST_PAUSED + NoRangesProcessed = 0XC0000460, // STATUS_NO_RANGES_PROCESSED + DiskResourcesExhausted = 0XC0000461, // STATUS_DISK_RESOURCES_EXHAUSTED + NeedsRemediation = 0XC0000462, // STATUS_NEEDS_REMEDIATION + DeviceUnreachable = 0XC0000464, // STATUS_DEVICE_UNREACHABLE + InvalidToken = 0XC0000465, // STATUS_INVALID_TOKEN + ServerUnavailable = 0XC0000466, // STATUS_SERVER_UNAVAILABLE + FileNotAvailable = 0XC0000467, // STATUS_FILE_NOT_AVAILABLE + PackageUpdating = 0XC0000469, // STATUS_PACKAGE_UPDATING + NotReadFromCopy = 0XC000046A, // STATUS_NOT_READ_FROM_COPY + FtWriteFailure = 0XC000046B, // STATUS_FT_WRITE_FAILURE + FtDiScanRequired = 0XC000046C, // STATUS_FT_DI_SCAN_REQUIRED + DataChecksumError = 0XC0000470, // STATUS_DATA_CHECKSUM_ERROR + InvalidOffsetAlignment = 0XC0000474, // STATUS_INVALID_OFFSET_ALIGNMENT + OperationInProgress = 0XC0000476, // STATUS_OPERATION_IN_PROGRESS + ScrubDataDisabled = 0XC0000478, // STATUS_SCRUB_DATA_DISABLED + NotRedundantStorage = 0XC0000479, // STATUS_NOT_REDUNDANT_STORAGE + DirectoryNotSupported = 0XC000047C, // STATUS_DIRECTORY_NOT_SUPPORTED + IoOperationTimeout = 0XC000047D, // STATUS_IO_OPERATION_TIMEOUT + SystemNeedsRemediation = 0XC000047E, // STATUS_SYSTEM_NEEDS_REMEDIATION + ShareUnavailable = 0XC0000480, // STATUS_SHARE_UNAVAILABLE + InvalidTaskName = 0XC0000500, // STATUS_INVALID_TASK_NAME + InvalidTaskIndex = 0XC0000501, // STATUS_INVALID_TASK_INDEX + ThreadAlreadyInTask = 0XC0000502, // STATUS_THREAD_ALREADY_IN_TASK + CallbackBypass = 0XC0000503, // STATUS_CALLBACK_BYPASS + UndefinedScope = 0XC0000504, // STATUS_UNDEFINED_SCOPE + InvalidCap = 0XC0000505, // STATUS_INVALID_CAP + NotGuiProcess = 0XC0000506, // STATUS_NOT_GUI_PROCESS + FailFastException = 0XC0000602, // STATUS_FAIL_FAST_EXCEPTION + ImageCertRevoked = 0XC0000603, // STATUS_IMAGE_CERT_REVOKED + PortClosed = 0XC0000700, // STATUS_PORT_CLOSED + MessageLost = 0XC0000701, // STATUS_MESSAGE_LOST + InvalidMessage = 0XC0000702, // STATUS_INVALID_MESSAGE + RequestCanceled = 0XC0000703, // STATUS_REQUEST_CANCELED + RecursiveDispatch = 0XC0000704, // STATUS_RECURSIVE_DISPATCH + LpcRequestsNotAllowed = 0XC0000707, // STATUS_LPC_REQUESTS_NOT_ALLOWED + ResourceInUse = 0XC0000708, // STATUS_RESOURCE_IN_USE + HardwareMemoryError = 0XC0000709, // STATUS_HARDWARE_MEMORY_ERROR + ProcessIsProtected = 0XC0000712, // STATUS_PROCESS_IS_PROTECTED + McaException = 0XC0000713, // STATUS_MCA_EXCEPTION + SymlinkClassDisabled = 0XC0000715, // STATUS_SYMLINK_CLASS_DISABLED + NoUnicodeTranslation = 0XC0000717, // STATUS_NO_UNICODE_TRANSLATION + AlreadyRegistered = 0XC0000718, // STATUS_ALREADY_REGISTERED + ContextMismatch = 0XC0000719, // STATUS_CONTEXT_MISMATCH + InvalidThread = 0XC000071C, // STATUS_INVALID_THREAD + CallbackReturnedLang = 0XC000071F, // STATUS_CALLBACK_RETURNED_LANG + DiskRepairDisabled = 0XC0000800, // STATUS_DISK_REPAIR_DISABLED + DiskQuotaExceeded = 0XC0000802, // STATUS_DISK_QUOTA_EXCEEDED + DataLostRepair = 0X80000803, // STATUS_DATA_LOST_REPAIR + ContentBlocked = 0XC0000804, // STATUS_CONTENT_BLOCKED + BadClusters = 0XC0000805, // STATUS_BAD_CLUSTERS + VolumeDirty = 0XC0000806, // STATUS_VOLUME_DIRTY + DiskRepairRedirected = 0X40000807, // STATUS_DISK_REPAIR_REDIRECTED + DiskRepairUnsuccessful = 0XC0000808, // STATUS_DISK_REPAIR_UNSUCCESSFUL + CorruptLogOverfull = 0XC0000809, // STATUS_CORRUPT_LOG_OVERFULL + CorruptLogCorrupted = 0XC000080A, // STATUS_CORRUPT_LOG_CORRUPTED + CorruptLogUnavailable = 0XC000080B, // STATUS_CORRUPT_LOG_UNAVAILABLE + CorruptLogDeletedFull = 0XC000080C, // STATUS_CORRUPT_LOG_DELETED_FULL + CorruptLogCleared = 0XC000080D, // STATUS_CORRUPT_LOG_CLEARED + OrphanNameExhausted = 0XC000080E, // STATUS_ORPHAN_NAME_EXHAUSTED + FileCheckedOut = 0XC0000901, // STATUS_FILE_CHECKED_OUT + CheckoutRequired = 0XC0000902, // STATUS_CHECKOUT_REQUIRED + BadFileType = 0XC0000903, // STATUS_BAD_FILE_TYPE + FileTooLarge = 0XC0000904, // STATUS_FILE_TOO_LARGE + FormsAuthRequired = 0XC0000905, // STATUS_FORMS_AUTH_REQUIRED + VirusInfected = 0XC0000906, // STATUS_VIRUS_INFECTED + VirusDeleted = 0XC0000907, // STATUS_VIRUS_DELETED + BadMcfgTable = 0XC0000908, // STATUS_BAD_MCFG_TABLE + CannotBreakOplock = 0XC0000909, // STATUS_CANNOT_BREAK_OPLOCK + BadKey = 0XC000090A, // STATUS_BAD_KEY + BadData = 0XC000090B, // STATUS_BAD_DATA + NoKey = 0XC000090C, // STATUS_NO_KEY + FileHandleRevoked = 0XC0000910, // STATUS_FILE_HANDLE_REVOKED + WowAssertion = 0XC0009898, // STATUS_WOW_ASSERTION + InvalidSignature = 0XC000A000, // STATUS_INVALID_SIGNATURE + HmacNotSupported = 0XC000A001, // STATUS_HMAC_NOT_SUPPORTED + AuthTagMismatch = 0XC000A002, // STATUS_AUTH_TAG_MISMATCH + InvalidStateTransition = 0XC000A003, // STATUS_INVALID_STATE_TRANSITION + InvalidPepInfoVersion = 0XC000A005, // STATUS_INVALID_PEP_INFO_VERSION + IpsecQueueOverflow = 0XC000A010, // STATUS_IPSEC_QUEUE_OVERFLOW + NdQueueOverflow = 0XC000A011, // STATUS_ND_QUEUE_OVERFLOW + HoplimitExceeded = 0XC000A012, // STATUS_HOPLIMIT_EXCEEDED + ProtocolNotSupported = 0XC000A013, // STATUS_PROTOCOL_NOT_SUPPORTED + FastpathRejected = 0XC000A014, // STATUS_FASTPATH_REJECTED + XmlParseError = 0XC000A083, // STATUS_XML_PARSE_ERROR + XmldsigError = 0XC000A084, // STATUS_XMLDSIG_ERROR + WrongCompartment = 0XC000A085, // STATUS_WRONG_COMPARTMENT + AuthipFailure = 0XC000A086, // STATUS_AUTHIP_FAILURE + DsOidNotFound = 0XC000A088, // STATUS_DS_OID_NOT_FOUND + IncorrectAccountType = 0XC000A089, // STATUS_INCORRECT_ACCOUNT_TYPE + HashNotSupported = 0XC000A100, // STATUS_HASH_NOT_SUPPORTED + HashNotPresent = 0XC000A101, // STATUS_HASH_NOT_PRESENT + GpioOperationDenied = 0XC000A125, // STATUS_GPIO_OPERATION_DENIED + CannotSwitchRunlevel = 0XC000A141, // STATUS_CANNOT_SWITCH_RUNLEVEL + InvalidRunlevelSetting = 0XC000A142, // STATUS_INVALID_RUNLEVEL_SETTING + RunlevelSwitchTimeout = 0XC000A143, // STATUS_RUNLEVEL_SWITCH_TIMEOUT + NotAppcontainer = 0XC000A200, // STATUS_NOT_APPCONTAINER + AppDataNotFound = 0XC000A281, // STATUS_APP_DATA_NOT_FOUND + AppDataExpired = 0XC000A282, // STATUS_APP_DATA_EXPIRED + AppDataCorrupt = 0XC000A283, // STATUS_APP_DATA_CORRUPT + AppDataLimitExceeded = 0XC000A284, // STATUS_APP_DATA_LIMIT_EXCEEDED + AppDataRebootRequired = 0XC000A285, // STATUS_APP_DATA_REBOOT_REQUIRED + DbgNoStateChange = 0XC0010001, // DBG_NO_STATE_CHANGE + DbgAppNotIdle = 0XC0010002, // DBG_APP_NOT_IDLE + RpcNtInvalidStringBinding = 0XC0020001, // RPC_NT_INVALID_STRING_BINDING + RpcNtWrongKindOfBinding = 0XC0020002, // RPC_NT_WRONG_KIND_OF_BINDING + RpcNtInvalidBinding = 0XC0020003, // RPC_NT_INVALID_BINDING + RpcNtProtseqNotSupported = 0XC0020004, // RPC_NT_PROTSEQ_NOT_SUPPORTED + RpcNtInvalidRpcProtseq = 0XC0020005, // RPC_NT_INVALID_RPC_PROTSEQ + RpcNtInvalidStringUuid = 0XC0020006, // RPC_NT_INVALID_STRING_UUID + RpcNtInvalidEndpointFormat = 0XC0020007, // RPC_NT_INVALID_ENDPOINT_FORMAT + RpcNtInvalidNetAddr = 0XC0020008, // RPC_NT_INVALID_NET_ADDR + RpcNtNoEndpointFound = 0XC0020009, // RPC_NT_NO_ENDPOINT_FOUND + RpcNtInvalidTimeout = 0XC002000A, // RPC_NT_INVALID_TIMEOUT + RpcNtObjectNotFound = 0XC002000B, // RPC_NT_OBJECT_NOT_FOUND + RpcNtAlreadyRegistered = 0XC002000C, // RPC_NT_ALREADY_REGISTERED + RpcNtTypeAlreadyRegistered = 0XC002000D, // RPC_NT_TYPE_ALREADY_REGISTERED + RpcNtAlreadyListening = 0XC002000E, // RPC_NT_ALREADY_LISTENING + RpcNtNoProtseqsRegistered = 0XC002000F, // RPC_NT_NO_PROTSEQS_REGISTERED + RpcNtNotListening = 0XC0020010, // RPC_NT_NOT_LISTENING + RpcNtUnknownMgrType = 0XC0020011, // RPC_NT_UNKNOWN_MGR_TYPE + RpcNtUnknownIf = 0XC0020012, // RPC_NT_UNKNOWN_IF + RpcNtNoBindings = 0XC0020013, // RPC_NT_NO_BINDINGS + RpcNtNoProtseqs = 0XC0020014, // RPC_NT_NO_PROTSEQS + RpcNtCantCreateEndpoint = 0XC0020015, // RPC_NT_CANT_CREATE_ENDPOINT + RpcNtOutOfResources = 0XC0020016, // RPC_NT_OUT_OF_RESOURCES + RpcNtServerUnavailable = 0XC0020017, // RPC_NT_SERVER_UNAVAILABLE + RpcNtServerTooBusy = 0XC0020018, // RPC_NT_SERVER_TOO_BUSY + RpcNtInvalidNetworkOptions = 0XC0020019, // RPC_NT_INVALID_NETWORK_OPTIONS + RpcNtNoCallActive = 0XC002001A, // RPC_NT_NO_CALL_ACTIVE + RpcNtCallFailed = 0XC002001B, // RPC_NT_CALL_FAILED + RpcNtCallFailedDne = 0XC002001C, // RPC_NT_CALL_FAILED_DNE + RpcNtProtocolError = 0XC002001D, // RPC_NT_PROTOCOL_ERROR + RpcNtUnsupportedTransSyn = 0XC002001F, // RPC_NT_UNSUPPORTED_TRANS_SYN + RpcNtUnsupportedType = 0XC0020021, // RPC_NT_UNSUPPORTED_TYPE + RpcNtInvalidTag = 0XC0020022, // RPC_NT_INVALID_TAG + RpcNtInvalidBound = 0XC0020023, // RPC_NT_INVALID_BOUND + RpcNtNoEntryName = 0XC0020024, // RPC_NT_NO_ENTRY_NAME + RpcNtInvalidNameSyntax = 0XC0020025, // RPC_NT_INVALID_NAME_SYNTAX + RpcNtUnsupportedNameSyntax = 0XC0020026, // RPC_NT_UNSUPPORTED_NAME_SYNTAX + RpcNtUuidNoAddress = 0XC0020028, // RPC_NT_UUID_NO_ADDRESS + RpcNtDuplicateEndpoint = 0XC0020029, // RPC_NT_DUPLICATE_ENDPOINT + RpcNtUnknownAuthnType = 0XC002002A, // RPC_NT_UNKNOWN_AUTHN_TYPE + RpcNtMaxCallsTooSmall = 0XC002002B, // RPC_NT_MAX_CALLS_TOO_SMALL + RpcNtStringTooLong = 0XC002002C, // RPC_NT_STRING_TOO_LONG + RpcNtProtseqNotFound = 0XC002002D, // RPC_NT_PROTSEQ_NOT_FOUND + RpcNtProcnumOutOfRange = 0XC002002E, // RPC_NT_PROCNUM_OUT_OF_RANGE + RpcNtBindingHasNoAuth = 0XC002002F, // RPC_NT_BINDING_HAS_NO_AUTH + RpcNtUnknownAuthnService = 0XC0020030, // RPC_NT_UNKNOWN_AUTHN_SERVICE + RpcNtUnknownAuthnLevel = 0XC0020031, // RPC_NT_UNKNOWN_AUTHN_LEVEL + RpcNtInvalidAuthIdentity = 0XC0020032, // RPC_NT_INVALID_AUTH_IDENTITY + RpcNtUnknownAuthzService = 0XC0020033, // RPC_NT_UNKNOWN_AUTHZ_SERVICE + EptNtInvalidEntry = 0XC0020034, // EPT_NT_INVALID_ENTRY + EptNtCantPerformOp = 0XC0020035, // EPT_NT_CANT_PERFORM_OP + EptNtNotRegistered = 0XC0020036, // EPT_NT_NOT_REGISTERED + RpcNtNothingToExport = 0XC0020037, // RPC_NT_NOTHING_TO_EXPORT + RpcNtIncompleteName = 0XC0020038, // RPC_NT_INCOMPLETE_NAME + RpcNtInvalidVersOption = 0XC0020039, // RPC_NT_INVALID_VERS_OPTION + RpcNtNoMoreMembers = 0XC002003A, // RPC_NT_NO_MORE_MEMBERS + RpcNtNotAllObjsUnexported = 0XC002003B, // RPC_NT_NOT_ALL_OBJS_UNEXPORTED + RpcNtInterfaceNotFound = 0XC002003C, // RPC_NT_INTERFACE_NOT_FOUND + RpcNtEntryAlreadyExists = 0XC002003D, // RPC_NT_ENTRY_ALREADY_EXISTS + RpcNtEntryNotFound = 0XC002003E, // RPC_NT_ENTRY_NOT_FOUND + RpcNtNameServiceUnavailable = 0XC002003F, // RPC_NT_NAME_SERVICE_UNAVAILABLE + RpcNtInvalidNafId = 0XC0020040, // RPC_NT_INVALID_NAF_ID + RpcNtCannotSupport = 0XC0020041, // RPC_NT_CANNOT_SUPPORT + RpcNtNoContextAvailable = 0XC0020042, // RPC_NT_NO_CONTEXT_AVAILABLE + RpcNtInternalError = 0XC0020043, // RPC_NT_INTERNAL_ERROR + RpcNtZeroDivide = 0XC0020044, // RPC_NT_ZERO_DIVIDE + RpcNtAddressError = 0XC0020045, // RPC_NT_ADDRESS_ERROR + RpcNtFpDivZero = 0XC0020046, // RPC_NT_FP_DIV_ZERO + RpcNtFpUnderflow = 0XC0020047, // RPC_NT_FP_UNDERFLOW + RpcNtFpOverflow = 0XC0020048, // RPC_NT_FP_OVERFLOW + RpcNtNoMoreEntries = 0XC0030001, // RPC_NT_NO_MORE_ENTRIES + RpcNtSsCharTransOpenFail = 0XC0030002, // RPC_NT_SS_CHAR_TRANS_OPEN_FAIL + RpcNtSsCharTransShortFile = 0XC0030003, // RPC_NT_SS_CHAR_TRANS_SHORT_FILE + RpcNtSsInNullContext = 0XC0030004, // RPC_NT_SS_IN_NULL_CONTEXT + RpcNtSsContextMismatch = 0XC0030005, // RPC_NT_SS_CONTEXT_MISMATCH + RpcNtSsContextDamaged = 0XC0030006, // RPC_NT_SS_CONTEXT_DAMAGED + RpcNtSsHandlesMismatch = 0XC0030007, // RPC_NT_SS_HANDLES_MISMATCH + RpcNtNullRefPointer = 0XC0030009, // RPC_NT_NULL_REF_POINTER + RpcNtEnumValueOutOfRange = 0XC003000A, // RPC_NT_ENUM_VALUE_OUT_OF_RANGE + RpcNtByteCountTooSmall = 0XC003000B, // RPC_NT_BYTE_COUNT_TOO_SMALL + RpcNtBadStubData = 0XC003000C, // RPC_NT_BAD_STUB_DATA + RpcNtCallInProgress = 0XC0020049, // RPC_NT_CALL_IN_PROGRESS + RpcNtNoMoreBindings = 0XC002004A, // RPC_NT_NO_MORE_BINDINGS + RpcNtGroupMemberNotFound = 0XC002004B, // RPC_NT_GROUP_MEMBER_NOT_FOUND + EptNtCantCreate = 0XC002004C, // EPT_NT_CANT_CREATE + RpcNtInvalidObject = 0XC002004D, // RPC_NT_INVALID_OBJECT + RpcNtNoInterfaces = 0XC002004F, // RPC_NT_NO_INTERFACES + RpcNtCallCancelled = 0XC0020050, // RPC_NT_CALL_CANCELLED + RpcNtBindingIncomplete = 0XC0020051, // RPC_NT_BINDING_INCOMPLETE + RpcNtCommFailure = 0XC0020052, // RPC_NT_COMM_FAILURE + RpcNtUnsupportedAuthnLevel = 0XC0020053, // RPC_NT_UNSUPPORTED_AUTHN_LEVEL + RpcNtNoPrincName = 0XC0020054, // RPC_NT_NO_PRINC_NAME + RpcNtNotRpcError = 0XC0020055, // RPC_NT_NOT_RPC_ERROR + RpcNtUuidLocalOnly = 0X40020056, // RPC_NT_UUID_LOCAL_ONLY + RpcNtSecPkgError = 0XC0020057, // RPC_NT_SEC_PKG_ERROR + RpcNtNotCancelled = 0XC0020058, // RPC_NT_NOT_CANCELLED + RpcNtInvalidEsAction = 0XC0030059, // RPC_NT_INVALID_ES_ACTION + RpcNtWrongEsVersion = 0XC003005A, // RPC_NT_WRONG_ES_VERSION + RpcNtWrongStubVersion = 0XC003005B, // RPC_NT_WRONG_STUB_VERSION + RpcNtInvalidPipeObject = 0XC003005C, // RPC_NT_INVALID_PIPE_OBJECT + RpcNtInvalidPipeOperation = 0XC003005D, // RPC_NT_INVALID_PIPE_OPERATION + RpcNtWrongPipeVersion = 0XC003005E, // RPC_NT_WRONG_PIPE_VERSION + RpcNtPipeClosed = 0XC003005F, // RPC_NT_PIPE_CLOSED + RpcNtPipeDisciplineError = 0XC0030060, // RPC_NT_PIPE_DISCIPLINE_ERROR + RpcNtPipeEmpty = 0XC0030061, // RPC_NT_PIPE_EMPTY + RpcNtInvalidAsyncHandle = 0XC0020062, // RPC_NT_INVALID_ASYNC_HANDLE + RpcNtInvalidAsyncCall = 0XC0020063, // RPC_NT_INVALID_ASYNC_CALL + RpcNtProxyAccessDenied = 0XC0020064, // RPC_NT_PROXY_ACCESS_DENIED + RpcNtCookieAuthFailed = 0XC0020065, // RPC_NT_COOKIE_AUTH_FAILED + RpcNtSendIncomplete = 0X400200AF, // RPC_NT_SEND_INCOMPLETE + AcpiInvalidOpcode = 0XC0140001, // STATUS_ACPI_INVALID_OPCODE + AcpiStackOverflow = 0XC0140002, // STATUS_ACPI_STACK_OVERFLOW + AcpiAssertFailed = 0XC0140003, // STATUS_ACPI_ASSERT_FAILED + AcpiInvalidIndex = 0XC0140004, // STATUS_ACPI_INVALID_INDEX + AcpiInvalidArgument = 0XC0140005, // STATUS_ACPI_INVALID_ARGUMENT + AcpiFatal = 0XC0140006, // STATUS_ACPI_FATAL + AcpiInvalidSupername = 0XC0140007, // STATUS_ACPI_INVALID_SUPERNAME + AcpiInvalidArgtype = 0XC0140008, // STATUS_ACPI_INVALID_ARGTYPE + AcpiInvalidObjtype = 0XC0140009, // STATUS_ACPI_INVALID_OBJTYPE + AcpiInvalidTargettype = 0XC014000A, // STATUS_ACPI_INVALID_TARGETTYPE + AcpiAddressNotMapped = 0XC014000C, // STATUS_ACPI_ADDRESS_NOT_MAPPED + AcpiInvalidEventtype = 0XC014000D, // STATUS_ACPI_INVALID_EVENTTYPE + AcpiHandlerCollision = 0XC014000E, // STATUS_ACPI_HANDLER_COLLISION + AcpiInvalidData = 0XC014000F, // STATUS_ACPI_INVALID_DATA + AcpiInvalidRegion = 0XC0140010, // STATUS_ACPI_INVALID_REGION + AcpiInvalidAccessSize = 0XC0140011, // STATUS_ACPI_INVALID_ACCESS_SIZE + AcpiAcquireGlobalLock = 0XC0140012, // STATUS_ACPI_ACQUIRE_GLOBAL_LOCK + AcpiAlreadyInitialized = 0XC0140013, // STATUS_ACPI_ALREADY_INITIALIZED + AcpiNotInitialized = 0XC0140014, // STATUS_ACPI_NOT_INITIALIZED + AcpiInvalidMutexLevel = 0XC0140015, // STATUS_ACPI_INVALID_MUTEX_LEVEL + AcpiMutexNotOwned = 0XC0140016, // STATUS_ACPI_MUTEX_NOT_OWNED + AcpiMutexNotOwner = 0XC0140017, // STATUS_ACPI_MUTEX_NOT_OWNER + AcpiRsAccess = 0XC0140018, // STATUS_ACPI_RS_ACCESS + AcpiInvalidTable = 0XC0140019, // STATUS_ACPI_INVALID_TABLE + AcpiRegHandlerFailed = 0XC0140020, // STATUS_ACPI_REG_HANDLER_FAILED + CtxCdmConnect = 0X400A0004, // STATUS_CTX_CDM_CONNECT + CtxCdmDisconnect = 0X400A0005, // STATUS_CTX_CDM_DISCONNECT + CtxClosePending = 0XC00A0006, // STATUS_CTX_CLOSE_PENDING + CtxNoOutbuf = 0XC00A0007, // STATUS_CTX_NO_OUTBUF + CtxModemInfNotFound = 0XC00A0008, // STATUS_CTX_MODEM_INF_NOT_FOUND + CtxResponseError = 0XC00A000A, // STATUS_CTX_RESPONSE_ERROR + CtxModemResponseBusy = 0XC00A000E, // STATUS_CTX_MODEM_RESPONSE_BUSY + CtxModemResponseVoice = 0XC00A000F, // STATUS_CTX_MODEM_RESPONSE_VOICE + CtxTdError = 0XC00A0010, // STATUS_CTX_TD_ERROR + CtxLicenseExpired = 0XC00A0014, // STATUS_CTX_LICENSE_EXPIRED + CtxWinstationNotFound = 0XC00A0015, // STATUS_CTX_WINSTATION_NOT_FOUND + CtxWinstationBusy = 0XC00A0017, // STATUS_CTX_WINSTATION_BUSY + CtxBadVideoMode = 0XC00A0018, // STATUS_CTX_BAD_VIDEO_MODE + CtxGraphicsInvalid = 0XC00A0022, // STATUS_CTX_GRAPHICS_INVALID + CtxNotConsole = 0XC00A0024, // STATUS_CTX_NOT_CONSOLE + CtxClientQueryTimeout = 0XC00A0026, // STATUS_CTX_CLIENT_QUERY_TIMEOUT + CtxConsoleDisconnect = 0XC00A0027, // STATUS_CTX_CONSOLE_DISCONNECT + CtxConsoleConnect = 0XC00A0028, // STATUS_CTX_CONSOLE_CONNECT + CtxShadowDenied = 0XC00A002A, // STATUS_CTX_SHADOW_DENIED + CtxShadowInvalid = 0XC00A0030, // STATUS_CTX_SHADOW_INVALID + CtxShadowDisabled = 0XC00A0031, // STATUS_CTX_SHADOW_DISABLED + CtxShadowNotRunning = 0XC00A0036, // STATUS_CTX_SHADOW_NOT_RUNNING + CtxLogonDisabled = 0XC00A0037, // STATUS_CTX_LOGON_DISABLED + TsIncompatibleSessions = 0XC00A0039, // STATUS_TS_INCOMPATIBLE_SESSIONS + TsVideoSubsystemError = 0XC00A003A, // STATUS_TS_VIDEO_SUBSYSTEM_ERROR + PnpBadMpsTable = 0XC0040035, // STATUS_PNP_BAD_MPS_TABLE + PnpTranslationFailed = 0XC0040036, // STATUS_PNP_TRANSLATION_FAILED + IoReissueAsCached = 0XC0040039, // STATUS_IO_REISSUE_AS_CACHED + MuiFileNotFound = 0XC00B0001, // STATUS_MUI_FILE_NOT_FOUND + MuiInvalidFile = 0XC00B0002, // STATUS_MUI_INVALID_FILE + MuiInvalidRcConfig = 0XC00B0003, // STATUS_MUI_INVALID_RC_CONFIG + MuiInvalidLocaleName = 0XC00B0004, // STATUS_MUI_INVALID_LOCALE_NAME + MuiFileNotLoaded = 0XC00B0006, // STATUS_MUI_FILE_NOT_LOADED + ResourceEnumUserStop = 0XC00B0007, // STATUS_RESOURCE_ENUM_USER_STOP + FltNoHandlerDefined = 0XC01C0001, // STATUS_FLT_NO_HANDLER_DEFINED + FltDisallowFastIo = 0XC01C0004, // STATUS_FLT_DISALLOW_FAST_IO + FltInvalidNameRequest = 0XC01C0005, // STATUS_FLT_INVALID_NAME_REQUEST + FltNotInitialized = 0XC01C0007, // STATUS_FLT_NOT_INITIALIZED + FltFilterNotReady = 0XC01C0008, // STATUS_FLT_FILTER_NOT_READY + FltInternalError = 0XC01C000A, // STATUS_FLT_INTERNAL_ERROR + FltDeletingObject = 0XC01C000B, // STATUS_FLT_DELETING_OBJECT + FltDuplicateEntry = 0XC01C000D, // STATUS_FLT_DUPLICATE_ENTRY + FltCbdqDisabled = 0XC01C000E, // STATUS_FLT_CBDQ_DISABLED + FltDoNotAttach = 0XC01C000F, // STATUS_FLT_DO_NOT_ATTACH + FltDoNotDetach = 0XC01C0010, // STATUS_FLT_DO_NOT_DETACH + FltFilterNotFound = 0XC01C0013, // STATUS_FLT_FILTER_NOT_FOUND + FltVolumeNotFound = 0XC01C0014, // STATUS_FLT_VOLUME_NOT_FOUND + FltInstanceNotFound = 0XC01C0015, // STATUS_FLT_INSTANCE_NOT_FOUND + FltNameCacheMiss = 0XC01C0018, // STATUS_FLT_NAME_CACHE_MISS + FltNoDeviceObject = 0XC01C0019, // STATUS_FLT_NO_DEVICE_OBJECT + FltAlreadyEnlisted = 0XC01C001B, // STATUS_FLT_ALREADY_ENLISTED + FltNoWaiterForReply = 0XC01C0020, // STATUS_FLT_NO_WAITER_FOR_REPLY + FltRegistrationBusy = 0XC01C0023, // STATUS_FLT_REGISTRATION_BUSY + SxsSectionNotFound = 0XC0150001, // STATUS_SXS_SECTION_NOT_FOUND + SxsCantGenActctx = 0XC0150002, // STATUS_SXS_CANT_GEN_ACTCTX + SxsAssemblyNotFound = 0XC0150004, // STATUS_SXS_ASSEMBLY_NOT_FOUND + SxsManifestParseError = 0XC0150006, // STATUS_SXS_MANIFEST_PARSE_ERROR + SxsKeyNotFound = 0XC0150008, // STATUS_SXS_KEY_NOT_FOUND + SxsVersionConflict = 0XC0150009, // STATUS_SXS_VERSION_CONFLICT + SxsWrongSectionType = 0XC015000A, // STATUS_SXS_WRONG_SECTION_TYPE + SxsAssemblyMissing = 0XC015000C, // STATUS_SXS_ASSEMBLY_MISSING + SxsEarlyDeactivation = 0XC015000F, // STATUS_SXS_EARLY_DEACTIVATION + SxsInvalidDeactivation = 0XC0150010, // STATUS_SXS_INVALID_DEACTIVATION + SxsCorruption = 0XC0150015, // STATUS_SXS_CORRUPTION + SxsIdentityParseError = 0XC0150019, // STATUS_SXS_IDENTITY_PARSE_ERROR + SxsFileHashMismatch = 0XC015001B, // STATUS_SXS_FILE_HASH_MISMATCH + SxsIdentitiesDifferent = 0XC015001D, // STATUS_SXS_IDENTITIES_DIFFERENT + XmlEncodingMismatch = 0XC0150021, // STATUS_XML_ENCODING_MISMATCH + SxsManifestTooBig = 0XC0150022, // STATUS_SXS_MANIFEST_TOO_BIG + GenericCommandFailed = 0XC0150026, // STATUS_GENERIC_COMMAND_FAILED + SxsFileHashMissing = 0XC0150027, // STATUS_SXS_FILE_HASH_MISSING + ClusterInvalidNode = 0XC0130001, // STATUS_CLUSTER_INVALID_NODE + ClusterNodeExists = 0XC0130002, // STATUS_CLUSTER_NODE_EXISTS + ClusterJoinInProgress = 0XC0130003, // STATUS_CLUSTER_JOIN_IN_PROGRESS + ClusterNodeNotFound = 0XC0130004, // STATUS_CLUSTER_NODE_NOT_FOUND + ClusterNetworkExists = 0XC0130006, // STATUS_CLUSTER_NETWORK_EXISTS + ClusterInvalidRequest = 0XC013000A, // STATUS_CLUSTER_INVALID_REQUEST + ClusterNodeDown = 0XC013000C, // STATUS_CLUSTER_NODE_DOWN + ClusterNodeUnreachable = 0XC013000D, // STATUS_CLUSTER_NODE_UNREACHABLE + ClusterNodeNotMember = 0XC013000E, // STATUS_CLUSTER_NODE_NOT_MEMBER + ClusterInvalidNetwork = 0XC0130010, // STATUS_CLUSTER_INVALID_NETWORK + ClusterNoNetAdapters = 0XC0130011, // STATUS_CLUSTER_NO_NET_ADAPTERS + ClusterNodeUp = 0XC0130012, // STATUS_CLUSTER_NODE_UP + ClusterNodePaused = 0XC0130013, // STATUS_CLUSTER_NODE_PAUSED + ClusterNodeNotPaused = 0XC0130014, // STATUS_CLUSTER_NODE_NOT_PAUSED + ClusterPoisoned = 0XC0130017, // STATUS_CLUSTER_POISONED + ClusterNonCsvPath = 0XC0130018, // STATUS_CLUSTER_NON_CSV_PATH + ClusterCsvRedirected = 0XC0130022, // STATUS_CLUSTER_CSV_REDIRECTED + TransactionalConflict = 0XC0190001, // STATUS_TRANSACTIONAL_CONFLICT + InvalidTransaction = 0XC0190002, // STATUS_INVALID_TRANSACTION + TransactionNotActive = 0XC0190003, // STATUS_TRANSACTION_NOT_ACTIVE + TmInitializationFailed = 0XC0190004, // STATUS_TM_INITIALIZATION_FAILED + RmNotActive = 0XC0190005, // STATUS_RM_NOT_ACTIVE + RmMetadataCorrupt = 0XC0190006, // STATUS_RM_METADATA_CORRUPT + TransactionNotJoined = 0XC0190007, // STATUS_TRANSACTION_NOT_JOINED + DirectoryNotRm = 0XC0190008, // STATUS_DIRECTORY_NOT_RM + CouldNotResizeLog = 0X80190009, // STATUS_COULD_NOT_RESIZE_LOG + LogResizeInvalidSize = 0XC019000B, // STATUS_LOG_RESIZE_INVALID_SIZE + CrmProtocolNotFound = 0XC0190011, // STATUS_CRM_PROTOCOL_NOT_FOUND + LogGrowthFailed = 0XC0190019, // STATUS_LOG_GROWTH_FAILED + ObjectNoLongerExists = 0XC0190021, // STATUS_OBJECT_NO_LONGER_EXISTS + HandleNoLongerValid = 0XC0190028, // STATUS_HANDLE_NO_LONGER_VALID + NoTxfMetadata = 0X80190029, // STATUS_NO_TXF_METADATA + LogCorruptionDetected = 0XC0190030, // STATUS_LOG_CORRUPTION_DETECTED + RmDisconnected = 0XC0190032, // STATUS_RM_DISCONNECTED + EnlistmentNotSuperior = 0XC0190033, // STATUS_ENLISTMENT_NOT_SUPERIOR + RecoveryNotNeeded = 0X40190034, // STATUS_RECOVERY_NOT_NEEDED + RmAlreadyStarted = 0X40190035, // STATUS_RM_ALREADY_STARTED + CantCrossRmBoundary = 0XC0190038, // STATUS_CANT_CROSS_RM_BOUNDARY + TxfDirNotEmpty = 0XC0190039, // STATUS_TXF_DIR_NOT_EMPTY + TmVolatile = 0XC019003B, // STATUS_TM_VOLATILE + RollbackTimerExpired = 0XC019003C, // STATUS_ROLLBACK_TIMER_EXPIRED + TxfAttributeCorrupt = 0XC019003D, // STATUS_TXF_ATTRIBUTE_CORRUPT + TransactionsNotFrozen = 0XC0190045, // STATUS_TRANSACTIONS_NOT_FROZEN + NotSnapshotVolume = 0XC0190047, // STATUS_NOT_SNAPSHOT_VOLUME + TmIdentityMismatch = 0XC019004A, // STATUS_TM_IDENTITY_MISMATCH + FloatedSection = 0XC019004B, // STATUS_FLOATED_SECTION + TransactionNotFound = 0XC019004E, // STATUS_TRANSACTION_NOT_FOUND + EnlistmentNotFound = 0XC0190050, // STATUS_ENLISTMENT_NOT_FOUND + TransactionNotRoot = 0XC0190054, // STATUS_TRANSACTION_NOT_ROOT + TransactionNoSuperior = 0XC019005F, // STATUS_TRANSACTION_NO_SUPERIOR + ExpiredHandle = 0XC0190060, // STATUS_EXPIRED_HANDLE + TransactionNotEnlisted = 0XC0190061, // STATUS_TRANSACTION_NOT_ENLISTED + LogSectorInvalid = 0XC01A0001, // STATUS_LOG_SECTOR_INVALID + LogSectorRemapped = 0XC01A0003, // STATUS_LOG_SECTOR_REMAPPED + LogBlockIncomplete = 0XC01A0004, // STATUS_LOG_BLOCK_INCOMPLETE + LogInvalidRange = 0XC01A0005, // STATUS_LOG_INVALID_RANGE + LogBlocksExhausted = 0XC01A0006, // STATUS_LOG_BLOCKS_EXHAUSTED + LogReadContextInvalid = 0XC01A0007, // STATUS_LOG_READ_CONTEXT_INVALID + LogRestartInvalid = 0XC01A0008, // STATUS_LOG_RESTART_INVALID + LogBlockVersion = 0XC01A0009, // STATUS_LOG_BLOCK_VERSION + LogBlockInvalid = 0XC01A000A, // STATUS_LOG_BLOCK_INVALID + LogReadModeInvalid = 0XC01A000B, // STATUS_LOG_READ_MODE_INVALID + LogNoRestart = 0X401A000C, // STATUS_LOG_NO_RESTART + LogMetadataCorrupt = 0XC01A000D, // STATUS_LOG_METADATA_CORRUPT + LogMetadataInvalid = 0XC01A000E, // STATUS_LOG_METADATA_INVALID + LogReservationInvalid = 0XC01A0010, // STATUS_LOG_RESERVATION_INVALID + LogCantDelete = 0XC01A0011, // STATUS_LOG_CANT_DELETE + LogStartOfLog = 0XC01A0013, // STATUS_LOG_START_OF_LOG + LogPolicyNotInstalled = 0XC01A0015, // STATUS_LOG_POLICY_NOT_INSTALLED + LogPolicyInvalid = 0XC01A0016, // STATUS_LOG_POLICY_INVALID + LogPolicyConflict = 0XC01A0017, // STATUS_LOG_POLICY_CONFLICT + LogPinnedArchiveTail = 0XC01A0018, // STATUS_LOG_PINNED_ARCHIVE_TAIL + LogRecordNonexistent = 0XC01A0019, // STATUS_LOG_RECORD_NONEXISTENT + LogTailInvalid = 0XC01A001C, // STATUS_LOG_TAIL_INVALID + LogFull = 0XC01A001D, // STATUS_LOG_FULL + LogMultiplexed = 0XC01A001E, // STATUS_LOG_MULTIPLEXED + LogDedicated = 0XC01A001F, // STATUS_LOG_DEDICATED + LogArchiveInProgress = 0XC01A0021, // STATUS_LOG_ARCHIVE_IN_PROGRESS + LogEphemeral = 0XC01A0022, // STATUS_LOG_EPHEMERAL + LogStateInvalid = 0XC01A002B, // STATUS_LOG_STATE_INVALID + LogPinned = 0XC01A002C, // STATUS_LOG_PINNED + LogPinnedReservation = 0XC01A0030, // STATUS_LOG_PINNED_RESERVATION + MonitorNoDescriptor = 0XC01D0001, // STATUS_MONITOR_NO_DESCRIPTOR + GraphicsPresentDenied = 0XC01E0007, // STATUS_GRAPHICS_PRESENT_DENIED + GraphicsDriverMismatch = 0XC01E0009, // STATUS_GRAPHICS_DRIVER_MISMATCH + GraphicsNoVideoMemory = 0XC01E0100, // STATUS_GRAPHICS_NO_VIDEO_MEMORY + GraphicsAllocationBusy = 0XC01E0102, // STATUS_GRAPHICS_ALLOCATION_BUSY + GraphicsTryAgainLater = 0XC01E0104, // STATUS_GRAPHICS_TRY_AGAIN_LATER + GraphicsTryAgainNow = 0XC01E0105, // STATUS_GRAPHICS_TRY_AGAIN_NOW + GraphicsInvalidVidpn = 0XC01E0303, // STATUS_GRAPHICS_INVALID_VIDPN + GraphicsModeNotPinned = 0X401E0307, // STATUS_GRAPHICS_MODE_NOT_PINNED + GraphicsStaleModeset = 0XC01E0320, // STATUS_GRAPHICS_STALE_MODESET + GraphicsNoVidpnmgr = 0XC01E0335, // STATUS_GRAPHICS_NO_VIDPNMGR + GraphicsNoActiveVidpn = 0XC01E0336, // STATUS_GRAPHICS_NO_ACTIVE_VIDPN + GraphicsInvalidStride = 0XC01E033C, // STATUS_GRAPHICS_INVALID_STRIDE + GraphicsStartDeferred = 0X401E043A, // STATUS_GRAPHICS_START_DEFERRED + GraphicsPvpHfsFailed = 0XC01E0511, // STATUS_GRAPHICS_PVP_HFS_FAILED + GraphicsOpmInvalidSrm = 0XC01E0512, // STATUS_GRAPHICS_OPM_INVALID_SRM + GraphicsInvalidPointer = 0XC01E05E4, // STATUS_GRAPHICS_INVALID_POINTER + GraphicsInternalError = 0XC01E05E7, // STATUS_GRAPHICS_INTERNAL_ERROR + FveLockedVolume = 0XC0210000, // STATUS_FVE_LOCKED_VOLUME + FveNotEncrypted = 0XC0210001, // STATUS_FVE_NOT_ENCRYPTED + FveBadInformation = 0XC0210002, // STATUS_FVE_BAD_INFORMATION + FveTooSmall = 0XC0210003, // STATUS_FVE_TOO_SMALL + FveFailedWrongFs = 0XC0210004, // STATUS_FVE_FAILED_WRONG_FS + FveBadPartitionSize = 0XC0210005, // STATUS_FVE_BAD_PARTITION_SIZE + FveFsNotExtended = 0XC0210006, // STATUS_FVE_FS_NOT_EXTENDED + FveFsMounted = 0XC0210007, // STATUS_FVE_FS_MOUNTED + FveNoLicense = 0XC0210008, // STATUS_FVE_NO_LICENSE + FveActionNotAllowed = 0XC0210009, // STATUS_FVE_ACTION_NOT_ALLOWED + FveBadData = 0XC021000A, // STATUS_FVE_BAD_DATA + FveVolumeNotBound = 0XC021000B, // STATUS_FVE_VOLUME_NOT_BOUND + FveNotDataVolume = 0XC021000C, // STATUS_FVE_NOT_DATA_VOLUME + FveConvReadError = 0XC021000D, // STATUS_FVE_CONV_READ_ERROR + FveConvWriteError = 0XC021000E, // STATUS_FVE_CONV_WRITE_ERROR + FveOverlappedUpdate = 0XC021000F, // STATUS_FVE_OVERLAPPED_UPDATE + FveFailedSectorSize = 0XC0210010, // STATUS_FVE_FAILED_SECTOR_SIZE + FveNotOsVolume = 0XC0210012, // STATUS_FVE_NOT_OS_VOLUME + FveKeyfileNotFound = 0XC0210013, // STATUS_FVE_KEYFILE_NOT_FOUND + FveKeyfileInvalid = 0XC0210014, // STATUS_FVE_KEYFILE_INVALID + FveKeyfileNoVmk = 0XC0210015, // STATUS_FVE_KEYFILE_NO_VMK + FveTpmDisabled = 0XC0210016, // STATUS_FVE_TPM_DISABLED + FveTpmInvalidPcr = 0XC0210018, // STATUS_FVE_TPM_INVALID_PCR + FveTpmNoVmk = 0XC0210019, // STATUS_FVE_TPM_NO_VMK + FvePinInvalid = 0XC021001A, // STATUS_FVE_PIN_INVALID + FveAuthInvalidConfig = 0XC021001C, // STATUS_FVE_AUTH_INVALID_CONFIG + FveDebuggerEnabled = 0XC021001D, // STATUS_FVE_DEBUGGER_ENABLED + FveDryRunFailed = 0XC021001E, // STATUS_FVE_DRY_RUN_FAILED + FveBadMetadataPointer = 0XC021001F, // STATUS_FVE_BAD_METADATA_POINTER + FveOldMetadataCopy = 0XC0210020, // STATUS_FVE_OLD_METADATA_COPY + FveRebootRequired = 0XC0210021, // STATUS_FVE_REBOOT_REQUIRED + FveRawAccess = 0XC0210022, // STATUS_FVE_RAW_ACCESS + FveRawBlocked = 0XC0210023, // STATUS_FVE_RAW_BLOCKED + FveMorFailed = 0XC0210025, // STATUS_FVE_MOR_FAILED + FveNoFeatureLicense = 0XC0210026, // STATUS_FVE_NO_FEATURE_LICENSE + FveConvRecoveryFailed = 0XC0210028, // STATUS_FVE_CONV_RECOVERY_FAILED + FveInvalidDatumType = 0XC021002A, // STATUS_FVE_INVALID_DATUM_TYPE + FveVolumeTooSmall = 0XC0210030, // STATUS_FVE_VOLUME_TOO_SMALL + FveEnhPinInvalid = 0XC0210031, // STATUS_FVE_ENH_PIN_INVALID + FveSecurebootDisabled = 0XC0210039, // STATUS_FVE_SECUREBOOT_DISABLED + FveDeviceLockedout = 0XC021003B, // STATUS_FVE_DEVICE_LOCKEDOUT + FwpCalloutNotFound = 0XC0220001, // STATUS_FWP_CALLOUT_NOT_FOUND + FwpConditionNotFound = 0XC0220002, // STATUS_FWP_CONDITION_NOT_FOUND + FwpFilterNotFound = 0XC0220003, // STATUS_FWP_FILTER_NOT_FOUND + FwpLayerNotFound = 0XC0220004, // STATUS_FWP_LAYER_NOT_FOUND + FwpProviderNotFound = 0XC0220005, // STATUS_FWP_PROVIDER_NOT_FOUND + FwpSublayerNotFound = 0XC0220007, // STATUS_FWP_SUBLAYER_NOT_FOUND + FwpNotFound = 0XC0220008, // STATUS_FWP_NOT_FOUND + FwpAlreadyExists = 0XC0220009, // STATUS_FWP_ALREADY_EXISTS + FwpInUse = 0XC022000A, // STATUS_FWP_IN_USE + FwpWrongSession = 0XC022000C, // STATUS_FWP_WRONG_SESSION + FwpNoTxnInProgress = 0XC022000D, // STATUS_FWP_NO_TXN_IN_PROGRESS + FwpTxnInProgress = 0XC022000E, // STATUS_FWP_TXN_IN_PROGRESS + FwpTxnAborted = 0XC022000F, // STATUS_FWP_TXN_ABORTED + FwpSessionAborted = 0XC0220010, // STATUS_FWP_SESSION_ABORTED + FwpIncompatibleTxn = 0XC0220011, // STATUS_FWP_INCOMPATIBLE_TXN + FwpTimeout = 0XC0220012, // STATUS_FWP_TIMEOUT + FwpNetEventsDisabled = 0XC0220013, // STATUS_FWP_NET_EVENTS_DISABLED + FwpIncompatibleLayer = 0XC0220014, // STATUS_FWP_INCOMPATIBLE_LAYER + FwpKmClientsOnly = 0XC0220015, // STATUS_FWP_KM_CLIENTS_ONLY + FwpLifetimeMismatch = 0XC0220016, // STATUS_FWP_LIFETIME_MISMATCH + FwpBuiltinObject = 0XC0220017, // STATUS_FWP_BUILTIN_OBJECT + FwpTooManyCallouts = 0XC0220018, // STATUS_FWP_TOO_MANY_CALLOUTS + FwpNotificationDropped = 0XC0220019, // STATUS_FWP_NOTIFICATION_DROPPED + FwpTrafficMismatch = 0XC022001A, // STATUS_FWP_TRAFFIC_MISMATCH + FwpNullPointer = 0XC022001C, // STATUS_FWP_NULL_POINTER + FwpInvalidEnumerator = 0XC022001D, // STATUS_FWP_INVALID_ENUMERATOR + FwpInvalidFlags = 0XC022001E, // STATUS_FWP_INVALID_FLAGS + FwpInvalidNetMask = 0XC022001F, // STATUS_FWP_INVALID_NET_MASK + FwpInvalidRange = 0XC0220020, // STATUS_FWP_INVALID_RANGE + FwpInvalidInterval = 0XC0220021, // STATUS_FWP_INVALID_INTERVAL + FwpZeroLengthArray = 0XC0220022, // STATUS_FWP_ZERO_LENGTH_ARRAY + FwpNullDisplayName = 0XC0220023, // STATUS_FWP_NULL_DISPLAY_NAME + FwpInvalidActionType = 0XC0220024, // STATUS_FWP_INVALID_ACTION_TYPE + FwpInvalidWeight = 0XC0220025, // STATUS_FWP_INVALID_WEIGHT + FwpMatchTypeMismatch = 0XC0220026, // STATUS_FWP_MATCH_TYPE_MISMATCH + FwpTypeMismatch = 0XC0220027, // STATUS_FWP_TYPE_MISMATCH + FwpOutOfBounds = 0XC0220028, // STATUS_FWP_OUT_OF_BOUNDS + FwpReserved = 0XC0220029, // STATUS_FWP_RESERVED + FwpDuplicateCondition = 0XC022002A, // STATUS_FWP_DUPLICATE_CONDITION + FwpDuplicateKeymod = 0XC022002B, // STATUS_FWP_DUPLICATE_KEYMOD + FwpEmNotSupported = 0XC0220032, // STATUS_FWP_EM_NOT_SUPPORTED + FwpNeverMatch = 0XC0220033, // STATUS_FWP_NEVER_MATCH + FwpInvalidParameter = 0XC0220035, // STATUS_FWP_INVALID_PARAMETER + FwpTooManySublayers = 0XC0220036, // STATUS_FWP_TOO_MANY_SUBLAYERS + FwpL2DriverNotReady = 0XC022003E, // STATUS_FWP_L2_DRIVER_NOT_READY + FwpConnectionsDisabled = 0XC0220041, // STATUS_FWP_CONNECTIONS_DISABLED + FwpInvalidDnsName = 0XC0220042, // STATUS_FWP_INVALID_DNS_NAME + FwpStillOn = 0XC0220043, // STATUS_FWP_STILL_ON + FwpIkeextNotRunning = 0XC0220044, // STATUS_FWP_IKEEXT_NOT_RUNNING + FwpTcpipNotReady = 0XC0220100, // STATUS_FWP_TCPIP_NOT_READY + FwpInjectHandleStale = 0XC0220102, // STATUS_FWP_INJECT_HANDLE_STALE + FwpCannotPend = 0XC0220103, // STATUS_FWP_CANNOT_PEND + FwpDropNoicmp = 0XC0220104, // STATUS_FWP_DROP_NOICMP + NdisClosing = 0XC0230002, // STATUS_NDIS_CLOSING + NdisBadVersion = 0XC0230004, // STATUS_NDIS_BAD_VERSION + NdisBadCharacteristics = 0XC0230005, // STATUS_NDIS_BAD_CHARACTERISTICS + NdisAdapterNotFound = 0XC0230006, // STATUS_NDIS_ADAPTER_NOT_FOUND + NdisOpenFailed = 0XC0230007, // STATUS_NDIS_OPEN_FAILED + NdisDeviceFailed = 0XC0230008, // STATUS_NDIS_DEVICE_FAILED + NdisMulticastFull = 0XC0230009, // STATUS_NDIS_MULTICAST_FULL + NdisMulticastExists = 0XC023000A, // STATUS_NDIS_MULTICAST_EXISTS + NdisMulticastNotFound = 0XC023000B, // STATUS_NDIS_MULTICAST_NOT_FOUND + NdisRequestAborted = 0XC023000C, // STATUS_NDIS_REQUEST_ABORTED + NdisResetInProgress = 0XC023000D, // STATUS_NDIS_RESET_IN_PROGRESS + NdisNotSupported = 0XC02300BB, // STATUS_NDIS_NOT_SUPPORTED + NdisInvalidPacket = 0XC023000F, // STATUS_NDIS_INVALID_PACKET + NdisAdapterNotReady = 0XC0230011, // STATUS_NDIS_ADAPTER_NOT_READY + NdisInvalidLength = 0XC0230014, // STATUS_NDIS_INVALID_LENGTH + NdisInvalidData = 0XC0230015, // STATUS_NDIS_INVALID_DATA + NdisBufferTooShort = 0XC0230016, // STATUS_NDIS_BUFFER_TOO_SHORT + NdisInvalidOid = 0XC0230017, // STATUS_NDIS_INVALID_OID + NdisAdapterRemoved = 0XC0230018, // STATUS_NDIS_ADAPTER_REMOVED + NdisUnsupportedMedia = 0XC0230019, // STATUS_NDIS_UNSUPPORTED_MEDIA + NdisFileNotFound = 0XC023001B, // STATUS_NDIS_FILE_NOT_FOUND + NdisErrorReadingFile = 0XC023001C, // STATUS_NDIS_ERROR_READING_FILE + NdisAlreadyMapped = 0XC023001D, // STATUS_NDIS_ALREADY_MAPPED + NdisResourceConflict = 0XC023001E, // STATUS_NDIS_RESOURCE_CONFLICT + NdisMediaDisconnected = 0XC023001F, // STATUS_NDIS_MEDIA_DISCONNECTED + NdisInvalidAddress = 0XC0230022, // STATUS_NDIS_INVALID_ADDRESS + NdisPaused = 0XC023002A, // STATUS_NDIS_PAUSED + NdisInterfaceNotFound = 0XC023002B, // STATUS_NDIS_INTERFACE_NOT_FOUND + NdisInvalidPort = 0XC023002D, // STATUS_NDIS_INVALID_PORT + NdisInvalidPortState = 0XC023002E, // STATUS_NDIS_INVALID_PORT_STATE + NdisLowPowerState = 0XC023002F, // STATUS_NDIS_LOW_POWER_STATE + NdisReinitRequired = 0XC0230030, // STATUS_NDIS_REINIT_REQUIRED + NdisDot11MediaInUse = 0XC0232001, // STATUS_NDIS_DOT11_MEDIA_IN_USE + NdisIndicationRequired = 0X40230001, // STATUS_NDIS_INDICATION_REQUIRED + NdisOffloadPolicy = 0XC023100F, // STATUS_NDIS_OFFLOAD_POLICY + TpmErrorMask = 0XC0290000, // STATUS_TPM_ERROR_MASK + TpmAuthfail = 0XC0290001, // STATUS_TPM_AUTHFAIL + TpmBadindex = 0XC0290002, // STATUS_TPM_BADINDEX + TpmBadParameter = 0XC0290003, // STATUS_TPM_BAD_PARAMETER + TpmAuditfailure = 0XC0290004, // STATUS_TPM_AUDITFAILURE + TpmClearDisabled = 0XC0290005, // STATUS_TPM_CLEAR_DISABLED + TpmDeactivated = 0XC0290006, // STATUS_TPM_DEACTIVATED + TpmDisabled = 0XC0290007, // STATUS_TPM_DISABLED + TpmDisabledCmd = 0XC0290008, // STATUS_TPM_DISABLED_CMD + TpmFail = 0XC0290009, // STATUS_TPM_FAIL + TpmBadOrdinal = 0XC029000A, // STATUS_TPM_BAD_ORDINAL + TpmInstallDisabled = 0XC029000B, // STATUS_TPM_INSTALL_DISABLED + TpmInvalidKeyhandle = 0XC029000C, // STATUS_TPM_INVALID_KEYHANDLE + TpmKeynotfound = 0XC029000D, // STATUS_TPM_KEYNOTFOUND + TpmInappropriateEnc = 0XC029000E, // STATUS_TPM_INAPPROPRIATE_ENC + TpmMigratefail = 0XC029000F, // STATUS_TPM_MIGRATEFAIL + TpmInvalidPcrInfo = 0XC0290010, // STATUS_TPM_INVALID_PCR_INFO + TpmNospace = 0XC0290011, // STATUS_TPM_NOSPACE + TpmNosrk = 0XC0290012, // STATUS_TPM_NOSRK + TpmNotsealedBlob = 0XC0290013, // STATUS_TPM_NOTSEALED_BLOB + TpmOwnerSet = 0XC0290014, // STATUS_TPM_OWNER_SET + TpmResources = 0XC0290015, // STATUS_TPM_RESOURCES + TpmShortrandom = 0XC0290016, // STATUS_TPM_SHORTRANDOM + TpmSize = 0XC0290017, // STATUS_TPM_SIZE + TpmWrongpcrval = 0XC0290018, // STATUS_TPM_WRONGPCRVAL + TpmBadParamSize = 0XC0290019, // STATUS_TPM_BAD_PARAM_SIZE + TpmShaThread = 0XC029001A, // STATUS_TPM_SHA_THREAD + TpmShaError = 0XC029001B, // STATUS_TPM_SHA_ERROR + TpmFailedselftest = 0XC029001C, // STATUS_TPM_FAILEDSELFTEST + TpmAuth2Fail = 0XC029001D, // STATUS_TPM_AUTH2FAIL + TpmBadtag = 0XC029001E, // STATUS_TPM_BADTAG + TpmIoerror = 0XC029001F, // STATUS_TPM_IOERROR + TpmEncryptError = 0XC0290020, // STATUS_TPM_ENCRYPT_ERROR + TpmDecryptError = 0XC0290021, // STATUS_TPM_DECRYPT_ERROR + TpmInvalidAuthhandle = 0XC0290022, // STATUS_TPM_INVALID_AUTHHANDLE + TpmNoEndorsement = 0XC0290023, // STATUS_TPM_NO_ENDORSEMENT + TpmInvalidKeyusage = 0XC0290024, // STATUS_TPM_INVALID_KEYUSAGE + TpmWrongEntitytype = 0XC0290025, // STATUS_TPM_WRONG_ENTITYTYPE + TpmInvalidPostinit = 0XC0290026, // STATUS_TPM_INVALID_POSTINIT + TpmInappropriateSig = 0XC0290027, // STATUS_TPM_INAPPROPRIATE_SIG + TpmBadKeyProperty = 0XC0290028, // STATUS_TPM_BAD_KEY_PROPERTY + TpmBadMigration = 0XC0290029, // STATUS_TPM_BAD_MIGRATION + TpmBadScheme = 0XC029002A, // STATUS_TPM_BAD_SCHEME + TpmBadDatasize = 0XC029002B, // STATUS_TPM_BAD_DATASIZE + TpmBadMode = 0XC029002C, // STATUS_TPM_BAD_MODE + TpmBadPresence = 0XC029002D, // STATUS_TPM_BAD_PRESENCE + TpmBadVersion = 0XC029002E, // STATUS_TPM_BAD_VERSION + TpmNoWrapTransport = 0XC029002F, // STATUS_TPM_NO_WRAP_TRANSPORT + TpmAuditfailSuccessful = 0XC0290031, // STATUS_TPM_AUDITFAIL_SUCCESSFUL + TpmNotresetable = 0XC0290032, // STATUS_TPM_NOTRESETABLE + TpmNotlocal = 0XC0290033, // STATUS_TPM_NOTLOCAL + TpmBadType = 0XC0290034, // STATUS_TPM_BAD_TYPE + TpmInvalidResource = 0XC0290035, // STATUS_TPM_INVALID_RESOURCE + TpmNotfips = 0XC0290036, // STATUS_TPM_NOTFIPS + TpmInvalidFamily = 0XC0290037, // STATUS_TPM_INVALID_FAMILY + TpmNoNvPermission = 0XC0290038, // STATUS_TPM_NO_NV_PERMISSION + TpmRequiresSign = 0XC0290039, // STATUS_TPM_REQUIRES_SIGN + TpmKeyNotsupported = 0XC029003A, // STATUS_TPM_KEY_NOTSUPPORTED + TpmAuthConflict = 0XC029003B, // STATUS_TPM_AUTH_CONFLICT + TpmAreaLocked = 0XC029003C, // STATUS_TPM_AREA_LOCKED + TpmBadLocality = 0XC029003D, // STATUS_TPM_BAD_LOCALITY + TpmReadOnly = 0XC029003E, // STATUS_TPM_READ_ONLY + TpmPerNowrite = 0XC029003F, // STATUS_TPM_PER_NOWRITE + TpmFamilycount = 0XC0290040, // STATUS_TPM_FAMILYCOUNT + TpmWriteLocked = 0XC0290041, // STATUS_TPM_WRITE_LOCKED + TpmBadAttributes = 0XC0290042, // STATUS_TPM_BAD_ATTRIBUTES + TpmInvalidStructure = 0XC0290043, // STATUS_TPM_INVALID_STRUCTURE + TpmKeyOwnerControl = 0XC0290044, // STATUS_TPM_KEY_OWNER_CONTROL + TpmBadCounter = 0XC0290045, // STATUS_TPM_BAD_COUNTER + TpmNotFullwrite = 0XC0290046, // STATUS_TPM_NOT_FULLWRITE + TpmContextGap = 0XC0290047, // STATUS_TPM_CONTEXT_GAP + TpmMaxnvwrites = 0XC0290048, // STATUS_TPM_MAXNVWRITES + TpmNooperator = 0XC0290049, // STATUS_TPM_NOOPERATOR + TpmResourcemissing = 0XC029004A, // STATUS_TPM_RESOURCEMISSING + TpmDelegateLock = 0XC029004B, // STATUS_TPM_DELEGATE_LOCK + TpmDelegateFamily = 0XC029004C, // STATUS_TPM_DELEGATE_FAMILY + TpmDelegateAdmin = 0XC029004D, // STATUS_TPM_DELEGATE_ADMIN + TpmOwnerControl = 0XC029004F, // STATUS_TPM_OWNER_CONTROL + TpmDaaResources = 0XC0290050, // STATUS_TPM_DAA_RESOURCES + TpmDaaInputData0 = 0XC0290051, // STATUS_TPM_DAA_INPUT_DATA0 + TpmDaaInputData1 = 0XC0290052, // STATUS_TPM_DAA_INPUT_DATA1 + TpmDaaIssuerSettings = 0XC0290053, // STATUS_TPM_DAA_ISSUER_SETTINGS + TpmDaaTpmSettings = 0XC0290054, // STATUS_TPM_DAA_TPM_SETTINGS + TpmDaaStage = 0XC0290055, // STATUS_TPM_DAA_STAGE + TpmDaaIssuerValidity = 0XC0290056, // STATUS_TPM_DAA_ISSUER_VALIDITY + TpmDaaWrongW = 0XC0290057, // STATUS_TPM_DAA_WRONG_W + TpmBadHandle = 0XC0290058, // STATUS_TPM_BAD_HANDLE + TpmBadDelegate = 0XC0290059, // STATUS_TPM_BAD_DELEGATE + TpmBadcontext = 0XC029005A, // STATUS_TPM_BADCONTEXT + TpmToomanycontexts = 0XC029005B, // STATUS_TPM_TOOMANYCONTEXTS + TpmMaTicketSignature = 0XC029005C, // STATUS_TPM_MA_TICKET_SIGNATURE + TpmMaDestination = 0XC029005D, // STATUS_TPM_MA_DESTINATION + TpmMaSource = 0XC029005E, // STATUS_TPM_MA_SOURCE + TpmMaAuthority = 0XC029005F, // STATUS_TPM_MA_AUTHORITY + TpmPermanentek = 0XC0290061, // STATUS_TPM_PERMANENTEK + TpmBadSignature = 0XC0290062, // STATUS_TPM_BAD_SIGNATURE + TpmNocontextspace = 0XC0290063, // STATUS_TPM_NOCONTEXTSPACE + TpmCommandBlocked = 0XC0290400, // STATUS_TPM_COMMAND_BLOCKED + TpmInvalidHandle = 0XC0290401, // STATUS_TPM_INVALID_HANDLE + TpmDuplicateVhandle = 0XC0290402, // STATUS_TPM_DUPLICATE_VHANDLE + TpmRetry = 0XC0290800, // STATUS_TPM_RETRY + TpmNeedsSelftest = 0XC0290801, // STATUS_TPM_NEEDS_SELFTEST + TpmDoingSelftest = 0XC0290802, // STATUS_TPM_DOING_SELFTEST + TpmDefendLockRunning = 0XC0290803, // STATUS_TPM_DEFEND_LOCK_RUNNING + TpmCommandCanceled = 0XC0291001, // STATUS_TPM_COMMAND_CANCELED + TpmTooManyContexts = 0XC0291002, // STATUS_TPM_TOO_MANY_CONTEXTS + TpmNotFound = 0XC0291003, // STATUS_TPM_NOT_FOUND + TpmAccessDenied = 0XC0291004, // STATUS_TPM_ACCESS_DENIED + TpmInsufficientBuffer = 0XC0291005, // STATUS_TPM_INSUFFICIENT_BUFFER + PcpErrorMask = 0XC0292000, // STATUS_PCP_ERROR_MASK + PcpDeviceNotReady = 0XC0292001, // STATUS_PCP_DEVICE_NOT_READY + PcpInvalidHandle = 0XC0292002, // STATUS_PCP_INVALID_HANDLE + PcpInvalidParameter = 0XC0292003, // STATUS_PCP_INVALID_PARAMETER + PcpFlagNotSupported = 0XC0292004, // STATUS_PCP_FLAG_NOT_SUPPORTED + PcpNotSupported = 0XC0292005, // STATUS_PCP_NOT_SUPPORTED + PcpBufferTooSmall = 0XC0292006, // STATUS_PCP_BUFFER_TOO_SMALL + PcpInternalError = 0XC0292007, // STATUS_PCP_INTERNAL_ERROR + PcpPolicyNotFound = 0XC029200A, // STATUS_PCP_POLICY_NOT_FOUND + PcpProfileNotFound = 0XC029200B, // STATUS_PCP_PROFILE_NOT_FOUND + PcpValidationFailed = 0XC029200C, // STATUS_PCP_VALIDATION_FAILED + HvInvalidAlignment = 0XC0350004, // STATUS_HV_INVALID_ALIGNMENT + HvInvalidParameter = 0XC0350005, // STATUS_HV_INVALID_PARAMETER + HvAccessDenied = 0XC0350006, // STATUS_HV_ACCESS_DENIED + HvOperationDenied = 0XC0350008, // STATUS_HV_OPERATION_DENIED + HvUnknownProperty = 0XC0350009, // STATUS_HV_UNKNOWN_PROPERTY + HvInsufficientMemory = 0XC035000B, // STATUS_HV_INSUFFICIENT_MEMORY + HvPartitionTooDeep = 0XC035000C, // STATUS_HV_PARTITION_TOO_DEEP + HvInvalidPartitionId = 0XC035000D, // STATUS_HV_INVALID_PARTITION_ID + HvInvalidVpIndex = 0XC035000E, // STATUS_HV_INVALID_VP_INDEX + HvInvalidPortId = 0XC0350011, // STATUS_HV_INVALID_PORT_ID + HvInvalidConnectionId = 0XC0350012, // STATUS_HV_INVALID_CONNECTION_ID + HvInsufficientBuffers = 0XC0350013, // STATUS_HV_INSUFFICIENT_BUFFERS + HvNotAcknowledged = 0XC0350014, // STATUS_HV_NOT_ACKNOWLEDGED + HvAcknowledged = 0XC0350016, // STATUS_HV_ACKNOWLEDGED + HvInvalidSynicState = 0XC0350018, // STATUS_HV_INVALID_SYNIC_STATE + HvObjectInUse = 0XC0350019, // STATUS_HV_OBJECT_IN_USE + HvNoData = 0XC035001B, // STATUS_HV_NO_DATA + HvInactive = 0XC035001C, // STATUS_HV_INACTIVE + HvNoResources = 0XC035001D, // STATUS_HV_NO_RESOURCES + HvFeatureUnavailable = 0XC035001E, // STATUS_HV_FEATURE_UNAVAILABLE + HvInvalidLpIndex = 0XC0350041, // STATUS_HV_INVALID_LP_INDEX + HvNotPresent = 0XC0351000, // STATUS_HV_NOT_PRESENT + VidDuplicateHandler = 0XC0370001, // STATUS_VID_DUPLICATE_HANDLER + VidTooManyHandlers = 0XC0370002, // STATUS_VID_TOO_MANY_HANDLERS + VidQueueFull = 0XC0370003, // STATUS_VID_QUEUE_FULL + VidHandlerNotPresent = 0XC0370004, // STATUS_VID_HANDLER_NOT_PRESENT + VidInvalidObjectName = 0XC0370005, // STATUS_VID_INVALID_OBJECT_NAME + VidMbStillReferenced = 0XC037000D, // STATUS_VID_MB_STILL_REFERENCED + VidPageRangeOverflow = 0XC0370013, // STATUS_VID_PAGE_RANGE_OVERFLOW + VidInvalidPpmHandle = 0XC0370018, // STATUS_VID_INVALID_PPM_HANDLE + VidMbpsAreLocked = 0XC0370019, // STATUS_VID_MBPS_ARE_LOCKED + VidMessageQueueClosed = 0XC037001A, // STATUS_VID_MESSAGE_QUEUE_CLOSED + VidStopPending = 0XC037001C, // STATUS_VID_STOP_PENDING + VidMmioRangeDestroyed = 0XC0370021, // STATUS_VID_MMIO_RANGE_DESTROYED + VidSavedStateCorrupt = 0XC0370027, // STATUS_VID_SAVED_STATE_CORRUPT + IpsecBadSpi = 0XC0360001, // STATUS_IPSEC_BAD_SPI + IpsecWrongSa = 0XC0360003, // STATUS_IPSEC_WRONG_SA + IpsecInvalidPacket = 0XC0360005, // STATUS_IPSEC_INVALID_PACKET + IpsecClearTextDrop = 0XC0360007, // STATUS_IPSEC_CLEAR_TEXT_DROP + IpsecAuthFirewallDrop = 0XC0360008, // STATUS_IPSEC_AUTH_FIREWALL_DROP + IpsecThrottleDrop = 0XC0360009, // STATUS_IPSEC_THROTTLE_DROP + IpsecDospBlock = 0XC0368000, // STATUS_IPSEC_DOSP_BLOCK + IpsecDospMaxEntries = 0XC0368004, // STATUS_IPSEC_DOSP_MAX_ENTRIES + VolmgrDatabaseFull = 0XC0380001, // STATUS_VOLMGR_DATABASE_FULL + VolmgrDiskDuplicate = 0XC0380006, // STATUS_VOLMGR_DISK_DUPLICATE + VolmgrDiskDynamic = 0XC0380007, // STATUS_VOLMGR_DISK_DYNAMIC + VolmgrDiskIdInvalid = 0XC0380008, // STATUS_VOLMGR_DISK_ID_INVALID + VolmgrDiskInvalid = 0XC0380009, // STATUS_VOLMGR_DISK_INVALID + VolmgrDiskLastVoter = 0XC038000A, // STATUS_VOLMGR_DISK_LAST_VOTER + VolmgrDiskMissing = 0XC0380011, // STATUS_VOLMGR_DISK_MISSING + VolmgrDiskNotEmpty = 0XC0380012, // STATUS_VOLMGR_DISK_NOT_EMPTY + VolmgrMemberInSync = 0XC0380023, // STATUS_VOLMGR_MEMBER_IN_SYNC + VolmgrMemberMissing = 0XC0380026, // STATUS_VOLMGR_MEMBER_MISSING + VolmgrAllDisksFailed = 0XC0380029, // STATUS_VOLMGR_ALL_DISKS_FAILED + VolmgrNoSuchUser = 0XC038002B, // STATUS_VOLMGR_NO_SUCH_USER + VolmgrPackDuplicate = 0XC038002F, // STATUS_VOLMGR_PACK_DUPLICATE + VolmgrPackIdInvalid = 0XC0380030, // STATUS_VOLMGR_PACK_ID_INVALID + VolmgrPackInvalid = 0XC0380031, // STATUS_VOLMGR_PACK_INVALID + VolmgrPackNameInvalid = 0XC0380032, // STATUS_VOLMGR_PACK_NAME_INVALID + VolmgrPackOffline = 0XC0380033, // STATUS_VOLMGR_PACK_OFFLINE + VolmgrPackHasQuorum = 0XC0380034, // STATUS_VOLMGR_PACK_HAS_QUORUM + VolmgrPlexInSync = 0XC0380038, // STATUS_VOLMGR_PLEX_IN_SYNC + VolmgrPlexLastActive = 0XC038003B, // STATUS_VOLMGR_PLEX_LAST_ACTIVE + VolmgrPlexMissing = 0XC038003C, // STATUS_VOLMGR_PLEX_MISSING + VolmgrPlexRegenerating = 0XC038003D, // STATUS_VOLMGR_PLEX_REGENERATING + VolmgrPlexTypeInvalid = 0XC038003E, // STATUS_VOLMGR_PLEX_TYPE_INVALID + VolmgrPlexNotRaid5 = 0XC038003F, // STATUS_VOLMGR_PLEX_NOT_RAID5 + VolmgrPlexNotSimple = 0XC0380040, // STATUS_VOLMGR_PLEX_NOT_SIMPLE + VolmgrVolumeIdInvalid = 0XC0380046, // STATUS_VOLMGR_VOLUME_ID_INVALID + VolmgrVolumeOffline = 0XC038004B, // STATUS_VOLMGR_VOLUME_OFFLINE + VolmgrVolumeRetained = 0XC038004C, // STATUS_VOLMGR_VOLUME_RETAINED + VolmgrBadBootDisk = 0XC038004F, // STATUS_VOLMGR_BAD_BOOT_DISK + VolmgrNotPrimaryPack = 0XC0380052, // STATUS_VOLMGR_NOT_PRIMARY_PACK + VolmgrVolumeMirrored = 0XC0380056, // STATUS_VOLMGR_VOLUME_MIRRORED + BcdTooManyElements = 0XC0390002, // STATUS_BCD_TOO_MANY_ELEMENTS + VhdDriveFooterMissing = 0XC03A0001, // STATUS_VHD_DRIVE_FOOTER_MISSING + VhdDriveFooterCorrupt = 0XC03A0003, // STATUS_VHD_DRIVE_FOOTER_CORRUPT + VhdFormatUnknown = 0XC03A0004, // STATUS_VHD_FORMAT_UNKNOWN + VhdInvalidBlockSize = 0XC03A000B, // STATUS_VHD_INVALID_BLOCK_SIZE + VhdBitmapMismatch = 0XC03A000C, // STATUS_VHD_BITMAP_MISMATCH + VhdParentVhdNotFound = 0XC03A000D, // STATUS_VHD_PARENT_VHD_NOT_FOUND + VhdInvalidSize = 0XC03A0012, // STATUS_VHD_INVALID_SIZE + VhdInvalidFileSize = 0XC03A0013, // STATUS_VHD_INVALID_FILE_SIZE + VirtualDiskLimitation = 0XC03A001A, // STATUS_VIRTUAL_DISK_LIMITATION + VhdInvalidType = 0XC03A001B, // STATUS_VHD_INVALID_TYPE + VhdInvalidState = 0XC03A001C, // STATUS_VHD_INVALID_STATE + VhdMetadataFull = 0XC03A0028, // STATUS_VHD_METADATA_FULL + QueryStorageError = 0X803A0001, // STATUS_QUERY_STORAGE_ERROR + DisNotPresent = 0XC03C0001, // STATUS_DIS_NOT_PRESENT + DisAttributeNotFound = 0XC03C0002, // STATUS_DIS_ATTRIBUTE_NOT_FOUND + DisPartialData = 0XC03C0004, // STATUS_DIS_PARTIAL_DATA + RkfKeyNotFound = 0XC0400001, // STATUS_RKF_KEY_NOT_FOUND + RkfDuplicateKey = 0XC0400002, // STATUS_RKF_DUPLICATE_KEY + RkfBlobFull = 0XC0400003, // STATUS_RKF_BLOB_FULL + RkfStoreFull = 0XC0400004, // STATUS_RKF_STORE_FULL + RkfFileBlocked = 0XC0400005, // STATUS_RKF_FILE_BLOCKED + RkfActiveKey = 0XC0400006, // STATUS_RKF_ACTIVE_KEY + RdbssRestartOperation = 0XC0410001, // STATUS_RDBSS_RESTART_OPERATION + RdbssContinueOperation = 0XC0410002, // STATUS_RDBSS_CONTINUE_OPERATION + RdbssPostOperation = 0XC0410003, // STATUS_RDBSS_POST_OPERATION + BthAttInvalidHandle = 0XC0420001, // STATUS_BTH_ATT_INVALID_HANDLE + BthAttInvalidPdu = 0XC0420004, // STATUS_BTH_ATT_INVALID_PDU + BthAttInvalidOffset = 0XC0420007, // STATUS_BTH_ATT_INVALID_OFFSET + BthAttUnlikely = 0XC042000E, // STATUS_BTH_ATT_UNLIKELY + BthAttUnknownError = 0XC0421000, // STATUS_BTH_ATT_UNKNOWN_ERROR + SecurebootNotEnabled = 0X80430006, // STATUS_SECUREBOOT_NOT_ENABLED + SecurebootFileReplaced = 0XC0430007, // STATUS_SECUREBOOT_FILE_REPLACED + SpacesNotEnoughDrives = 0XC0E7000B // STATUS_SPACES_NOT_ENOUGH_DRIVES } } \ No newline at end of file diff --git a/vGenWrapper/XInputGamepadButtons.cs b/vGenWrapper/XInputGamepadButtons.cs index 9a04748..2462d28 100644 --- a/vGenWrapper/XInputGamepadButtons.cs +++ b/vGenWrapper/XInputGamepadButtons.cs @@ -3,12 +3,8 @@ namespace vGenWrapper { [Flags] - public enum XInputGamepadButtons: ushort + public enum XInputGamepadButtons : ushort { - DpadUp = 0x0001, - DpadDown = 0x0002, - DpadLeft = 0x0004, - DpadRight = 0x0008, Start = 0x0010, Back = 0x0020, LeftStick = 0x0040, @@ -18,6 +14,26 @@ public enum XInputGamepadButtons: ushort A = 0x1000, B = 0x2000, X = 0x4000, - Y = 0x8000 + Y = 0x8000, + All = Start | Back | LeftStick | RightStick | LBumper | RBumper | A | B | X | Y + } + + [Flags] + public enum XInputGamepadDPadButtons : byte + { + DpadUp = 0x0001, + DpadDown = 0x0002, + DpadLeft = 0x0004, + DpadRight = 0x0008 + } + + public enum AxisType : byte + { + Rx = 0, + Ry = 1, + Lx = 2, + Ly = 3, + LTrigger = 4, + RTrigger = 5 } } \ No newline at end of file diff --git a/vGenWrapper/vGenWrapper.cs b/vGenWrapper/vGenWrapper.cs index 63fac72..7c32628 100644 --- a/vGenWrapper/vGenWrapper.cs +++ b/vGenWrapper/vGenWrapper.cs @@ -1,77 +1,130 @@ using System; using System.Runtime.InteropServices; -using System.Text; namespace vGenWrapper { -// -//#define XINPUT_GAMEPAD_DPAD_UP 0x0001 -//#define XINPUT_GAMEPAD_DPAD_DOWN 0x0002 -//#define XINPUT_GAMEPAD_DPAD_LEFT 0x0004 -//#define XINPUT_GAMEPAD_DPAD_RIGHT 0x0008 -//#define XINPUT_GAMEPAD_START 0x0010 -//#define XINPUT_GAMEPAD_BACK 0x0020 -//#define XINPUT_GAMEPAD_LEFT_THUMB 0x0040 -//#define XINPUT_GAMEPAD_RIGHT_THUMB 0x0080 -//#define XINPUT_GAMEPAD_LEFT_SHOULDER 0x0100 -//#define XINPUT_GAMEPAD_RIGHT_SHOULDER 0x0200 -//#define XINPUT_GAMEPAD_A 0x1000 -//#define XINPUT_GAMEPAD_B 0x2000 -//#define XINPUT_GAMEPAD_X 0x4000 -//#define XINPUT_GAMEPAD_Y 0x8000 public class VGenWrapper { [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] private static extern NtStatus isVBusExist(); - public bool vbox_isVBusExist() + public NtStatus vbox_isVBusExist() { - var result = isVBusExist(); - return result == NtStatus.Success; + return isVBusExist(); } [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] - private static extern NtStatus GetNumEmptyBusSlots([Out] uint[] nSlots); + private static extern NtStatus PlugIn(uint userIndex); - public uint vbox_GetNumEmptyBusSlots() + public NtStatus vbox_PlugIn(uint slotId) { - var nslots = new uint[1]; - var result = GetNumEmptyBusSlots(nslots); + return PlugIn(slotId); + } + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus UnPlug(uint userIndex); + + public NtStatus vbox_UnPlug(uint slotId) + { + return UnPlug(slotId); + } + + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus UnPlugForce(uint userIndex); + + public NtStatus vbox_ForceUnPlug(uint slotId) + { + return UnPlugForce(slotId); + } + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus isControllerPluggedIn(uint userIndex, ref bool exists); + + public NtStatus vbox_isControllerPluggedIn(uint slotId, ref bool exists) + { + return isControllerPluggedIn(slotId, ref exists); + } + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus SetButton(uint userIndex, ushort button, bool pressed); + + public NtStatus vbox_SetButton(uint slotId, XInputGamepadButtons button, bool pressed) + { + return SetButton(slotId, (ushort) button, pressed); + } + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus SetAxisLx(uint userIndex, short value); + + public NtStatus vbox_SetAxisLx(uint slotId, short value) + { + return SetAxisLx(slotId, value); + } + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus SetAxisLy(uint userIndex, short value); - return nslots[0]; + public NtStatus vbox_SetAxisLy(uint slotId, short value) + { + return SetAxisLy(slotId, value); } [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] - private static extern NtStatus PlugIn(uint UserIndex); + private static extern NtStatus SetAxisRx(uint userIndex, short value); - public NtStatus vbox_PlugIn(uint id) + public NtStatus vbox_SetAxisRx(uint slotId, short value) { - return PlugIn(id); + return SetAxisRx(slotId, value); } [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] - private static extern NtStatus UnPlug(uint UserIndex); + private static extern NtStatus SetAxisRy(uint userIndex, short value); - public NtStatus vbox_UnPlug(uint id) + public NtStatus vbox_SetAxisRy(uint slotId, short value) { - return UnPlug(id); + return SetAxisRy(slotId, value); } + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus SetTriggerL(uint userIndex, byte value); + + public NtStatus vbox_SetTriggerL(uint slotId, byte value) + { + return SetTriggerL(slotId, value); + } [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] - private static extern NtStatus UnPlugForce(uint UserIndex); + private static extern NtStatus SetTriggerR(uint userIndex, byte value); - public NtStatus vbox_ForceUnPlug(uint id) + public NtStatus vbox_SetTriggerR(uint slotId, byte value) { - return UnPlugForce(id); + return SetTriggerR(slotId, value); } + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus SetDpad(uint userIndex, ushort value); - [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = true)] - private static extern NtStatus SetButton(uint UserIndex, ushort button, bool pressed); - public NtStatus vbox_SetBtn(UInt16 id, XInputGamepadButtons button, bool pressed) + public NtStatus vbox_SetDpad(uint slotId, XInputGamepadDPadButtons buttons) { - return SetButton(id, (ushort) button, pressed); + return SetDpad(slotId, (ushort) buttons); } + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus ResetController(uint userIndex); + + public NtStatus vbox_ResetController(uint slotId) + { + return ResetController(slotId); + } + + [DllImport("vGenInterface.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern NtStatus ResetAllControllers(); + + public NtStatus vbox_ResetAllControllers() + { + return ResetAllControllers(); + } + } } \ No newline at end of file

k)ED=fSkUg)}3Rq@vhaDiKojdlgZpE)S?#rwZ zJQg*r+4!x$1A2Z&IR7n945qx9;r#dXd|x=fjXDdFtF7+9??9di-^pysS|j?E zx{VmTw7FMQWDaHSkiHge%(`UM)w9W(7j$_i%ks3jhQxV5>qMRm;WFI z^=PTyIL&6=k(rwN&R+fYUZaiw=%uyXhST(`^yyT;u-XF_z4<*l>czWVFNsq6J{rj& zuq2{iQzPYxtMu8NA*DUxfW;1T!f!3nEkyNIDLjZhi|L$RM-vuIz}dg!E&Lq4(TtfZ z3bvgfR4Krt)xqq3dS4`lc_sj{JK`w7acnkpDl#U(_>oWb^Rm+R1xo>5AcCgYAxISq z5H$al7wD8h=E@b34)ysD$QG>}@Pe@ig^KrrQG6-EP*GQ}sg|h2Ca>llHk{u>^~&!d z{>JTbx~Wy1*oxJR1LIrurb`9P2m-C^2H>pzBf1b4{n5$v>wUFCtexi}|121DbgRTx zzT+gnbZINihVC86r;>C$+X|+w@iKLl>r%O7f{+qqqSk+}|-nGiQY~jfhrBl|dS0yc5AI z$P138-p?8^5`al$Y88;0m;^@BJNpw7V(o0r-DGpnH8i_=vCPB9dP#MIS0DYCYH z%L9eGD8zf->>UURY7#q+b$RxGE(NVBt*yyy7VhdYoz**3J;iCW3mRXL;qzm|bIgCyx1&n2~+}YzQZ7i$o(fBE&v}&AF^SN-GEWxgQt=Y%A96mO$w#uU`mJ!3lYL#{bNfV2dB)`2UB&pOrV`oJa( zX_&LZvhmQCp>dFGHCSiA2dovx27@Ro`rn8(rTF1olJDgpgAeCGs7`=g?Jvd$nK&= zQM8cLI6xjw%y}mzw~xfb?6M`~EkVB%=_LlWe^uyZITKNy0fc-Y4G`h;zT!3 zhLsUnk8ATITSY{B#!i zc$Rsz_AERLeE7O6E3!UIJ45epVuC3jaaYJ&$Kb7v-Wus`9%i0*zfP|m^m?~1vNdb- z3z7A1{sYoTThtR--vd7j1iu+K$Vi+UsLdv*MX$$x@Z?1z`$ z67bS%94{8Kabqav)ZmvVvK}?t3VwNFOn&M3`Mf=TA>Qg@r1fF^&{dnYY?clc2}Maq zWv@K-bHo2ArS8yMUP9vwXsUH?tB>&2d3$m{}2toh(ql#VKC_@3bAO2)Vg>o zaJ+&tpT*}Xe4fDP5quuPrv{%*_~>&VJ`tY#{S$aHJQ2*#M2w*7f~(WjW3fXwsM2ltbl@X=pK#*`FUzAlsK$w5v-VaDXza%ku)~Ip zC{ubPn`ZP{jo|NVgn?h5`gt$PU9|(H7~My}X)l7nWw#0TGN?@^QkztQ7C;d2j*SRE zflm`Y+Y4Od57y0dX`gZKo#fp6Ljr1|&4TG`tIwR;N!|)|36MJy;7|k9&}y^KT-r%$ zS^0qw^ie_%;LZR+K71zNlZ8(XKDqc5;BSSS@873% zH=b@hB|Nd__ppek*uQN|9x1@L37?1Xd6MI{+NQt-4kWY%e@AT-+5vR~j2YLz?Vj?J z5R~Z6aC{Qa!$pfo&OmO*@7|@5BSeJW3R)t zkxH4^5RK%WjfcLDhkC6LC+mO5xA<7`|KIWL=|{h5e52G0j&CnN!gc8$N{3FJMbCYR z>%k`zFYz(!o5nZ74*eI0wRGh<;~S^pqT`!|x(_-5hm0Sy9*k?`^0lYx&9p9%N`@Il-BUl`x0Fx^;;?-ls0!Ka#H z?6&#e@$LV~_=XuOmWbf2sa1&ZBi)C&WpjZf7+LITj7fbC4ghL#P%0KWaAQY9bDkvF zPGOipo|~Ty>C0{AYyTl)P#Sp$0zA;IT*5R&Rd0o7klVn;g!>t-M#XU51o>9*pI>M+ zJzdFNl*(qe0Kj$^y#vR;5`0Q&T^?KV%4F_WQq+Upeex^$!%!?e-5~O*Jb3_>1ldk3 z<6-jMe1qgDhhv+F8|*%>-U2F8jrAfM!GM;SL2SUCBYCuhl(gq96c3lr)2qS*L4&ZY z++6o6iUwC1d=ZVDnJ2EofxJ*jc!JKXEv_JZNU_F*SuU(b_#2!ySLLEbEshSV(2{cC z;)~vSsk8*C)u#s8^JSPzlGn_#T+6Kz6fzvQHSD_IiL=0V-TN#Q_(2}?`q|`fVTFXK zL?xpU+?l}+-v*zH$B)dSJE`1CQN^}d{;f_dknBJ_nI6^Zm?K|mvlr9Ci(KnM{+Gy{ zi40teW%YIe?||yus!ng#4^4zh*M<)mW zgdcpzY*>gR{{=E6AZNc@DG0X`1CHfOM?O1t{DZcVuBN&7rye_!ZSXm3s6waXsm;%H zZpB=D6V@T&p4yGW;2?x-#j5v@yy60PKWOV}%8NS{cI6N9sAF7v!wa$Le_yh;*MX4h z(9IODFhUt#BE5JLTY?qiKd%U@gRqX^-Xm1wJ*|`8K~9xWRCFxU&#==$tc;CE#IeIX zYBZwc7tSKK;iS0j69Y5&Z70vdGAz^cJ>i^kzSM{%;e}X0B~8Kr>TBQ`*=)OR8od@<$G|)I2NgPqBWLjA9uIYk1KaYMV=%g zNo3zMlfG(Kd6Gk}q4gf*#AV4l5UP^c?EnE;%U&ecobe6HV(#CgTsxaw!jzGL2K8Iu z>XFah8}UKgv7|aQc~?`?cNfG8;*$bVZ$V&0dp4tZ%)75KaSkMLmjR9&j9U9Qo|sc52JHvi^M}9>Xq-6f_&+ zZ7c;*A8B$Y318CsmUL{%=_8-b-VZm?%_-T&`+MibO5Q(`eaMsr#~eNX%NI#DFssp8 zJr&{nFOfaau=$FK*q=Dvm46zGYFGnv%sa@s@_QWE7f>YXIMoOpytC&<^}S>Hry*m` zBW+kOJ(dx3WgGKqjdDe*@-R2ng3u^m6YYb+aG#O}@4zlJGGb3=*VlHH;q-&OKR_$% zndUlH-#Qo?29lM@r3I8_?=8+gdIS7r5iWTJgw%%%as8;{>_$Xr7^I><5u0shSnO)VNdYtL>}vEWaE_N!mx44~Y^R%IJI)kaH^lY| z0+(E|u|zNKFgi-FojXsnY!e7%GPltB1>v+;987;un%98dcwHqwIsL~F&J zxYkQdYn5;dFLqBBdK-=>WlP(Rw;2v$3bjY-QlGZjCn%E$!Ajq8?9v>e-K8T-(cO`{ z65o1hrnYh=lB6T9BTIv^nS?jbr?q{=T?u{2bByvFi|0XlX{MgH(gqpEhAbMtV9|nXk=$5{|xtl1D4!@^6<& zv8&*TpbOh_(4pWtvMmQAJT6^?pA1&iX_Z;Kl;_Y^ORo^TwdfohptZdMEkaRjE(#(N zi;ivXJ^G>i3bskDy|u@WZ0?0>LgC#9$LG5%#xLxxNNc6z{rT=Ace)cnq4Ckl9Lj*B zlj}g@(NgJg>T{mQKWH;!p!Xlg3-x8dJOUVsp^ln*cQT*)^nROTI5F=TU+vb3=$7`aULa)o$KC$Hs9>6 zHSTljU-4}Z(h=C%P*d4mesUj(c_Q=D>P81zH+b0!iWyfP&SAfVMb~};GDnAyocgUI z{7>{~1M^-=!|-hSQt!j*mU>l%k5HghabYP19VZwma~9vi>M19FlM@9i61;EQe~gIg zz+_cyPM%z#Z_cPSKyh6%bobd-f19|muD}r~a8|7jvPtj2>Y_cNq43Ojq~Yw|>f>$I z4QuP9=3JKmbLD1W%C6t`5qMLb7F9SxZF2^8Uo!fm>^=&lxS?v)QSGC)ZO6&B(xR7V z*QYgvOFPxe3Alh3lX2mzKHyR^b<$dChYs74F%S4imP9P2xxhJvfc6)J7oNs2melMJ zVlq6E^y(UrpbOgtx@Aw~2(VMXAyu0x$lq&3nzq_2ya*Ep8mN~{Bx6f4Sb2*$KHoe3 zARJ!E2~-y3SN1Xq25ME-vI~V_ zFay_sL}%7z#8S^T)JZYd*<1r8dq}i!J;I|P7B+#a8)G^hxNyRo2VDRCG!SXG;#yp0 zMipc^C|7UQ-$gqeCs7%Hc;dpIQHM9mTSaW;rZyKiCSrX)HV}cy2y`DAdbs;&b8?n` zHgI@T-b)Oe2jr{kh6iscE@A^p1wqUTFJWK?M6O#+1JtOkN!poJ>)`IQ3Lu}XxB$p# z0vP}#RRaLhlmHSgW!d%B4Ox0m-5?0bIgU=|q=VEHsQ}s(>oX=o7$y389{D)a?wyal zeE|KeRDv@b6ti2{kjgwzvFKfya6`y8^v2plTj6<%na7NLH+tF^KD(#Q#(HV{2PDm# zag^DoFU){db4dPaeGrbUGbV$#u4s^bNap1d4>nQrGeR(4b0(|F&92FjdmV5fOQ&^a z5|qvap~UT5Ir*8Cz0uW)K8kYD^`jG;UHR_HJ z&exY@=yTlFIa$hNH0J#KlDprfhN@b%Jn-fwNpJjd_g4b?>VU*omk<)Wk}|Pl=qOXX z)o|XEtDq7bIC%BPzjMjy@AQpJWJv9n&>x!*GRUJ*>*(*a7+H7%ev9;bx0~JY@DCM1 zqZN_=UlzL^{x4j;z!&BhW1#S|*l9RT!3Rn)cc=%j?;{$yVkh7Z9Qa%r24AlI+UB>2 zqZ3=fk*gGzmM1q>M9>1BVqM7*M zQG@m$Llm-)qRO6}(hLP=Q*Yo6b*R1sH`8e|xi~abw21h<4j?BnFf}UqU~I)KCdBrj z^DIMODp(eCx;oK=and2geuh{K-;kd^wZ&Bn_ujbgGAb)s@9F*^CUqYU^lWnS3&qzU z7y5sQ{pfwF=Ksgq+s8#&<&FOX%)qFlLk32MiH2oSn}wD%T3~|oK!PSnhE{9DJ-Myv zHEJaaT};bxHCwxP?%nQIn``aeez(1Ichl^_0x?i?3$1U9t8G+n9U5z?T);Hv`~IA3 z2C(+t*YA&?FPZC{&v}0SoX`0@q%End?bj@UM@=~Q7hA1y#QR^3oIPrb<_{UQ-@{K5 zAGIFP2iklk7&wwA%fOI@{~%R$+VFF2_36ZHcqyZhVX?H|V2TnD(?=H40 z%4(+p-T%$7#oBPXO0$D*vx6*xI52W|7n`*m7r{=&vBrW7XXe3fgLq3$OSpsrFpxK2 z?Y24b;`0rTqj!q)Nby*U*?(efj;}DS_S}Zu#_*=3tKm~V)_64>P0UE%=9!VK6lLlO znGpfe7=X(bM$k3jp3K#O=I4lFAbYOLM(0*w75eF4FGVDw0v?g!IQ|CFzyfM}nub$! zy7i;@!FRkN+F?tuv#;`|twm3*^=Z)h>_607+SXw3|D0@pb&I}j!m#Rc2hWDe`W`E9Sz3 z&6R;KbYL$uvP!dm4O))d64`f~MxC;*cp@9sw5ut(Nb{0Uhu!sC&0~f^3dqn`=zB%3 zdw_LHCLKuASYh!(>iBRpnvZDYmF1;srMBpY*4C<41eUmI@q>hMFY4mUWzx$wp18Ob z4&U-})i;bS6^8HVR+0L%CCEY#h#LVF^W@|eA1{^zPD(LPcCG&5{ECgjW=j_1RFv%e zXR8Iw^_nPCLapP_)4||nz0BA*xuWkbKv7$1H2od9C&5h}IM?r4l;M=hz-(bAnCCS*8=bb4dJM3gc$t^c4nYS`=_UGa zlf=_W%DB*%=T*4_W7IFn&z1%Im^+r$rWI`4XzxcVX^sqGU}QA?FqOuY1R)?7SvNnt zFBr)##gefigdKpu)8Y)q=aOe7{Idl~&82D+Yb2B`_4y2nqn*<4h$SQy7S?UH!^%uXOIV^_R2KFXfuZ}3ore7T^r+!noa=1E0^A7LtMJ?v3V;C6oOo| zQh@25#MmoJ+_kWxX40{yt))j8i(aHFu5@7h=`!^P)D%@R;(^cYP~?@L0Ax*DL)6@Z zp>dK#2K9`*vvq>Hc!Gb}amv+QK%&zO;)TXZDpjQc%f&elC#>k9aT3f742=`8@1)_) z8z&VrQYzH`I$U?IfGX9i(6nkCC`hk4f)ac6XPK}vrLV5Jz25;VS(~=~p$Mz#kO-@YfHFv$ zO+4eQ8gZ#7Vj06$>`#=z7HEu15>SHFR*nv;#j=(N+Zb8oUey>j@^bYFn;+W%Gq+ro za(b4l%P*GS1sea!SloTrY+F|Z67;f|a}VaUnaxSi5%L0_inF49e>tar6@&)b1_u{2 z;cDOeD|*0i^~%vHnj>%{1X8V0Fb5)H-oY}C2 zZ2|O$st$*0yF#^x%zrrfMdkr(xpuGQr5K;$pA)^Dh&^#=C`Dv-Wwyn04Hb3{08WC%b^&Qw;$nIE&LxLFIk z-;@(`BO@Lqc^uTL{NL9Cky+ z8;&sS_Lx-U_R=<+fZ#ogU5tA)M?zpyp6fCCa@DwU^JqrkNs4)WN`j#bk0oj0Ob5wf_CWN>frlvlJBMjh6D?(oXg+?gW0fXIPN zOHt8&66Th<&ZIYUJyX;~6zhnAt+^iCKU(~S?%sSj<$`aKfP1|>IUxOm{M6MatgE?w z_mhXW;WI+R&ipVo(60XxyhJ~;;GpkeCEaJetNt|6;rK&BV@VWlpT>2>TvtQ3_0zw< z@&{dk$*2K%QMRD*HS*Q`y5>&Mcw>~_7ErYa7=1s2dm+p4GcprK@df>Pr5+~E@t}%ZJQIBAOaWsi)5Jhc}^Oa#d3J#CFXim zl}a|>>X+eiSE-2i%cbh;KTE$Hjopt2y6+Z zu|eaa6+8wqH49{GF`w>Y6*jK<+u954gLBPKB7O5@6w;(PW^ehS$}^23ZKUw3ij}^3Z0># z!Vwn7Q5@~M$OKR=EB{0&cvwfGI#Ms06uQDX*%2Vo^d8y2`@_1rrK+}owz0iJ%nEp= z&32P-kWGSXNbaAPsHgUlk&T86TJt1JRxjY_G;t1KLP=H8u5VK#1c}0+jV-M&PnTS- zTK#9J{I>h5gEyFAHf?ZB z<0w@MUBX7Ceo4k!qyRySoMTN1jZSX?$bQnbfv=WenPNoa7i#^~X9IG{nDR?GVo&8&3)J zCx=&LE~;PGZ%hW!@K{%}t=ajcnCp&${#ffy3<0&JUKiMJ-7ja5YcoF-?k5sGW9+g%~MN23@x>bVIuZdV$=}%r5e&R{|Q02qx zGV9mdT{zB4q5jYm906~sS}obTpN_HSfEpVfiGvz|`4T8$txlx5A#bm{iuii+BNKv$=Z`(HPsP3#DDGDA)Y4PMFWu;_G=mT zd*Z{Mr^i?_O)>A$!+wuF>^7)H4||iezP=?k?w8ykJJ=5J8&6G#U^D-L$`-9VWYGvV z!5(X*)?snOa$};oZkfZ#R96dp`7-DeZeAaMin@OI0@P}fk%#KOjsX@dC^}7aV1$d7 zVY-|G8Q-C*N8}nCc?G2-B*`ivSkQymb#^tts$qOs;?e-@$GonE6?#CTG=x z(N_k%^(VV1LG*YPu@6-uUaWO?@W3$hs34w!(f)5#iQon8E&<4C#{&%oQNTq{5n!AP z{n!|5s*%R1Vv!51YTbC0dk3E$`*XzpDE-l=sgOBApTB&WYD{{CO^JhuC#I8u(d{nr zN-5EF2S{)POE=$~3O>Pp7)ghE0g8!QseuF#o=znR+FPL3x>QkKm-h8qT2Tzcyw1O|` zcx#-m&gCeG1u>)*17Q`>twJ7Zs<5){4 zweym!Um75jZhqZ9^H_mBvI0M0NgA4jQBGK?uaTiSHI|M`B5vjq zF^=u)b@~%orz6#xYh<1JQ)^NkT;>WW6X|F*RqDvqrAy6_qj6=8U@`k;y|M-Rim;Vh zL+{mOF*s@k20ALOPLUvA0PscG%`7e;%WJITUp-Bmb5YF#4n!FH1wuU{kQ_{r-X~UZ zjk!l!aT>N#i)-qS>4pq1QwMfPu7zEpg*A5VlkoKBFGn-VKPaHrB|8`fXFkM3Gv;uA z)SYy-bJJ5SSnF!{rf1}9$`sqQO`LCXJu;8EYE!GN+1GihL(Y#cTV z)9f=d8tYNDDk1b;{YhD7wM?`5UQoYvdfPSq9FoKW-^>yn= z*3iXG*FybKmqGcoFF&K8W#fUK)BRiO3s;Qwmeo$v^B#2|y5?vxA%os=wJP8Z?aE31BBaw(2!&Y5zzgB^hOpg%77zoJ|+l4 zi!mPSf$;LGbo|wMRch7Ty4uf4`MEKnsW<^deXMuuJ}l!zl4XH83w(Q4^&7!oqtW>m@v{!log3;`v)Yy&|;qLP|K9t99}0Iqpgu>rfkv12q-_q)!bgJ zjPCz)YUQ><&7fv?79O6$^*CIYN@pP2MzPi|V;a_yK=^V{h9Z018TDVwpszf==|}yH zp?mh2GiQlaBVWg=zq8wc@&(?s3J=dgr5Rb6QRj+n^J#c{kr)$ps2|E{8?Q3cHhhDJ zL;YbVB`&G962tQnt1$?EP2yar$LbpD%wR2H=g_(bRx|uDWcl0LpfW0gz3V3MDq_8P z4fQtM`Mh%flQ}39_F`XKczFWP8a-A?Hii*)V{{Gv5pa5JiiZlb1!J8oL?Y8`Cf1y>9B|17@2If2Fedteod1A;ckEgtYl%(ta1pzz~&9&RphZyIItHYkF>;~n9 zoscgETk|kkTSwVk?|@ZwF9!$c<<@Rm(<7M5y!K?RtEx?Ol=T8Apg$_GRS~P~(HnG; z;5id=xwGUIW(Az3rIBQt!GVanxmvYHf4QpP!pP58_sYj=58r-7kT$KHYUOJKbHEf$ zQ#{u6s0DvwD-KMCL?F2g@>0a!ZcEi3PC%4leFx`&2WE#{Yk zYPR~pc4}a*yHI;CREurzRPCLr=GxvF+B-w#+unTb%~zM$-r3qaTTQgR#oAk}P8VMk49nIr9-IA zidnK1i`%2BwHvf>qe$?IF5>fqipc3as#INiG3EB?kV?717vQg~MCmNZ4n!bK4ok%l z1176fbuH^a_-k9CV{59pEfs9_t53ft(U?<#IdKu<50B_+Ci5&eEPw{B2Ra_wphKNcZCa^--R04IQp@F{S3A@PtTOcn+>(*{J_$hU zYf5)Qh_1VcBU}c92dSv>QF*+_Hb(|}?4o#&Z6>bnv9m+m>?SY(+1EoWJFY7b~bg?y`_uWl>G;KuR#G&=e+s z8XZq_i=D=;uO=m&SU%6|{bX*Omv8o8wBn0!!DpD;TE- z!nuNqOy}z-h+owz`U2cJh^BdyTF%-%qNTF?CH98_Xi6OV6i`OKPDXwWUGu6eggkv? zGcKT`&tcs3fR@+DIH@IqXjX0#cYI_)uu(lrS{axs8DEWZOxno->oAXG3S;T8aiUqk zKU}@iB7@~^xSrXQyE`;aBIP!Fe~q3=iBS=*J#4<27)l8(afar)Llv;T9foQKQ*8Yg z|8dvt*YH|D?Jnc?Wg#7X#4dDwOq+B2U4aq1`VROL#_nEtvc>PH^!|Ei4kbr8rVR8Y z9iG&4Rn$APIXS^$oHO&5sqCWzAa9nK zZ#vsu(t4se?AAz-!);uuzp2Ir=9}1tmMF5g>?qG<8K;|XX4zmpfpkBhfyn0e9Uv&j z_!d_zvDJ-tps?Xoop&gHaB4krpgrg8LGRr@TT$9jt#?{U+8#9Dxrt=%NR1rwzS5Gk zLo~MK?!F?`Ti61VV-u?X=3AW5uN$U)JTRsT^cm2m?T^HE7 zcnQ{>TEnxVi(0K&C$4BUE&~nw^ooy+^AKzN5aUgN(gFPiP%@ymB0pKYL`M(LI!R)Z zeq(=5$Vb+v-m4AxNrc=d9M7OaXJRTll&qgIY>MA+W$O?nBAVjoeIbGCfESbuUNa&4 zeGWnf;qQG(bUxP}D1W=j8-%LbLb!rxAYM6z?tT3+eWXXS!zG90n)BT6$hc5m|3G#; zXnc}qs|viQX(mNuyctbg>oTL+>(bR*;OVg^lQXGLcMA*2syzf62mV}jv?;?}ZzQZc zBV2f>)Vq~U9hz0KjsYGEZ|#pBrVqVaxeYsu%`Ty?xSGx`itK@bsH>Vm_6)LWI(e^f8O^IfdSFJ0wBisAXB{-nuj;lL11?uYXC6OuU z0$pRcXDl?Fes|;_{?sM#yGBz38N>*nc#=TpjD>+=O*e={Iz=(Ra`*T3vCOT)L!kvd z(DSW2sVc7v-mSZ(wjwnPtE%_a!lR}TWBK^)3!{^PJ&Flc6 z-~-%tfs~p@*(x!&=TKX|5%djK+QCVDmW{LaLR?v`aDh2f*cBWG>e9Ei8s;x<_b3yEoaK z65b6hR!gfnNqqXLkG182Ts02Xi%RPTkJaDXa)00qm7*&K&|%)-$&$O*S&V0IOTIBu zMUbGf`!ez&r-yJgpUzdO7tZBc%+Q)2oD3z0$f^kO{C~*h5#IYE&u=|s5V$~n#EuF% z1}-9x`ipkw`+5Q+D%3YcRDsq&@)#zZDt$#BxqBJ+TIFtQRL&mQN5iv3!ERATF;ZY? zs6C@>UWFRVm7B$5bw=ixyR#@aQp4>Vef!aqkbc{(x5V7b2jg2lNKWzuyJ&XA_2Tr4 zkYp)vW*KSz#QA75yPy6x|7a@VNM1B zoHrA^F+)8(811hg+tGvyjDD?Ie6VH^3Ut*o>7!Sz8rEJYSj+lIa@ctlS5_`8@J_{E zTS}t~pgN{P!s#`t&@**SwB+y_7=XLlD6_CDpX+iYo!F&J(mp0Bs;y}GIRr^W7qKFv zW5M!9Wd}Q9c>^2BD?D5sn!WC%_wi;^C8Ccuz7*uKIbHp^cc7(b*i8V3wl{E}JgKjm zHuOQLyypH1kkWR5V#$TD`5ss9?&{Deq0?rm`*l_mX?bLX3Jm7^nlKgZ66Ad2Vd%x> z{$Mb#aM=Q99{_DOzC59 zcq@aaJI``%W8=Q5H{W9huI-6yo$XjXUTS^J|{;4%R?gtjq~|9mg{q z>^~babsNnIEk@UpF{Zv+*ONUADplz0(Be$rv*vvTZY?#5UJ$kHbiqk!fs9%i z>|OgOEI^Z(-e0Ym9kYZq)gMVf@phK+HD~Ot#ziw$7!zl#HqKB#=SCab9X^6(9ePa; zQ~BitkhKU09Vl+Z{qit2LvU4?*ovBxMd#*A0NM*Z;H$htc^l-w^}Y%x{(SF4O;pWT z#d+&(_yDJ=Mi}#ojjK(SVO(UY;l?=LQv!{swDbmr*b=*an{T9c{}FHf8+H6@?$F-W zd~Z-*@60#ywVW<829)FIZr}%ry})|&qm$+*C(Jhz>))ya7BNg%BLg)9S!P9UGu4eo zsi{U8zG7^LP?s}JmFx|=7{R_)M>EGlUi}-6d=g&{hIY{`#3o;Z@_zxItXcJM>5y@; zm|kL1P6SGrC)mkb(C$d$h)%mlg8yWyK)#VV^tjX|*4tR$t#J#xf}h387EXAuk*NMG zgd`RcYkIPAyza`G-rx$L+UIxGct}yMs&9!U0rP5eQ8<*U$kp7*(sb~gp}}qmPIN@F z{V6qBI(TwC*c&{9tj)F*iGnajtY&Co_XfXVhpnljSHU5|;FjQ=h$1hRa?_-$pAim) zFzV`H&*4^9>Ql7HOH2**siia>OWt=4JmIGjXc{36ExFhuU6=JGt| zoOFZ60eLoRmR)o6LD@B78G}7s*k)}_t{Li)!EFEbH=S)a=P;GdD@?T&xE>1CdMea2 zpk}hq_RjI-2kx#=x6uieR)_g@ly${mrCEDgj=9XP@hx4+NzSm1@@&&6Pk#3L!1+TW zYEyV0j&J!eIVmlM8@;3>&dRPc#;C->8eK0ndIJuf!zf?Qu26SVGt}9}1x+fzH{@~Y zFsP(VCpfm_yW}W|*{Y&{m0hyxFioydH%b#^pA^1m<6PMz!S-Y$GfQS zFSofeRFnZaS>(2lL%}4<)ejk$QnhymyRAMj9-xd06#_41HwT+^=0+o4b&vK7c3BOH z%3eMcqw&xi%^BN;gVQnpWhpi=X}+pGz*C1)Lj?^zJzNBKNWr1xg;IwiC*q?X9UQs= zMV6t(8Jr6o+=(!>fG94~kJ{AIzqF=H#(5X{`A4X_3#p}y_X&T#KWj;a`g13Z7h6&# zhrs908meVibOA8m1Up=m2!Tw-E;MuJ)rqMtZKPw@%1f%-3!IMO=CEj}(p`6Jc3o3J zcJ}(lf^6WEh7S)_PH(K7YPRH)`9?kRZQ;TPK`630<*UuwR~_Dli&>~vVY6(KqE^;& z%Nts=69&X2z7!@uW0CJGqoT>d`)=7Y?!YLRYcr`6(Lf7kSnXg#Rv+T+EgvT* zP1SQT6gXrhg6JkZ)s$P=LjT@f?n z*&^*v(7k6lwI|+*(pjf;;&(eQvRB$o*4+-47fs5IQid5#@`hiKCiO`@r|Izt95Szr z8l&Mw9_4+t$myx0vfaWI(^llH=icq|_bvplo1+yYn$7=YG%{$pyfT4vUr+Ok0ZC`z zoJo2Xe_8KXY>Dd7y2C}^w|FSPu7Uc_WzVV ztrZoq$kP~S(rf8TUYugl-n64d?%GBp*3)yop4Ca9X|X#`?0Up*6sm>)G7bE5@B$Py zF6RPtj@)a&Z{-3saJBhH=-K+_6T8~9&AvS9;C}PJTy4IDo*k>v47)}HSDQS2waFdW z5P9b+xA%XcSKC(`#MBs6x!C+xXEc#UbFq1BFxQV+TlU3m(0vl&s@v3cIUCBz zL-L#6DZk_1k>6<@@;h@czts<>_v_EdBld&NR{kiBBK94=*>fvJ*IyN2F zU*{%RtifQg)h&L_@7V5|f?F67H%j29Bg~I>m&_8WaJ%a;EH?~UH$l5y4Z4-W>IDQHIIR5slD{F+(U=*(>mv)d71l>NS$&^UjTXq z=@5m->K;xQ-fudfWUb5uHRgfniN=Cza}lq^`B=Nqj5|S$1ofd zaRjchiZi(t&9cfwKgxMh`*~;*S8JYPV%x^1B9lY}(*wdG((&qYYS7C=pV!LIu-ux% z4TY_xZgnxG%L&e#FFJdamzCL`{47HuBv|mV_5|^Cj|DEVL{EXT{SI_28!!rquwDrl}SLeXR06#GYsI?;1dV}*f?^@5Q zEABkTZj|AheYun9>n0*ZjvKKw&-yWUwxH&5ij%5zS=YKPryRbKVFjf0UF%uVh7@sy z+6Dyq%uLt*<@Y>UVBy6YHA^FEHnKaFsQ;34$Pm5;3wX6Ha9iU;TzK9^8a4Ak-*P z)U8k2w(&$ogfJKyqhn9(vg?gb*8O1CUMQPjAgLmf6b)RcZeYYXGqR(X#mDeR98DgN;>(AmG=pch=EXnJ@V=U-FqR zu;fSAx_on-YhCImydE%!_Q-gHFR>TN=y-!8nS}8X8iPYG>ybEQS$l(@lWE@KOmFb- zIMlV&DDP1jaBstAvQT*dEPE+@4=19vZH0#ttU7zCxYfRpH+d5_9K8q3sfJXW1}cpp$N<6|L}hjg&|1*@mB65hhu zR_&3z@!lV&QAMjYRFwg5e$As;gtxADJ5>@a6c9Or$7wnH!PU^eLWLQ=@oNusf22Wp zr3(>F(DT?EdTE%A6C_>vli3p-0i$vxxkAQR`l~ctJiGaqo}o1X^;` zDng3d6E1aHj>tLDRhd>|X_;(RkHQQF3QMP7z*D5P;Bc|LiGaK!tg+xQa?x*ttYG=5 z7!3|=3;?!7&Wi>PAswPQY-HzpCmQI8297eRVHiPqz1ptt4;NYsc-HEt6$R#wv=Gm; z3yw%*?w`Rx$Xf;?`@==P`j5wC<<`|kQHx=vOd@prOqp3L?ljjE=l1C8%yRW9y`{&i zTz$bMP#uwik$ZWIpqE#TpI((205P)pTl%H4bT+2$ z0(6kMGfVxF3}REqr5@^MG1|lo^)ha$<_KNQaA8J!VaD^EA*JDxooewPI2vas3cj(k zy>O?TEv0JQV=~pU)n&gTWz_B$k6P)Jf>LRXx|!)MLi=T9EK7I2=pd@|HYCzSdT%rp zK_Q2^O@_{46vu_NU9YHRANkfRYrxn^Ow*bGvXmDhlG?75=ZearcAbajrOV2q{`5DCNm#Z$8K3= z%zmqwM=Ec_6U?sZl_*`?fWs<9v;b-c)sUHYzkmcC2<~3v;_Bw9Qu{LX!bxdWD5cw}W9o6r z5UoS!tN$2C^ARymkkGXi<)?~Ck~7~hxj{}T5tAUBC?=cvBqv}R~3)MPv7 z$QA0@c+?9d;S+IRrr;(Ii;oWT_9jCzkk{R-!JZ;6H4Tok*x>PwH7Y)I<$$>k--7&y zptI6$Pyl;n*H70g{md9jaDnQPTOYc$`PV&;gz9|(Y}0^sBh)^8(MItJ4!|o(zQ+Gy zp=CDIuW{B9LIHC8FPF1xxtlwz`lY1Oujw*ZeStJ%3G@=|loqD?mJ3#J-&e9pq*|y^ zOJgtZq7{s%!(7|rbQtH6VW`wyBh>#=qC|}zr}_pqATe=!M4d0wSL?YFzPvye1x6l= z&tYzhx;&T4kRr%vxm%S}U3tz>NvE{!pPlixNjHJksE>e%;+I}l>C1vMy(Y*=-e$pr z0u%Da8sqA(I9FCdH#RWUyf-yz#rN{=OI>Ad_ zy(y`I8CHeUx5G#a&ys~UZbWP*BkvK(?oCM~64s)=WC(j5up7uK`g^ZKgAz9o`kpgw&)_6gS)q{>g0 z{0OKZUw%Y;dciI7vpgKCqd%_;VAsvK96OK^r{Rqxp$M2zSd>$*!#3xKUL%vBPZJG{ zFRlaXyjEN6G?I}#xi0Ya!bPop2hG;hoVVv$Z(|lg!>k7F+FE=|sOT0f{2j$zQEY)JmTncx`{>sq0 zrIBG6lxDLLwZjixMh@;#f7L`>h~N;EX*3&?O$_q zZlIB8e&aZgwumxW$amAkPETlN9i%>%igWteXvFFhd_?e)`Jg~m)C?og;3M^5O3|xU z77BK9EV^=LIPK@YeJd`Tr^7ec$O@96cKl8Pc|GYupl2 zSwab#Hi#Y56eDM ztlFSsiBr@OM0i89<%nNtjZqJdq?xxLMT=d(EiYGI@!Aa^=fC_a3ohzwH%12AjA4Bp zn}m26sn%Bf(x=GEDD2NIb_RObYIen%3P8O9{lu`o`G0+INae1lQ_bNl7ZEas5J%Iid z7JfVy{X1;Fx)Yq1cPC1lE~T|bhQ*xlq7LxvY|Q6fC)Xuv28=7AWc12NF!61M@ROVOGnFfK+^ zdQKNt#*D3ldnVX>&!mmdOUhom<_OZEy(e69q6}pr{r3hEib6Uf{fnaAUo}hjvn|%V zgrb`CrQ~Q$>!LHQ{u)>)APK!|XH)aA_%=z841gZhAnAqy&{G;DO&9VTWGJXngB}|SdQ^j+9140ygPs}++NnX$3v~HuDCTRkcL$p z4%~*rXh7hG)*2BzJ!dtWyAoQlm$5?*1}s@83Lkqy;1k>APG{c^ApjUpB9dqBkTTvR zyB$)->y+^#f_{+(?&)=MPoMk}M50lu%R^IbDuLTZ_@`JSGibp}Y5ef0&7;R@c?p3F z(f1#kw^E@@lD6; zO|MgMQ`eAMbR6zDJbdSO>!ModjRU*i>ugo>Vjk&zuk*dm1E06*k7_-*{We;2@b~iD z8~hJ`^HI91o0`&Ue-jS5meL)q2X_Cf$irfh(RQm-CH$@BUuK&1|2?@>&9+QXw_W%7 z`gq>Mcef5l(bR#i*aIU=$=ul`FE{d3)dMLF-uTF{0Wcbxg&hJKPzmozDpZ0J9wh#{ zO3UV{A6zFSC=crWtFd;AwS}YuKXC7kzg*f6mi z--Q`7?fN2C8_W0t$uBS=o^giG*!+5&k)kY}yZXUkA@8}Kl_j)WdW>HD;Ly0o@RRn5 zZLAc>%JxGeUjYz#?LF61--`H1JR&{pSoOrAkamU&~M1IRIzxHm3`Ti6!* za6&nfM=tdv)`Zx!lu30Y1KZ1@wAZ61Nbyx}t?R+}{>odh!>+4>c2Q;PW}qShM4)7( zRWCImO@=N zHV`$@Fer&=2TX%ZCV2o!W#Qw#HuR!kNu-X$Xi3fN;TUq75R+Y{{~Cu(P{+ z19K?W-8}B<+o^T0SX>>WzJ?@b%NP}M%Auf9$OM|<1L3z+xH^zU!0?SQfaRk@2tCTX zB*nzYUR2u74=+xzT8S~X>5PW`2DHEZb0SIpDK|By=3f)sy}p~$+Ju95&FH$TrmY$@{}QxoGm>U%7O-%wDx;9)sKo`O6Yxu_EK7LYNC@$0E>IB4ga! zniPO1A2|3MTV&zq7HqCQP@)vmjr?y^;+m`5fL z)=}3kT++#ePK8LMN_5paa}PpC$MX(IQ8Qs)E=jjVA;7KZB+h?IK}z3B*tTVJ$%p5F4|h!J114UhN=c@vg* zXr(hWf;W$IQ7dwKQm?hAo*5-I7(e2Ruyb@M=^h0$s6`Es)LrQu(O-?8nL!$hd1T69 zZ!`W7TvE%ijLs>9w)?`4QsvdVi!I~fKMe~rVc6YHJpFX_)9TiRbadcQ=xVsn3O@`b zVP2pMLrLMn!(24s&%Ez>=`dNRW2E}6OF}C>xqn`~NIg_%cX0etejX9+^Q@wLL2fkn zGxq+p5zV#fa|(q!xv#VDuV$x%lP8VCOqi832~3+qSjJ#jCSe&Pngf%;AF+>_orWaZ z7gi^(RK7h{Yu{4fyR0_(Chd#NAxvW42gbVvoldi2>@4G$vr83f9>lu|LU;zSZ`Ygq^P-pIIL>% zk{zjzy>-X(SEkn;%UYT2{e8#VpSD^%a`)GLF#c`Dy+3!qepnELKOQCy#xu@ok?rNT zT_<`@7}?C8k-`R{?zmN!8q$dtvdPdK~Td5gw*%h@o^Dd4& zV>sf>XRP=_9x;$u-U~=Cj`}0=?l3s7^d4ERUX^WH2!h^*dkCLT$-UgxT)}NI6cpF5IOifKYdMwj8dTS>{Id!Sl^S5%Q;)MU+?n+TgiFI2b>TJgeq0GAP#()UMa{wM3FiIX2Ksj`?)Xj8)TYz)52HlWO*oF6=2h z48hcDxkw7w*Pqi!qQFUJCTw_>4{V~z| zxZ;!f;h+;}W7YA}a8SZaRoG&@<32cPYv>5kGl7Ee#cEisy$WS3ov$`+w(n&!Smum> zKFN&^1#9J+fmAo$R-0iV;T8`O3rT z44tmhYnOX)B zp|{z*@S(c-7kun#+4|pd6mu}-9?Z-9Mrskb*`J{f$t>537`*BZXpsYgle3UqKU4NI z9#7*5GHl78a`gx*3K*r(RGm=->B6#mi5h-V08E3uK05VvNghqNg{$_)F2=e0Ia;jZ8A+Ik zDM<6aP?>BtXC$@IyJzvRgwTcW;llsfNE)wU%Gh*>K$7NOdm~Sg9Q{ zkA4I_C*%q%Kf6VZ@9O|{j6a-~3~Dg7nKU?yEi?t#_H|GZk8tTw)9v7B11e94im2G# z^kT_P=&HzrFsQd0=@^V}) z3ET8MKOl42HC>5Jv1|Vi?YR9ND8U_^w5Yuj25#XZG*6CLU&@!z zIH%Yct#)mf=?Nn4P@{j(TkP}XA(h-HKasKcq~06lC*r{;b>ApIV&$u<3qp`IlmnZ+ z+}m)Fd|0X}Y^3-822%e)boM&bc_*00Lbxzbx{cv93$f;th(cR)Zh<$_yyF%L2wY{& zSqi^V`<$i1?InBluA~-UM{V|4bAO#%p$~&6#1Lbp|o~q z_|oIkK*6f2v&xFDURoYqaHtYXS@0fK!TE&JFkQQ^q;{=3@YMR9hIN3@oLi(O@b-6v z<}Bs;{ex#>&+iL7*2sm_Nw%xJ6;5O1oh=@7hX?Z?zK#{2-?`h91kcF6mBR?*d1Z&7 z+yiown_i&VZZ!{N6YWfqlKGJ-z!Hjtg_UMbll>@~ z{-ltGX+>ahOfh_ZxjOULBwQ@Q~wJ-j`PTe z>ZMcQui0=Y@_Wol7eW$@%VBFZKA+OHNKX4)?}#o>^i^&Okd0N8>T`9*AV0AoX+GDX z7-YQ-$?&6w zAg9}qe4oo5gCy9H**=#i2Kk4f>s;(}rN$ud*^ujfuCy5B4T0EWCxgvdSZO8uTv~-G z&3@KS;Pkon#wzy<8{+o4I%1GU8#2Y`>W@KI*^sF|*NGTpsX&Gn<88PLBtz(T*ANt4 zg&I5k^{71kO;wlZZ<;z^e>2ns`Cg{RYHyYrt-skwQA+a3SO=Hyh3acz6FTfgJ45Z~i)zH^s(jV1L9^9s`dh4C(BJFTbNXAV{#$=Sh3dcb z_h$8w{@$W~q`ynmdi||YtMzx8`l0?VS9j>Ip_b_H8dagcYt>x7QiZK`%r;dZP+KYN zW!l*&&>ZcQO+#gAr{Fj$T|0$-poVMbqvDLNkQ^Qp=TYr^Qk>n|`II>Srk!%rS8r?Q zHgWFK&R4{_T|1k_`A6;CDbD}a&Rybs45zO0Uh(}{2gu{BGPUy^ajwzMPI3M~I}eHT zHtp;ZXN7hi7U%Wasl-{JogL!5OgoQ=GeOJLPRty{?^U;(SRvGsO9vc4mt6DeVM}bf}+eXSO(h zteum^X=>+%;#{MhQ^ffL?VKvk+q84KI4iVshB&X+&U|qeXy zEaBWl0)adFw^iE7#w_~mggbxTb@j)4kOx|g?zgiBbiY-(35sj7dt@s+vgm%>JE;5Z zrC-V}Ejqbg7^3^l>I3kbu=6b8WT@hZ0B6(+?WlxsRA$C?+6mWtMk!~8Cz}44enu=; zO?SwChrTy4Qef+QlVKSkeUL=!d%OL1Iw_D9F6_|^po3PrO4T6{dwS|Sn%=;abWgqf z5zPuaeLv6HVfE}g>0bc8Uiy}PA5yaL^hLxt{T^3%aTIQ!bqT)X>pJ9#JjHVU^F|_S zB$C{;$mKXW2ss+%R9lleQ&z;vVchkm?2@~lU}MDGD9>K8$KkVbcbAoM4UGv)3{X$( z$J%d0)gzKMSj?kzkj{%O9)cBJj3FP77%6i53l{lrx+&*aXhACEu$yjzNa?NiwXPUh z?c1>$g*;i_7dj$|R);9^0qm*v6{fBRVFupJJI)PoF2Ua5s`hml7@z~A-mxU7MUG)= zE=>2RB!yiT3wFEF7_=Z2O3YZ%7?h$ed_I1?UXA#G)h3!dc!QVAOEQn|*94A|QGX6k%lJE73D?|ion(kU~JGX@&@mt|0NStet2^C`%8H(C^)$= z@`SF1y1=ge12P+I$};1rcHKrDs@&KWn<+clYSJoO%a72HBX@n5{wvaEf)>T;zx|C> z$Jz?N7Bv>RyBn+e+X|04P^YLg#aCF2Fd-wnMgU6HM<9qyc<|a(sJ#P}Xu6J@QQ-;9 zX`VvLJypIP`i+RH!)w8>Col}Zv+n~aG4uOA(6k{pbe^;%p%S_KK1h0dkq~Ky{3|B_ zN|YulX+!b@L?!nCQ3?H-ny8ejiAuYyn;}u%nC+1)_jT_(sEJCuAu4^PiArgjsFXTD zRPw}#N^YB|q)ADdsN{yIe`UZ3o4L@IO zhB+rgojs7Idn={Ez}NU+e0|e)viQBGh1>dD%W;>5mWS~zpHS-KA}LC#(e^yULrv>ws(tig-Qe2r?6u(M*W6Vb_3NNb_OUZ4%Hrx-^=AK z)oPDSmU~6*;c~SZ&h5%p<+E#zL6>;yKmLm1cSY3`kJ(p$zxj!W4CaPwXyNWS7EBU9u(9;Qz4QG;uuGji~#2xG>A6L-fFl$H5iA>C@J5K;zq zDP_?u(n&E^E?sl!;tgcrcZ78}mf2mv9(go2MzJB)gCb-;Ng)`SrRS^_mWiG8h20N% zdg^!|yha9Xy9~5(otn~t9@Y^ReSiokL*C5UTA}!SbEH1#jv}>o&p1juPam0`3#etaW#gw z102A4dS1XmIC5cWNcWsNaB8f%MRtuWox9!nz6Gh?`+v*A=+^wlkISMcYD%;=$WpXC zdeds0J$!0x|7xF|C>XJ$TSO-88@tutJzP50UQf2JFe@m@d)Z-GPXU=2_N>QJi%cAu zyrU#dRcdI1beL#N4-*aDliQC*D0qjxz;g5?^tG;>-86hweq(q%aqEr^w-Z@<4MMNb z-Q1Qka!x_h28q#l#vDs$TVUr>e=K@B6ya_0F_jW>u-cMET*ej!{Q~(nBYQftFKLTJ z&)Y7)Ysc96TRY+v^xj`U980&(o?M&=!GAKLguef*OjXw+-*I#T;Zz?$WQ%R$zs4EL z=xzgS?O|qkgF?w*PxU^q7TDmjH=mY?=?Fir`=`Y}5`=bxfEI(`tz6DFl$YunNtCJ>$C7Hbq*_ruT);|{+8(UgB4o{hS)3eu(uf_Y2ko+y( zYiQ}wD=X(qyW@RddGFszw|1{43WI6aN)U-HvYkh#!ax__4rhW%T6$JvX?qUwE7W<= z6DuP#>^x(2|Mm%)Zw#xuVl291nj@L&3=*_EGMTcflh+3`OS2a{bH1?J1|C*6f1h%A z&Gu*1WC>37$$t_NLxO=$QB_jwM&lr_89%p^tJnG3YomKR*@|k;$NBoSLK3ej7g(+J zgr|Ayee68O}$G>ySeCG{7YmuH~4T#KQ~71z8-FZ4{C%W;Ehv9 zgT$|lyba+ToiE_CAIDo?w{(j08xdb!aKh%Crbt_NPx-5&s;6AN^AnPSDTfN=nPQlE zjmI6jJ0o%$4rjO^4RCuw278VJaVYavrz4bL-wNxGG&+aAUxE&X!_OZVp$QCi@#V5) zb0nmNg8lfxNIFB?dvJw<&q{bt=nxJ&MHBd-6@u19hG5SOXjn8+s3xSnMG zh2dFUOR9bCtG(Q%y<6)Z?ZJ{;msd#a)^;iF&gNm>t*=bq1{~`X8f59-X;GLRlNeZS z_cr{5%*_52?~g{{h-L?$xJY=o&9L+qOzWZG(5|vOQg>mjYo+tLJGl8!3xC#4IXjFZ zQzaRBrg9q>7Z;1_x+F_i-5Y$4XyzMkdsMnNYM(Ra3u|9Oq{r4~7g4CFi+tq2U?CKP zz{OaNYj?)SRw_X^gl@7k=<6Ih%-yqr-WirS!>N+l(t(7tX-BjbV4wByDz$XaNnujLvq%c?IA=8>%YdRF#BteMP7Cj;$~yb{?+le z|A{ClljFBr%<|aa>bz7KXE`9=kfmbJ;_mkd7S(?Lm#;r-;fT)e0|N=XFECb@1M<$=Q;R`%we*nWJ+Ofvl@V*`VunyjjNBUK!R9H{<_Ml7)PE|)~bW11BdFl>w z=Q7#-D_GHe9=Khv8kXJpUjaT18djuIDsAA@8j)jokCr_K_NWr{*BGRUHI*= zz=$DmYl95&Yb=KKqKYli`r6vkBPF&uL)u}jI?>yj|U+hA|@| z+B*RU%8xsU(c}K(t#yz-F+3hd0mOG&$ zUW_(KT4}~i9zh?jK-Uruf_#NIKe<5hcf5@7vHv8`~&h!5ew>P+i@OIs&lqh3ArKhpPeOlEmKKWdPiv;2HvB1*4EBxE610l%rdo!NaXPx}@9172*~AYM8R64W0oHvW?t%zDuxKRkn+f{ev6l2B>1^y`u8ozg=(iYBEARu&EmG6i8q&J?yM$+%SAMMN0CdRyJb z_}*4$VC<JG}J8|DR`?ZZ zwD6g(3@{6bI{vBR**B&1H|FT~$p`TIot**u#OCWQGy51OZ0*5(?7Eyk6~`&kyvuB?2KYJ%Cci0-Xa z(=EDS3sXhhmQ-AnU^`iNHqTLMaSCzCE$%EYEazzt!RBgqQ4eIQ7!FE6J^iw=Zj-h|`FljT+ z(*c@s-d52EroTHOZ{%KBaiHQ#Cm=a7NQoB)xLS`i&l|jq{;N=%xOu-UN@ukq#_v_A zpUT}GJ&DG|3iSYPtEZynBw8?VqSUrhYqiztJS%w~Y;DR%|LF|ox?;&ys0DW7s6j^8 z49RHbU`ChzyNuwr61`3p$}=P*$B>MUax;$As9T(!T-__VyC-GZb?Uv^S!XPf_uj&z zepe|^y$CiiMK!u(q->Mf5?P$vn-}O=cWHF4bIoYW+cbOH(Z&QT1q*ulAP4feGVLfF z?^RDo&%*P5ENZkB`2sy_->hbQBIC_D&XYLS47a?zDw-*Y5f87Tr1WkS z80WuF)m--=PZ`jv;L9%=FyYqcbN}ci%5=u$hK$b5_J1>=VpN> zd$;l|nSe@NEe9bj1X8O0z>#3fdRw(U+RVv$z9q(5^a-N9fY*FkGtt#Xxqn!6H6}~7 zg}T}v-v34rZN>NM)+IQM$<}%!a!EV|q6(y;26HMT)$&*>l8jQ-kR>2K*zzT(PR{lv z-BX#9OueCO{{6D$37fy@WfAht&f6VZo;j1k}!tsfgc9 z2hG-c=Tq6OucC)VajO%hvxm)-X=~4qN8@c8LWi)&YDjeIX7%x0^3^^wd$Xe`^6NMW zhWkC_AJttCO@;R@s<7k#5;eAIh-EU&fc=_Cm63}P#}|hT6MJ@Kyr@df=e)%NNHz2Y z>>xuL9<$a&-<_RFY#K8k+C%nqA*uwj+|FEnU13U4mH*tg}}`PZ_m%5#5-eI0AW-^QYC^BK_G3 z_rLDX3AKj^Y<%19QuMuDp3DGrB9xpdnY-8kOa z0^yPXY6yXxn1tL+_TgfQ1e4SpwsDw_cCck;w8a*yoieQ#+M*`FBoP?|Wh_?O#+K@d zhku(^3V~Ac|2}K&otz-vX5RPn&gb*aft}x8Yp?6Gp7pG?o^|6GP2b?rn@H-JW7jmL znA~Z?S&giou#XOd+u8imo*ClY2PDRDS&G^-Bg%vpT0{d-yk=;;USphB?$w|i5E%woG=N|mIpiH!#HgQh)Yypq zr&PygZx1mewk7o?m$UzGaOip_Xy_(Pd`l)|zD^TrWt^O{5K=)vRaom&9a0s_S59@3 z8xe?2dJa%)9O_fM*R&Q^*VLMh(`@%kNej9;=`cWUeNZcIn9D4J!q>T9iV0?E3wQlx zINcIcVEq~TbhJxp__{<15s1Z2cv15Qnhc$U%C1 zi$a5;IZO0EaXo_ctx`vMvNG8k;3bm$?%Qx_Z`j$N*~l6hy&C{mW8|&}x#gkToLaka z)VOZ5U$QxB+}iQn@?a(YB*>~7x#nTxPq^pdDt*sG>QCZAbELTCC6|}*%aUw+eSfXK z=wV`0z9rKO#^wz!Ndx=)7A9JY5`{x!cT=9mzQqfFp2Qm9aDx3JD|mu;$FajKxF#`c zVdk>s9K6g4!rg~OT5UdALo?IcfrOtM8@JNc5T*TL8R14K?K?4RrTq!s7{$wXl=dNI zYEplXtG@@;-(BkOZuNH$e?$AH^Cy8bW*E3&wp0wF!}&1^8Je1u!0ODTqg~~Nd zoXFqU4l)2%e|Pe?;fX)0zc28&4j&w1Ne#b8--dR7+A?(euYN+eFM(a8 z+ZQYA6(OS1?Tb)?HkIyOVs+}KUgmx zI$p$fO{2WVOKP-QUwwIkFG6z3RL5f&BxpycFP5TLm1G7Lh1{H)M}is^4Lb5wu<{-e ztP1H)71A8jS97k=oUB8rIagv1t~s~PT|bVmXny$H(H~mYOfCr|reJ|Ss^he@s3`FN zpwQcK3e^6$7}IWN$Hyy@nwm{flc;X!?nV7ygTGgCH*I3X_X*B-rL*t&XZfD*uKNKh z^l3%zy6*^-NWemWon;-s3cPGrr zC^5vg`^CdR_lv@wq1W+mHA-4(%C|(#Xs8$Kpt2Dqb_U-ss{a3jWHC27s{U+8)jyP0v}UgtT`LiZ^wHG?EfD6$7f(r2dKCSNIU4t4 zCtNdupwTg5Qi^_&LXM*Up9x5pmCccjSlF8W#K;fU6XIV6$hNBgfOUsb6$*o%+2^6O z-F1u6|In2{&9C)jLQ_eq)k62dJ@KtMOzNN~Yl>!3+Q(yCj&yZQ!-rDY?;=rTwL+=u zzd|&kt{){|MIYH4iJ2sNNOpMPp7jt!fUZjN2VtlMzz91y3@CDOMfT5`wLe-^U1b zdB+-TlsaCHcIHlS{wj6+a%GP?{%+y?t|BvEl<}i$yUN}5)A^hBm05u{yY-{3cu+*h1 zN8{JmVYKUD_lv^kRFUo%#V55-0&1)mAD^R%7xzjNzg0YbLK9!}iZnC#J8F2x(IwRI zV<;->0C`6ZFI4Opf{o6KlvIxz{x`N7{+m*^qK03CA5p^#V>)VhUPTSR5jU=dE%iq+ zCpFanC(v3iEei~7bgYmNT3xK`R6PIbI{0`;2hX+j3(i{?wEq2q(!U>4`u7XH`gch? z<*xPb7j#v2^zVbwzpLv8brzEkKg3FPTl@Z^q^mLTu~NMYSy9gRsNN-STJ^qx@v&09 zKZ;ebUJ9yL^)3b_JCy2OaRaJ%Nl~K@8IY#?1Eh}po43O?O7A{?ezzhXr%rJ6K+nt} zW6}O|Y9ru4JAVMf{8{zS4aG$0v2TF6h0Nl9DB^;R zLS({!N+7gQ#EMKm2JV`otjs&?llLv2i+XFh1KLN=l-v$$>;Z~$y0jO|Y)hSz?0&25m25lGy-`e@bgkw$I`3?we(k~~%bXAEALt+c6frliHK z!lq|RATjVQ?dO?bT=;3dOiNBvtcy%es-2t=ii6@CWar967TT-Rd2DrSuO=(hB4XLT z{g|Ld<;AKtTmR#cUAIDvg-Jq;#4QH~Tp}%;cOMVkXp{y_WeSf71mnlJhnFDvi}u zzpHJF`Bl!Ypsz{1s#Dup#VgS>b5N5R`W1`F7+G5?MTOK^t|qEoj@_Mc%a@yjYo~8z z;)Jcv*`e$gRrf(oUI_hg8Sl<<5a*_nm*3}Dzf)JK*Pcv`$a99A7rdxn$d#*V8-j45KemeaYE^7#MaxZc)>-aP2+|g4!g6lM% zX-to@nxA}T#mIMJ4zr;mn6-cN`y=SKZ-|{!`+EC~v7AGaB6qPJLf!v%I~w}>)F(RK zbvq~ltM%>nGl#_-c1^kOiOxX$%;a}A{-vW{zWEM5Sv+F-$Rja_c_rY{I?(jmw)T{< zZNyBtZ<7rUgL$IU%4mz>zPn?|Onn`*-YD+Qt>j|zwyJ(|wM)j)AWr74|0*@*E6O$3 zAslU7AC)Xe1z4?>vFs`6<8;G+l34EDv9k6{8n4GYcUN;W@nsOjI@CDrk+B?g@bPoX zRr{2jqh{0$>&jFp#8T{7p;U5PHFM;egx1F$FHx7054its7)|5YtmBPbQJZyG!rJ@H zlV~1dTf*UxGa&q!21prz5lOXz$$6YGRPXKhys^YZj7*SVOl z?O)sF4MYd;K;m*3mRh1vf147zqQLzBP~xs6wf`$|KTG1?C&i4!6-xcD#0~t9m$>=?pOmY9 ztvNg1ys_qNlKEoI*;($#rV?h&S>Hp6H68giXQSMY+=NAOzYZC3%q>pnAkW<@O!wC_ zdA%rHcOBYV_AMs4>!1jCOzi5A+u?Llu-?d3b}v`~VxF?;Do$9f8c@@bl+xgy&2{(C z1sC-F1J7HWarwe0f|kKKNp{ys8c4RgZVfLTKK|$kg1#LDAu0%9?e@A)n9=@O`U zCg^*fPm+SscJx3QF+k-} z!XgQjxciZ4d=$GnZsBv|%nL!^E?vI;iwAUEgPmQJH!x!KsG@ue%i=ht2rcf9&WNIX zyyGo;Y{mUMqWGpVxIG-B(`k0qblh5VHqQNsEX5E1Ko|0N$zJ${DLG#AhQ^uQ#A(N} zM|A!V5J+vtJbd|d^iS!%%1MR;eyE{0`ciH0P`&0xWjKDV_ep{1X$f< zWjv0SqyF^`(Pw@g1BdvwQ_e9lEN}7ckhigc;X0x2zne=~n=kBQqpSPTTX_FjO%iAH zeYBEA7IgzLZ;1a{`>mXC|7+}~Z10lh3oK}OJ{WkRww;X* zhp=ALmbhDLS&Y=~f+>dO%xzC#^yYi0o}Acmx! z;nFYL;eaX2ITmfoF!P1tSdQz+I+h#sJsPau7OdXEg0E$bf&Gn>(l{vxR^V(ARiU<9 z8Hl|GmXW%D!~l3l%-r+IbI&vQ&Dc@Ji6SYKp|2r0_q=Fb3c90fOSea}M|(ki_oi2@ zj9pgsHp}-Yn^IF2=$Nqoh81|+$~wNeCAtY}S04>#?PAr$L&^1Tt)C!+>t8f~G{S0& zX_B*S_r{16p_?D`mRcFf9qS24Vz}gN7dirbZ8{)-iqyB5PTn`>>lcooL|ZkV0N%%{W>k2Sdc=9zYfdYzQ1HR67J8-J3_9k=M`H}_?07=Kh0?? znBt@1+0Rm0mf0ekV~rZQ;QU~CDq+8q5O|7!7}OsN`dWe+2MU6LLt!r*fUi$@Av8iF z3M=q}tT?)Ys?SK${c;ADEmq(FH!OrFOzdXdxsS&0?Z(`w@JN-MS0(1+Xbvv7KXH2m zPKsTa-@ezXu1WB1EeOtzxAqkT-NB{N!FBz5mY9BfjBa<0B~hM5JkRs|is#O(C{Hub zFL|bCM|no@Y~nF_=J2Sc9eq`B?w7OJ<%E`XxJnhG_&Z8sWY4shJr8MrB1D+Wp zJ6nB6#nkFMcJSa|?+Rwsz|KqMFra=dv!cg`UHtW;&VpM4Q&}Wc-%9qTRL8mNC757XStG$j^j*JNd>Kc6d!aPeg@PO1QS>Qo4hx` zt&ZlPXR%5N^e@cs;*9v&1+~>RhI#pPELqRWEK5>hiF_D{^U)ZuFElYW&TrLNYdIruC%R(V$DKIE~^a&nwqQk#MHJf306O@Wavrc zQI8CLGnlchM~3c4)MHjMv_)j7Dp$+*5mJd7w#hJV_3aofczs|8?OIH0u==U_?w8Tw z>|)K86`-Ef1#`H1_f(K;6{=rw*DfQnpNfxyDH%`EBDrhRL>wkpZ*@O1O}{-a@-)=p z6B8|nclH@yNQuen7XnuxU^yAsmZcwcj2B0>)lV6LA+sH6inAVR`jVEWr&h4-i7cb9;H68B$V_txnG`)p49!LE^Fp_gll8sDSqF(duq6}tQ)pd1Qom>_scO36ilDFwdY105-6Jd+w z{lk%P!k@Y`c1f9`DG782-jqd{P4$x6drfzN)l!hK7xC6<1yJ82?mAUB7deXL{Xj`x z4#3xv_s_QEJsr$ZuOfNRv2s!5!)au-NZyQdvu(+HPD$R=ObsZ>`)BBCi`}j&@%iV3 z>K#PfE*c!)Z{g@*#s@HUL9qIx@byZ%?zmXGhD2hrikZ8a;eD(6aa2Q6flr@@`Wd^! z{qQeU!xwr@)a8g;c2c_^{uelF1{^@u5^d5ix%BHStgMfd7ly9h^P1{BprGv<`DV~p z7sFv@T`ILuxgfbscNr{S9p|5Ich^o7R#kj1J$K%0K9`;Z%S}I<&o5JsngYY9498%b zO+>*>i`7SsK)>4R!-n}HtwILd7HA%qanN!TU54s*Zpdz&wlwJ58mxZa{W6lHzxzjr ztr;-(_Qq+RBnv5T#MRJG+yTu0^Ixx?Y-sO$<*x3bZO>& zJDDE;2VvlV&A{-S`!PAvj@7xroNXL}KTeqV?N2aq%zKJUp=ZLM;LCtwUwUENtgLNZ z{Yp3w-CMv3#I~q!TX(sf-cN&mPS^_JD{=UQpV(}s-fi}B*Nc8qSj=wRVX@}GMitI% z80TDgBTIoJs>qX4KkVAE6QWwx4X1sb^h;)2Ij5`^>kaCM)QK>?kz)x*j{KoJW2cmU zR%hTBbVraVT~aAn0Y$06fYyN&RvyFBoy5~I4NKLdaQHgVr5OCr7c=#qUZxHPgrng| z#njg*rrvW&ratW(8f9fXYWa4vNr`Hd^NpI$0cpef z_I55p;0U&G!r=vYB>>XgKd3|e1Q!z8LZfytshjgy#JO865N)&VY9l$0hM<`M?qelA}~oJ?g-eiN>5tGb3s z9qWzcy?O#jrV#31XB|k!ZZj&)^0i6zIETZos;IP>z(J0V$=YqbNqC_V!K|iWR(s>% zyAlo)dZX)hQk~Fj!4|$yb7&}J%?WcAD}&s0(oHU?j0s2=TH=m7MdFja>g`)*bkkZ) zyKSQ{JfLRElt5fdRMMQ}H>*D8am^^`?sp-I?)lAaH61Yx=`rqCUvIcCit|oVdU|ia zx=#1rYNjLwV#Viao`bN%=azi`q>g9?ofF^F$IMSdGoUZ+W*5=vW{(-Wy9Potz4)4} zQISihqZ3+BH@nQ(frd*gqUDV)4cBJM8w-A3mDML_n$>ki(FrZqk)IoMI7Ys0j!1sT z9FqJCGa>oyz!d|Hl?+T12O22=9=!|!i76&`0WYWdo%f$?cbI z9FaFLMZGJveB!s?t!8aGH#)w)Gm48tJj-{wn9YAZZfBf;Yo|vbdZ$+)in~SnZGK(S zwm6&7-OmlSmss!U+>yi^5h`Shn9r#daET=Ka@>=FaD2j>Vew1uHh&;CW@7T0z#s`N z%1~b*5z^ylLWKIgIvy88r$pY`Nax~^=ZG=<=#9;3^soxY!w@HjwBHdixa7ZVrb{#S&d@6^QC z*$epUik6n|DFL5TjWN`%lILI~ZTm6#pUTZexxr4PMtCJ|nh>~q2hB>QcWt?4b4 z)yY;gFHRXPrGD?&edaaen>LB#vHO%`k{?#ZV8rNRFruy2k=1c$4v%D~GzS#by=WM$ z8yUq&DwBIzLYt?^Di-pQ$e`d0=HpqR%cZjNn##&AE|HaAd|FmiM!r}+niCF9YXzyKtvie^(;W-^6aWvK!jR?x3<8 z9%=X8QJB!a3@!}yhK>L4da8MaCTx>i(ww>_Ke6W=i0sd2O+4nL2$+44!V4 zOMMbUaZLF4Ppc5Fm4g|$8h62z=@OGUo3OiYlUE1>oia|+Br#06g*1%qKEmIt8#9hC zES4R^3pvQOJ1c};ztcW$=SpC8)aEx0!)t_-o|c>u?kK{;!L^+IAQzro`LyH?dk%#X z``B#xfImBRVkf6CwRZJ3cyb!+vD&|;xVbEvSf{BI3T021Xen63U>{T%E9@wmL+KHpp3PMx z_o{8-lZbt^ghkr%ZzxM{DNz@cG|nb_-)_*^n;oaNLvmRgz1`!a=4$z@vm*hT*K4!f zRZ`oU60WrZC#;-fR&_g3jFTMf)Bb+jg6mp$w{>RhB$e9c3;ks17mLD} ztI&&6Snc@%ntR#2%uY$T#~;*3FxJNIr}({nGS^mhWkKroB%|4q(d^!gDu2OA z9BRFSjJ~(5C!^bWwKK{VVcp0?Y)P$cPPBKW#x%o$`gR;#Eqr>~L=;V37dTEhhwZqw zu{&Vzm%oM+0J$tsmM+FE#AA(?c)z9h7H3cT$)R+K97?yOkb<`6bI9=N=7$5rLU;Bg zPWCbH7L`HAO;niE%_-)OCcyMQ}?)6Xb9^srT8TJO7PWXY+Nnl^tgd z8p{+zV&lx{U_UEus0@zN&?r81)xt$fLm7BPHE10R&#rylOU&T_D|pRoI9kx;ST1yb zY&28#;NrbwoEAK|IC}BorJ)=S6&|^lm5;JZeFC|F3kq1%c>}~^5O$uezs1p+OIv-3 z(ZZX*WdFCYqr{q=lgKhfhfd)b_sh+k5@AzVHk2=AnGlMz!J!X1gTr1}d@Hq#=G=E0 zBAHXNLz|lAa`~>%7z#2ww7)=BTz{X*BvQnIPqBm$zM}S_;RaWJuN@v@C3tsj!EpA} z7bGHkrG9WhZ>NaUM`rR#9SSX5t>tzUwbgoPsJJ)s7mzYmYv^g5?jr$mKnLN3PiBWU zuY~X-`RFerla}|{ON~r5!mR|#_UY`={!=U9cQYjVfS zctl7y{0rzD<@gW0t5!o)N}o8&F~-HBSF>_yDE%z4u(#I2l}j}&r&D97%43#>KKd)4 z;Oi8{*R0`GSIDq)F>pf8YY6#B0Bdb4d(zQY+{q3V7WrQ%eN~FC3HPiUwd*g)vndo zMwihz?HgRPl%;14ITx4;GY1574!8KaJ?w+=9hN4pA&1=$?U|t$uT-ZYxa(tNLOx@# zQc%>l1ummAnbO|~#7^K>!rt}j^UR{1?s6ece?bt12;RzbxPlh)GHXjiGIK{$?MchE#v0k|IbhFp& zFNU~qyogoxfvzQ|&B%U*>ck++=eh$ULwRTrfrFhJH`2=?!3l<&J2$`kbX;-|w_@YyMh8J076;s5ryb3EhF2 zpX1r;%nsFwcRIP;`7X8obl`>1H?V3ogjnJ4%SEgG;Ng_;02u`dJCpSj-FJjWb+P*+ zOZrysngcAIZpiBHX%*~rHY|yAeM%BW)oj^Iof(zh;QO1q{+qz%YE0)~Olg5jNj{HloG)A$cQ#lB(gP3VxD0 zeHBu3w0etUbe{r+q7&#^4z`+=?R2p+Q<;C`5Sg1W0XJZZ)+Rtq3^e=mjV6o%G_sk%j1*2t1mv~G zyccajeF<)48A3kD?Q$q=zV6|bTiMnQs=W~Fu8YRhA>I9jD&IfaDIDiX*z2zQJ)vk~ zd<#pb`6dZM*O*4%Ng?XbNT#NoyN>QQWIBoP(dUA)f3ATrHlO|D&tKDdiRw5m7Vx@Q zU*K=xDgrqJe=QGvg@b97Sm=0}3EFLBzIp2Rqoc_ zPR`tq+(2d0`T5QF?fjU-bY2c&;p8Q-u;WdtC_cGW_JZ|sx|x_BnBK}5lc>W3i(?qc zoRq|~3g2oT+rr|IlQAul?aBWn!3x8;>tr7nbNw-$$%i(*YhA@WsI&9l(kHfWNxf{; z1mA^Go0533?m+pTF}UZ5;pPrc)BF9c!K(G$k~)E-qvG2d=1mxdqscjc3tTT!fA}S9 z&b&C67gx+uXtC0w#7edF7}xjIVq3g?V2hXH7!fXPbn%25sI&+d5ls`EBak0PYjMfA z)QK&3gyw&Ygy?vZz5y9M(0tZDV!%plRF_P+n2+yx{~RYF$S?FWrU_(PT>Uuxhf@{g zl3lJX8GL3R3F5B zex5(;-nCru$pxy+QFeGdY%0ynJjbd?TVa^ zeS=`Oh*MEyFE&+1ALz`uU*gT` zO zy6i(^Eu#*2f(lrUJL>oopQSRt4epF~*S`Tyspck~(7SWF^<;AREdm-9-E_FC!FL5a z_+$$d>YWz3zr=j6_5+R|V>xAKIN!EvJMssFK~+q#YejZw;_c+a#}!*#%Nu%y@bpcs zp@-C~^u0UQ5?^tYoQFb}F!a6eO07NxIUVLs9R{U3gG+{ullf(xHQs35Pm@6o@05mW z%aW^Oxh=%p2>I7HcqVo?W-{aEQgoPKQ+);fkrOScLu2F3du-b+sY6Fki#PAa!|aCW znGtTIilcFzi}TU(9QL3C!TF6i=cFHVXmL!0huq@$pOYm51IHvLY%N$?(RuLyRUp+Is{Fe zsbu#wmd`;D)V{%Lp3aWlw2550+L(x(JQ<#hZ`&tlClwp)>!Xh#VeC|4piL6>YsN`A z1%$I)jO0V^N1hX_tWz;(tx4*-nk}i2Qs|c(tq03?z-PmE>oM$0S*1qW_PGrT;GXwX26Cw z&W@^?93L3S(nRKj8~SxThs%aRR##ehy`sfzbvX%#2D?#`crQg6bD^cgp*WHjhEH->O=jR26;Z9s#hAR@CTz$g* zFhis6@ZB(@bb2VvVNb)1S;CCkvH1=z8wRC?k6>%Rwm5-P$~#j6af#8y;R?rY=}*8y zqYGoZAZ3)hJ{IzbR_|}*cK()rbxrI0rFHxW1LqjYF2>z8EO4en!en>tIoGDklRvH; zG=C-s>e*k+4)zUUbiZ07E+K&@RE(ZcZwBr7fc7wj{;ezK&*A%o8FVWs+?Q_Nv87*{ za9DC-7 z4EPeWm!fIZS4*gK{7{iIc`a?T%xggs)`{E|alCc&EfzcVx!O-7(yrAuf^+RJMfKi0sspnt4NA(RLBlet4lH zpW=ttFNfEQ`eRhMOQR*=L8OqQ3UJUNUA}_gAjw2)bcZMrR5iemSsdNSMQN9)2!ou8;I5bI zBbC8j_cU*W-KRn+33xSKQ&$le3sc+o3EM(WYuh zyZhm5q=uA8{kcpLI3iF^`lH^U`i%>{PdANZ=z1eDo39ao&LKxdsk&pEo^{gDxB3hy zuvo{V(x|IYM=LC)vs@gzg7deo3YAe^ZLR7pyatmxen%ImwyV@#|28iZ-|KispecNH z$SvO|ho<%V`1(YgiW1hD1FJnbob`qrrnY;23fd~>h|UME2rhO77spM>N_2l+uF7P+ zf0jquSoYy%onrecOM#lz3I>+6(UMz-tm-b-F?7m;1`b?KI4cVW4#m6`b6OS-bOt#u z>;x+d&IYSoF?)kwi{l^^pGOuAB>PV2&51EE;B{6D2cK6&u{4x>oTK!IDp_mDNt0iT zv$8^L2TdG8LXr=$rr-b$*aC33ix$Opz)mJBaEf@VPsW_C^>-REoZdtNNCmwP;=h6v z5S05>BN*^7c&9aOOpKNg52)n~&U)X@U;?3zB0+DFAl&w*33UKzdduw335;EmEMHu8Zph7K1HJbI+f?UtFD^vsK63aK|Kg^6gtv`*@~qJ);?L6bxcIDo5t z`rerL8p<;iMJEBfd-fedpcmCp3+fy5s=oF)x8*&E?^>@Bz9&0$$L~cBqExeIL-cKV z?B!lUa5SjlL7|$SxU?eFncz?wzlhuMz7Zm*eW7c03g`Ct3O$~rI6hRv`3BNES2trW z4Q=>PqGkl1`Lv8BYP+KX15Ve}5igT?wcXKy;ipqlqs$@2(V_V`Eso;oN1ymvp4?&% zUmBVs?>0eclI-@G9&_}>(@R57FaTO^y(zN{XJh5gKs{n)o~L~7e{6D z#w9mhq5Gah2pwR?a%408BV>_ea(Qty4nisNtqnVdq}a}4!hmD_#{TJ=z3`E{f#n#+ zCebq2y~bOi=(UQ`Rwkm-A*V;_Poc#lv%^9k-PO~j{SB{{oTMQN%|c<@r6HO0Wo-t^ zs`GS#H(s_WZu12Rt+M}a0hxuDapBU?{J*1cv?k=rC&!9=m6Y`(H?={gYr}g(^9a6n za%>uaiekJbE&v|vOI1lz4 znbTGKS6cqRP~#;YG(4fDp=19T8IRmG!s=xKJs*Tx`O47u3CEs4_!F#IJY-qUzNg19 zHORrjTw94tb%3p^OnPc=sXaxyW!@bw&K4OBsnJHqZAra@VT$|J!$_hd=d>PZ`E)4= za}KH*^guTQD1b%+XnrzlUax5&2>VL7EvdJT8nrnwssRj7y2Q7K6Qjewt$BZw_z7R( zIMCNya#hi&8X4tM{!CR#q&fS}{PLQ&SnbfnDzk@;6tQ7MPJTGegAr)L>t=?Uc1V1A z#!v2f$=f)`*m7h1i7oxjuf#W*BWqitYFneGepuOW>hIP?M}IK2mA8GowM=cNVs=CY zj!b-gYP&h$r<7iIW%QYME$+O{eSP1-?$HM+!tT+h_CF(=p_47qpI`&-Y{UeYku-%}p{rpHATQ75Q{bKD`(D=_H@NBcF`uXirBIpKQH@ z15bNJs+^4bsURxWBo3eC@Z@Lq5dLjq*Enxf|4_Ddp*x$mgwQnJl+`SGNpoc?+Z!F* z@ya$%+j<<^t9Z!{ZT#p0mB_V%6ES_}%<~PNojgC| zY2gXs?j#sJDB8H3=SH4MJo~YKf#;ujw(zXyDdbtklg2Zd=SH5>Jke||J5Cr&JoqEM zM|n>0oa5<--B6xUJX3kncrM3%F}RWEF`gYfyLk5VwDbI#=R8jw%g+b%jN-YSXFg8> z&sv^3p6xvU%Cn#6*F0T3mvd&=IG%K#0-ncszRB|go>zGe@Eqg$fTxqkMfyEF^4pOR zZTyy}pU@PP-&FE&GtY3Ic%IYH<^)eV?>`0~=c(hV;JJ@yKF<=qt>UTRc?+}i^Ll8_ z`IpQyn`g0@>|cAp@C^C6;bFD0XW5Zn`)Qa1^--QTBJ9LV(&_8g|G4t4%XTj^nil+U zVbt2Wb!ZlnN{h}GmFa0yyXSnw1QRM{5&&nd`WqEg|{HDsKlRt zJ#OOf9i4PrAZJclLHSg1v^1~COe?QU#p#%vyyLx#{AQrCtjarPPHCw>zbMZv*>ID0 z$)YS@uU}tfWqIWn_nbCk-eR8<@2C6qOQ_y4N$W>1yQwD?+AmQ%{y#O{_m`WJ-RYzA zy=5~unEt9Im3d`VRntcYygi}W*^uD=9|_M%T_2jx_M6#rQx}_gW}s@!=z!3)Qqk0l zb?)LNGnV9L&A)s8C(?kw1?$TEm6=8Pwl{22{c9y8Z<;EEnijaUu}Letc%0>ygX;jS-kjC@qeDbv_(E)y-%e3 zQ~Zq%T-xo-fN7SO%@35W@>hhjWx62Ixsk4T@*-=7_Tu8rPxMP{K_v%PSAPZ};6hFwn=lh_jf0$nJY zul)I5?Y%FJK066jfz_-1RaFInl1tDlJ+Cak#6J`HlJ8$Xrbzx$uP#Y1JFT$lr+d=O z>s?GOs7Nis>8z5xsw${jHRdKK%}ett%gEYP@0SS4R~9I>%f=Cegm@8I*Gu8>v-$N) zq}MF>=9QF`uZ9!61%a~FB3Yf3Q@uoD{+Gh-rNc#uPxYHrb8>L+gq;6cdQ}79Pov(B z8C`W#WWKfB{7mBd))$%H1$TSL=#uo3e>;$i>$;O}_yQ)$A2Tzr%CC6k6I{|m_n!Da z&#%L6$=+;#S$=utoc!sd*C%^3E6ei(t4-UK?XRq&G<0?5dv7^>;dpdA2g`X!N7mm< z`(Na*D6b@PTQK)ZjnB#7MgAcF#n~@XB%6Mxor*6Vp2+K-SO~ng80;`V!S{Vq(BoB$ z!};aj(mZpusJ%YL-~7B%|KbX|97-~NR?XJ+P?e1^;+F|8vgVcgOUo-acnjzoWG>Fk zP4#8ZndQr!Gk=M1QQ8dNQhiHi%$b*)I%CNUiRMei^Z7L~LPV33OV@+GB+=x}%rgt8 zkFM%X&qaLI*UuvV1A(GSSq`q_QRG2ZTMT(XbdhYlBc`!ap&|86*+)~6=> z(i2u<=TpZh4xN*|5#am4ExabvjhKh+V=SKe~Iynrf-ke z|0aFER5+hX-^wpQ-!Dzq&kOX^=o;bg%hEN%>wk-`UosqruA{5?mo!mH?OF66r5m-# ze?J2-f2Ha@`quZ1#go-f-c?|8cw(rc1l{?yS`G99G#1AZE2I#%nv75bwWeL)_h#6o|i*DOSX zkl&NONPR+nptN*@<5dq}M4ezTY%!Me+{3d-nFPf~P;6OvWy~{fwQ&NNX)G|Zm5uW* zw$A&+i1$hAUH&X4%*DnM!)Ig|_ZhQ{fKkamzfoqGn93Daf+e`}V|SlX1y=U7XI0p& zW&XU}*uYz+k;k_@qg1&Sck(^5{gXK75NZ)&$!|0+MjJ`S1Y*8VnUu9LlQhjIPWfFz z_GOk=70JNiv*lK=-##+w^F4oB{qe8uP}f^D1ts@|)9^ z+(|7e_m-41P~XmE?2YAy=jfA$XBE6^578hob5DG`+x|A`TTf?Z4bLc^$Zz-i(ajXCHUed9%F5T3>86wn7utS)g8R&i{1lZ}nN+A! zp^NkG)mAvVzp3m^Pt^vb2EOqk1C<^c6qT*bD=DH|qwOnf9+PNfxxX>= zxhRipLm3AS1}B5%U^@5%@ILS{8@Xakx&N4DpC<8KIF{<=jXS@4Pm-au*HhVz{ zA8TVJ{;sv{udwZ}B_k&GDPRLQ1KbAQ1?~cG0}q44z)sKyx_%ht$pD9fY2Y~U4lo70 z4qOQ?1WUk4U=27J+y>qV?f}!l-QXDTAUGLp2N!^y;7riCxcVL zbZ`!MA9y=h0!{}vg2~|H;1uwAa30tMP6Q8vWMBOX_2$Xst z^)v3rQL@{>@PZG6lfg&9Ot2m-1Z56i>cQ7R6Z0cr9Vqo?J2(n_0Zag;{@nl`#k>g& zfkDvt3EQ^-54Z*Nf>(j#z@ebjuMyxp%$4AMU>&#-Yyckx0rji!SC$r4iMGd^?=LG- z%2uVAR!Z$EqpVy;cZGZuoj2>{P=3kixmQ|3XFb|uTwUp}Di2hm8($Tu+JH>%5yM74 z1Mtq&8-tjDR>B$;{l=M}-+t1HW^s_c|_ zONz>*9+g8hJrT4zuWYrSnIFoM2DCJwB5Oq6k@Jg zU0GBC>HGLuWz#7loJxNINg^+O?C2nn9Ll%~MZU^)u9LP(TdyMDB|h8UD5PD^4V00p z)rB_cdui4;neYG|_sT$p6q?Nsxsm+fWX?{LBu{9aE3{S_tjbliMxRracfUVZR6LR% zhfj0GvFh1S{(f^^dF7g1dgmgxddyHvWzzW`ne?*q+*N^s0)J($VoP{Ph-{XxE-xWs zp}*p*+{pB)vdpc5{WR@*_~oKv>N{#)7v50Sf@;*mi(+S&nX#&}e2u@%TTw(ldwI{B_emb5JF0lyOBQ;0J;Ki=cvyte zCwSQF&?=IL{pOeWpnVZF+$<_6Vw6{jN_DL; zYEemv|NguZr6uuJQCa**3vpYPS3&A4Dw+QEdy$f4K+Syh6s)+h`=EZm6s>_yF)vc^ z*|bwCP5Ex~F7)ri+dY|gzDFh-8L4?&i(GiyySlKbB;Ogjs&J8`BK7#@L>b8{5%y9K z#HXqo2tcQ9I6ZQTLA4DRw<%uQ4M%dQFjRX(Kr*x@OtVkMwYj%$+2)>cfS4osR?Lxt zvxmfeS*W*8dBum4+@{E+UiW=N>a|yO(CgGe$PWwTBarEzImA%o!w7TVplE}r4CQ5_ zJ4Ir9onZ;~c55oZsn$%#Rla(4K-zV_2TG`Qy5=z-4|7(b#Ph2>(B8s^m9_x3heaYr zln^of>rEYZ;Oq=|4F?>63Y5|3SKvJ-@i~oLtM;RK}-S&RB8%YQN2H z#&Etb{g&bJudgsF%GVj9z2Uhvi4dxa%A}i&jHyy+=4o>tAH+V74+{C<-~?W(9;j4p zpg0pJ@_DttNV?KS0qZ}cEDG{gDZi!V`O=j)N|?NpK4I=^{UNt-Lq$2E6yQL<7gXBc zHzXOk8*b$(GiayoUnPFZD4e_k8b-tLk4;LFw3nhES&eo@bTWS9t42PW7)ija@=DR2 zXWG@p=z4)Z_lxxBd4}^8qlFo7%ta$(7!R_hc0Agg`Mj?otntR(=#U)yCB{vj10l%>n{$ElUFw!cEjKz7Te9O99qw=D2d=={4*4M3dKRHsd5>AAE7FCN#=dqlpn&`` zZOi~~fnNFi-C)NrCiyqc@bXpv^Y++?EA2AfNH?aErc(Y^@lSrDK^<>oK{x%2ijHx` z_Uj)vAU+{+;2^i>vdga+eC3dn&H=8H^O`U4I@X5zVRz#Zn}Bwxba`TCF#}) z6DQqv`yG>~Oii9P{m#2mX3U(G>PwrQK4=~VC}l~8y@`H#_ESQ8LL-U8Cgrx#!n_Wg16qTb>CU@ z=geA=>NCca1xiX#0*oQuQt~AR27Zj2`xyvlj}g<)=ojsA`Fy@u`Q4VJWQ#GzJ2`V% z|2X50q@<;p{Sn;WIPn*^vT!9o2HzFy`NiRao&9lfKpg+XXtduR?Mb>L+B2`+@Z=-E z{{}kxM}LHDm+)dy7bM6FKXeIAF8ykJGvd9GcNIC`9*cPYyNLI#5$}H=@&1j7_kW0Z ze<8Xz%oiix6N!Vc3~8$d@T^h%D0Q{On20vJS5i|KN~&haiWi*8ds?O6FUV|FwzQD) zzSw!6Q-)p}E#!m#S(Uu4&MR50hkL&D_B?}cEj>=(dW5!~6khB{pIca7=~s3Hv_#D| zFnhIn&1^(x9wRNk?N)!PC@(KrLWe-=PmlWuOM6Y!MUH2o5?)1^RmQB6@+$vDUnOrk zJ-r_!9I@{chi!RL7|J%SBv4gow`fbry?>?}fvE~5M4MN%s**NgX`#Q&NsK*ZX&4Z5 zR-m#H(%1o%SL$Uf#Lu^R<@XCMd%nq(uk`fQIL@Y{-HDk;=Vqy-In`f~M?WjIq$Jf= zVifsRT4W)>Vx>c#$1)~{{Zck8TFa~SFIK8!%rX^8k1S2aqRrZ|#H`Iy1d-pfs{EC9 zoZ9Jp^esZaIaTmUQGOrGd9yO|Dtcn;lYh#H5%HXSNyCz&)oW&z2g=ObCn+~+bTlLK zK68U!l%!Zk^86{^rH9bx*VNs8+up+Kzw=A?>vHP0{5tQ7b5Xx}3|FFl^au5AQ?%p$ zPIe&4?~kI|;^)y|Y-`dl+fp=k+TXP)8mM_y>nGbmsdJNG(|W2~E$d`N-62YsV6aM6$@Esr00+p-QyHJH&L7cJzMN%N4dsWMP zKQ3gpPUicnB0_e;o$_A@S3;BZE;4Ue))TtqU*;}_9=Gy1^vI*_*0~)+o8zT-kVi_q zszsNOyreo$wMdb9cfz^7C!8;yZ<9ErKb;3Hr9GFj$g}hAgnLI%xYF128|x_(>FG%C zLwuF0R#M8aZ)j3Zt7#3qxRaSw$(hc1WO?0c^p@A9!!N{t9&vtNIKAZ~;Rr2D@aZL0 z<@_yIsn#@AnO)H_wEsCx}IWb9!oYY+^zT0}@ ztAMgnI$oQHOw3aL!ncw~DT5*vQ!i)qhN#PL0$e6`Qs2IK`lX+VHj=Qt{MB>RMJnzh z#!$M(N)CHtbNG3J(aSGiJU-!-b^pcq`tpxMS*P4TnR=n8!&6TBHLWH_)WuoU&m|Ew zyHq%rl0Orv(GI<5Kt&{NM*<0L3yDwXT}B>yj3eVGk!zB3NsZ7$ zWP{Y3wJL<(u;jbc&r9+7{~Pr7k{jU)ooXp>sdZjeGSY|EX?OTSctKjk66L0xocGpw zCuf>V96F6xbSkB+Wo)Ts^%!K)YD|@?efgvm>7}P|&?hM+a?`|jfKWuP3P0(;y*^V3 zzl74tBi=H2_2N3#D^KOS&|g9oDhT&V>#I4vS6<2p_kI=Hc;!M`owbB7W$M)T-WEHR zk$DEA^*M~pFV$uU7tJ?jU-H`$_-g@tw)hfXoqR~{C6z_0J&%mRYxhI?e)o}1-TGZm zy^UwAD5m@QE31R15)<>vlv1RvroHq=yec-d&-hu#-#b+tUxlt;*ZugR*WT1WNz46O{gI7kD{n z{6hC%iC;6I=;qgN2}sa4Nui!1bUEylOxhgfxIrFu_ z;4aMlz&&7punmj@kAefh^}FE*upM(EcoG~4c7cOH*Sqio=mCY{hJ%;McXYd#i#_pN z0gl0bFgOXk5=;Syfb+ni;4*L+m=9hJR)E)l8^PgV19&a?ICvfS6gUEW9`u5{!Rx{O z;0@qma3pvf90i8J(cmfYM$q^r`~W6`H-SUJo54}wSTG432TlXWgG<0$z?I+xumqe0 zt_N=e>%iN=t>7Ktc5pJd6XYNZ;{|Xk*aRkn2f;hRW8huj2`~lh1UcQ@I1kPOkg?g8%s z4}yO1IJgEp36_B8!OdXYarg@XG8lA$qQ@5nnHTc_a2yy9P6ioS8>yfOoJ{Zv@IG)b zSO^XQP4H^42D}#B295)FfXUz<@J_G|oCO{Q*MKL%C$HhL0`YHC{^I{L~7W+xmPq7CNi#>Q;>?cDnF@vYXJk22C zn88FaDg}Cp85|{;Y8Xj^>7-L|9_bX!q@IGVjnq@{YOn$nSvZp*MTV0^V?A~cfYN3H zMjhs3;8yUL;CArez@6Yz;0qx7SfdGi6Fdn1CwL5e3p@cn3wDA(1>-NSl<3`P<-q;2N+7duiiL%&Womq*vPd8qAQucodX1U)#W! z#h&k?bJ~U3C-#_K;2zA<*0h0-fYJw$KEYAUkWlpnq;JrU`8(iA@bAGcP}(NfZ=*av z0X^VzptLd4whhN@fzpTQ501kuZP;$iao}Xk-vv{_{{S<==fV5H*TF*Y8=wjP46FhF z9efmg0o(?@1MUD1gS)`H!98FT*ap50N}pu_cog#yupRsrcoO^t*aaQ{UB8R+ya;;0 zW^g!o6dVKY04ISz1XIA@fb+nA0GEO7U_SVBumU^;ZUo;48^HI#$H8BNPl4}(&x0+X z^g%{~yD>`}Eqx2=d+f(t0!m**`Y4An7s_|?6AvE8JP(w3c}uM*2W2 zF`M9I%!nSN1oMx;^`P`Uq)#{yti!wj+>N_2;8x7VUvVy0yq@&2Jk7|j|N9!z8~C%c@&t0xd5C7J_a7fek_=dxfEOi)`BYu zZ@M7nuY;MGlfe?qbzm3%lEC$t{|T%E*MVEX0Jt5@0^@LZIk*$^H^CRcC14ZykD!O| zSAYjGH-ck`=XUTI=7+$cd>;&+z?=K>J`94r&`|m*4hf$ur;BfF2a1!`Ea31(1n2En@ zzwc_X-2vvTfeby+_%wX&*QcO^CFR0xWFj|$LXdL7xdNYl}?S>lhYBZHu)_=%P z)_cgW%nnyZ)bbNum`3eh#^LglalZUSLoUB6LeThtjlz}iB`!2-ccN>OUlBQyU%>V! zS`7JB_2f&(SAs4>exlitUxA%o(Mij%5FM8M@}Qjj{C2uZ?Qrw(A-^@YKhe0!PxN8( zlXWxlTVuOlV~1CTK0$r~J6zFK%1>rTfMxB1qMaZwThc5biscp|{BlTVA zEflLFKB0){D0NOXZ;Yq>XJ9Yt7vouNF-N^us&}y${uqz#JoO&nJ)PAEnoq=DxKQ+d^1g(3;g9iXh{Syv zsgw5wybGUp;di0i#d#6_cgk*+O23X*>VuO8sT0n-)QjGC&0~^IsUMDg zsp1(Y{Zfwly(+@5)Eh~^_+72iJe!h~`X~IR>w>OJj&I42)F~-t$+c6rBorxK0}j)< zoT;cNd@MB5bT3sjov&ylGFn1isKSsu%u@U(GFQq&(jjtJLY6jLWUla;&{5YJ?OxXz zZC|GRI(0^9nrWArPH`qSkvyd9fUdWZd^StvQOgot-nyRX@}8;a62E@blmgo_=Mg%4juPwyKV~2G>x@9nQ5n^l%1wd4RGQ}Rb{H<$WSHk#Gz$@#G%Vw z$02h~PMPX-tWsqyaa>$RIzC+jPJE(e7ygiN=cwH3a5I&?rdx(80Zq3{hby&6bBhzM z?00p-)jX@i70tfzzUDzmW8X56StduCI$_CNfD_hS`(5}sTcx*3wT@1!;rLl@=S7!E zZylIr$FFOwE^Wt;u8Eo!GgUb_w2-=@`ERcBuiY%Mc}~(YLzRPeGtaJb68Al7J*o~z zbFy}Gw{0(OGVS^*;mo35IdRR1D32_~d)n{J2=|#0_6zN@lyJ1v(D5!-5=FnK+vOr| z=2PO1Y{*pU@9oz~E2_&$P|JClHFnaL2hTX~tB~=|d%o(4=yb}Ak7HkiJagV_xIV@4A)K;cT$eENzFDQmZ56leW=+ zOZe`zkJ9HGPs$`r-OtgzVcovS{Fm4ZJ^yce-vU-uvG%_}G%_+WD=Vw*EwQ|;z4p3a zLD8^KNinS`KtUl9h+9-vXlQiOvZADp6`Go-s3^^-D6PyxMMY_8W<^G2X=O!)W%d8P zYxaT-;;HX{zUMjLcfPas^V@TuHS^BQJMYX|>z$cMH4+@ZBQ2AKi1JKErssJi0n&X( zf;v=Rl9@;1f39n%dr^8%Mq=-mG9EzxoA9%-L_}_ zl3Ix3FgjBIV0L=a*lh(A4{CV!ek>7947ll(!ch;LKd)4N4vCpn3&jF|ky zRsoC$vy}(4v-a}rH1?RC{ylq++t$o~9{QUni?I7L8Hn{=CR?+2mzk{Q`4f+(KJCfD zY!yXsgO5Z@Q(t28B|QW6MAFRCMxF<3ulcKWAN3aIXvLk=f-i|lh;`Y`!# zuG_De9LCDy$xqBhX-LML>(-gciE~|kLu)V^g>(-lFSFGdlbKk5WpXZCeKGlt<;rFS zwhE%P5!HdlHQxxe?$7-~b6CiA{GiMEPyM{~zW>WjAFTV~t?IRZ z%wc`w@VGum_#QR8HxF_w&+sSEK)$Uu2iscsc)B z^G{Yd7%iIX9RJVNwj)+F*I{S2urTTfWeXPGP`+sKjTJZj<>n{SncCatl#kD#;59@e&*Tw=bqoR`Gpr> z+Vb+&zc;+{>T8X!zwu_%TW@dM{?5BQcD}dk{oNmY_)+u6dp>FT^s~?Re(~kL{a=0k z&4F*f`@Z#uAAf2)`13D^a7Y99&wi+NiYky@BdHJ|BpVDJ94=Dq1?Z^ z{&5%s^n9>aS=r*U1!Z_()njql;)P}XdiKPZcZ(J+>WOEFd|6Ui1-_z-8Kx#pFXN7) zkMEL_Dv-<PzuZk%7Aj90$2hp11fA6N#| z0!_dHpx+OO10(}QzzU!aXaE|4?LZ3<`6HgA0|S5&Kmw2jECcF*W+3V(JhKN9fqY;E z&;StqT41&T{n`)*NB~k(XQo2|OANJ3YAU|toRtGJKfQ2Px+|!srWO`uz)p_T)S|3x z3VENnhkOV~kLa8Ya|BGNqvfuHc^N>@cF#hh`LNJALgxS@fziNF zz(yhy8Jq?CeBd%5tz@>V#bX%Krj^VLu@fPNacQJ+Aa6DWb7?vB=^k`c;2XeMzB%|# zGK2XOVRGj%dkM7*X)h@%fRgOI0{EseGBdJ}_P9==2*+2r^wl6KqwtdXX5oX$;(|=d zG>zIWois&&tlgy#<{z3IUqV9fkbC=(`?u#F8r&Yvir#%LX(ibOMa8InMs{I-4wNpD z5+-Od%BT8eX8Hc02%&L0YVYePMo1q2s2E(@ti1fIjzFli;*266Q^fB!N7}dqE^SJ3 z@`R4IYj5pfTL#_TXGr~-`YI!QCRw?(ym`6VKI$8V+0^1`9mHV0KBVCe3%lgfkWi$B zVj_HXnej)&>l&|H0#eyR+o21UIw;*Ko=58=#!kz)Di_VQZ9Tc>!YsQ-nR~GwvYmOvm+M0%Xlqf3RQ!{)|ZTNjng?iB|}tL zA1TlGxtd`^LVW2(KCC7}!r}@F(yu~-VAKRC@*yn~bl68|b_friO5qD05AX5axY3?PfsAi|ONL_H8qL)+^vi z$z=DL(=4l zZRGxim6^gR9$lg33Qa>{hY*hsrXe@oI~MLl@(cP?obG5AnvT-Oh~d%mL-Hb;ErELl z5Skyw>#mNWX(_*C#B1!5-)^|~cgc_9b(ddgTFQ_5YG}VCzcQrd(U-|i7u7Qs?u4Kp zg}VXx3#DUd8VavMywZ?-s5}*LR{~z&qd48sk<#tE0q@?GgCA``!W}TxFfRWuVcas{ zVPGrJ-4z?+dFn}Av{y#Y^nxihVK44A2s)Oid~L9kU*xYH^@o$ufGol5r+$B&Z!Gfg z@=b!B@=g1Ld|!v&;8^b_Fcb3+zYpa@muJ#FBH*q=-c*M}-Q0ux3Do~6-MWxCo?lha zZ$~b+PjHF9vHW6TrU2wge22n3T1LS>HyGdJd!b>iRV=U4Zqls`rrQ%VSK}U3mJKjV zgZHF+RdthgahJ5s!L$duq^;{FZGA8;4g+<0^Y)pZ78s?Unti5PR2nA8hT2w?D+*HQpkeM@RX3d3G(&$J;uGcdhSH?{yBJ-=#jw zcXtjCy??)EF1kMudjHVy=8w4O79cddYx!#Tv+!b=*8^TXYP*zU)*cq`sgJqn7XU9_ z=>2wl!9~9hgx)VSyar``5{RV;!3!@dN8?s*U-nEdjK(^lF)X~D7wv|f{Px52;*m*y zba~|prSt9kxahk83jZ!huVkFNN<1YECh-RfBYsY%R}SJ2JG#&}G+&C_dhp2grSJ!j zVtISz3Z=(;k(m1cisyyb2WjEC_w?=@-nISolRJkubV+}guXA|U^rs7*!yCJ#e>}j# zsf^da?v<-+yy;@+e7ct7nt2`hJd)FqPbfX;9&gX>oKIJJ-*rXj@UG>UUC=qaYkg-d z?kLBi*A03tkSpmG?)IMm?1a*Ya4xc z6$?}Y2Y{q$*w@2rjLU#D2=w%^KpBvaR~>7C13*4r@XW`{|I2_TfL`3M2IvL+GN2h7 zC%#np0nLCf4S4~}(vkNp+yht!RFj#3FuX#&c@F%sHT?HhKTrca2W$o20Codk0tbN}N1^V(0N@712cemz>UCNz$#z^uoc)2d;ok2v;w~ZJ&z9OqJWcuLBI$=1;zlA02=Wq zDHp-@qNCr0R;%2#LQQ_=EF1`TE zyn>1DfnYc(6f3uJvu9)Tj)TKH(&SvIxEezqSjRyLrEAH{Co?rGH9oUsY*9f@hwEHY zz1toJeccn{gU)edCU~~lvnOFokHx|bCwsZUo;ntq9Xo=^iH$KR=5CLjIxe>)Cp1M8 zPHo5wO*18ZUT8Qw0WFw85>!$_6)($;7VETJW$L-0#F7+D&mqFVb8_&gPO`%*4xw(0 z5ckA%SG!g)bRufb;*JS9iZbYhdK4w)l>`-mv1swwJ?-j8i{;`%N<>G%OoZx5oc;>k zm6-)o-QB>BkW$bd^lgueH8-7~*E!l$&?Y^H-L-Q_@PIvN^kVsdBBAzRKkz!i6jCUh zo`a4sB@-%F(SZuHh)z>Tv2h$am1|-3E@TeWENG*MQ0PSzBy&trE*U|JkTpmMuKhqu z=o&^Mm)v+qh3u0_n>mqWTrR1T&2a4~^Vsx!3?wcgc(yOu&%jx~MYn}@k4 zdv4H&eH9xUw853=9=4{E(#&HIz`usezw!i&vDAWMVy5Q2HQ zx*c6loN}F=5l{KX6@j13EXLt!q|wszg?Vmqb_V7k&nKxM6WRpvOvpVAHH`U_3dGI< zn7zCd-7qc8XkKV%Hr1!yzZ*`)B}|APMdw~Ogb^X~=3$dI1NG00<6^?$gNYy;dg|$s z!G-DIbKnbc+%qBjjB(ucOhY77EyyKND%#5&M<=;)+>PX(j2SQo+R!sIz{BvkgzFm? zY&-8bVD3N!dWEa(lH(rk8PrJ`dQLC5K6qC*5?Zr2<=j~dB(xyz?WC6yZ~aoNiD26~ znXH6J`DhPUxgvNfY3Y1|xm-P+=Z~8*XgS76Lf%F>}e<4Ptmv&&-xZGJ7b4hvbsS(_7pg^em z^`6tAhJS2UdO>pDM0BQXI;flr^hn4|&vzSoLo)Hg z3J~UM2OUcUN{1%+)znAh#$vs(m`XHx+(fdkcSmy)F;(uEo)}pnBXX5ja@>Guh9|6` zICy9m6|@|;sz+jGdP!H+v{*$@4pWOVf;ErPDn>$TQKY!5 zM`DKtTDW(!*&??vFDH}w+t(p(G-xKr{Yw0t?in1$P=d?-++(tPps3s9S^mgt5YalM zH#M{J)2alyPv>qAb2SB1UhNu!UksUnrgKRVQ*d;GTVZaJYj01?ed*3CxfzpZv+(XD z%>VfPyHJ4kyI5Ke{4LgzpPrWmU5o7;j z4cOAJk`XSE6h{j zZi7iW77oEY6K2E)rlTSX=0Ldn!R!Nb0L)`y4uN?b%n>l7VTv&EniyxoJOgGt%)T%a zVESMt!i<8M1oIe}Ghm(wGY#edm{~ASfte5Uc$lRy`@<}Qc@oSDm?y(r26GV1Dwu;| zu7EiNW;IND$7eN6dhe$OCJegDNZC$U(9ZG9o)Up)Eq?+m*+2UqeZ-69>^tK1&))fe zRQe;or^G3*#O~qy?=Q>0BFBG^ju93f5xH}4c=YNX;A;!7 zT1b48uC*UAbLARlF1Ww>5ZPj{D|5|ti2uR^yB_ed;KTkG{KmXugXWWeGJaez{zk-q zb5+Z#Q@Kx9?OlaU{4Q5}{@1N^Q(OQ>e!;HGcKNu}U6=0?y2R$V1>1Ih*nAN08ePXy z(kw%fh{qDIrkyteZtI#6Fo~Db{6KR@FW_k4D1hdK$e>AnAxsLt0if`5fbzc$7!KSQbgzU-T^|G}-ctaT?+t*$ zcK{ULA4DPgcr=66y~6NMb&Git?*{`sAOb320B2HTyc+pm{9Ii_Eal8wF>d&^)L=hDHeuBRho? z{&W3@0)LhQF;Aoa0yK}55hML4FUlvh4_4BGpv&d;VbAn}J-25b$^S^<|JC?jKA!2N z|5uvCTSlP(TVQS;^T)V8c=aD09=!$ej|9q-c-2GTJ)!mMdhQ|~lyhN+aM}+d(YzN6 z{0?EF4CVr~Ey)rj7x;kd0d{%oUeEo%*X;b2by$t7!(-e18hUove~xUo z$F7KKwpAGg-a ztbOzM31^nRxGgqsYx9yX%3eA5nLF0S)i0VmZJ4(7r~KymW9mP+<->#b{<817hb|bq z^0Sgp8owJpx_rS|@iEaSKh*YU^d~QG`8j^ygWJFVY2U}^U47@9<1!onep{clk5-@Z z$phn$%{)1(c){Z0l2;NY&KT43;2oMF)jjdm)QJy%da3pDrN+(o-G1@!m##gq(ziKz z%@QU3tzU1x_~xBMFTLsD`*R+;v+es~n^rYk`axN4;wyh$?)yvll(a2Fi&0-XLRBvA5Yx!eC3^= zz2e-yWvWpe|9ZdY?|IDmaLzN8+PFu~c>K*uXUO2Kd+MJt{OLDe?W9k;=!NSZpE|$q zv#HLGuSYNK_5AINPW&a_8RD$@LR&NJ%j?&j?Oa>4vZX#_{`jU3rrEQu>D4$m`N|u9 zzioka+t2zbSI-(c*1x&N9C*`P>cVrE*Kxn@Fm_kWh&=7_y`L;z+r!veK5ooW8}BYw z-XEn0t{Cw4;P-{ECoH>ITYKa4o2TzuvvBRICxty(PaOZ?l>6f^dMbLv&q#FkHpLBla%wKP~^|4-+*B;+8^27Vz zc)KCugS9(*lWejddr(B@QBK^2IJ+5#j^hzoEWSsJjpaha+Ry9jCJe`$X3t7>55o{R!lTQ7sqa5rZhxLTAs2M5i2F*@G^PhW9BuUCx2 zBZuafIsuQOuQWEDh1`t2*H;REl3kV^7EanBFn@OAPw_W*<4@;5>_k}SD~u!m zy`4SbV*YJM@Q=jJ`ETzGD*^7J5Rc6n;oP+$g3U2_0dX9(8z#HD8A*rQ zH0amFsV%{?r$=S6td0%JfJHq-cwC4tnNsmjUo(-eP5PcF)y;uvuH?AqBEG@C1)2xlCmt-9hZ6D9Wn@r_<&ke<~H}tSLa*yfgLaq%k`4mQEa^5IX1R z@K{tA3iEREf#!4{(s@NY8T1`29k=S05v~)5RJHv_U zN43mwPw>Gr2)FE$gK@J_JG#49Z*s8~{4;ep8@pLy96Mo%PQ9X2nnL@4mj}^rHg=@C z#_dYw61>4V3VmV}PU)kw$*6CUF03M)TO^?d0{&;?=Y@G^P3h2#rsCu|y5fN_j1+(qY%p&PPYoQUuO)O6TR^qtb#xyc}W;^N-?(`7-Hk z2)r|C4RcTQ9p7Ur8&%>ThA)6~vuEQKtl(RU>~6@)=QHsEbYT%aqYvgb z=nrxW406*UWnt#5Vw~lARnQHeg3K#$fOt`6MiO3x#WUPFnT73vp~2%yk(AzvNu&ei z*|GB0u=K(Sxg~jXGYf|KinHTp(Mu85u-WN3g_*;AqucW_M<4kv=IBmkGDo*p4#~~Y z9^K%e2KdkQzncP>=rNCTVf-zVuaLJ8X(0;Bc(~wR4H33krqgcrMsmqQj_$t^p*6T)LTADK22UO zzbAh#|0G8#$1B4WNzs)Hl*^QCC0ALX{7rdMX;gM9A1L1|zbg^y5S3SFsafhmb*Xy0 zx>0>eeM8-*{;nRa9jBeH4bmoS*J~Bp9a@#PR(n)?MSD~GRQpnE(>VQTeV~4pF6yQ} zUcW%UP@kjc>R0No=|AW{>wS#DMvO7jxZ1ehSZ8bm6}KB78=o1`rq3K|PB))6_nQ5z zvDUrT1J(xXS?e{c$@&?z9bhNfm)W!JE9??`v0Z6DV6U@Zvp=x+*uR3}L!D&j5+~ES z+_}bC=&W?sIZrrGISmd82#II|KR<=v%D=<6@{T{v|B`=)KSDT87$BS_j1tZlE)ueZ z65$%*HsO9@weT!jV4JX0*e9G2I5Qvz#s|(1qzC2&3IewUY6H&({vLQM@Lr%L@D19c zr#M`c#8`2hcr9Au7V#eOe(`-VN;*;UNkb(`GNnxE3h8>OT&k4*Dm@@QE^U;yO0P>_ zNUhRAw8`QCR#JB+16aE+`7fO)2g=CSX-=UJKoN=SJ-dZ@7w$A{>~Io zbdj^m`Gop&EWSB`F^o^=OZakrDgPk!G0{@l%8~u0qYyF%2ANoJ_|KdMU z7$l4pCJ2*+WFZy3{BqEDv2Zi``3u62!sI}4;D*4_)*jfahQjL(gqjh^P|rfObbrkYu1sky*hZwl5U)_UtX^p0lhYxIwvb|1T+eWuOZ zrhTrRY~ODGWdCmWbdGcSIj1_JbAfY_ljdYOxv0%5=OJf<^PB^5fvZD(;`#IWY5ZmU zv;1a$8~*{nm;ahS$p6Oo@+7Oy2}i5UB}=!MM~^=IjcdXk>3&(JIMyYyQ99sQtwx)EP!b zQDLk#nvCPj7*jJdQ0vFdjpor-vejt4ZSAx^v|6k$tpnDN)*&n0j8*tO0%Rn(magHD?yb7(juu2BeF^QR{Bx;Md~YGBF~gB zmv_k@$$RBi`JjBaQmt%MHY>j=CmENTXVW++bJu-bPd<*H!!PI01NGbdy#*Wm`o#@$();8;X^z9aFuXQ~7z%)C>PO~%YEIY@}w~Opj`$f9}6l$`!+qyFj zeS40R; zyc<2L1@zhve$^`5O1zSwBq~YDOX|mJ5A77~Qf;?(tUgNLtiP@IHBQHz`m)(<{%A&7 z{VbHPn)G=>*DgQVe=*v2h5uOLOu;XVQ&uP+DR*lZ>%1jfrgf23YTatxXMJpaj|I>~y|xzIJ|b zxLTYigL`uP@sI?P_*r}|U&!Bp5mm|G&;O0z#5eP0{^kDF;AorC&vy8K^hXINVa6CH zoF_~cE)mj%>xH+39l{~u_`t}(q`=a^s=y0@4+E-S1aq93W;UUYXWAmh{`r{i zeznhXVx0tMDr!~k-0wW-Jn1~+yyE=i&_+WgsxgSa2xVWz3;x;urT(2L>lMPcLUUj$ z%EC!1M!-$r06U})q+aqsS(C@1^{$eig&c5_qAF7{@~>5HSGFp541X>^8S-2!-_t+TzfTx0 zO;DyQ>B`f}McU_@uK#3k2hgV>cU;OB@bmeFd0xO-xY_gIXRk?bN$*J?N-ffUaJHYM-=zq-x7=4gSw0;j z_-vV%RoRlq%I9MoUkK@AmYgkL0r_LTTrS@v-wHW#g}h3BNPbM-AU`L+C^yJW@;mbT z@+TPOU&}wrzsO&kRMsjr$_7wrlk#^+ns1}GeWbJ~Un$=yZ3?IMQv0cc)Zwa(9+;p`gycC-U83Hn zKBa!G-imqVNo}~kOjnH>W3HKF&9|09YFT4#v`(@I+U3NTvD&6FJrgr`kx(Z74bnuT zc#Jd{Qt2k2Rtq(@QczuPw zMqg+wHL8sbMu~a7d9zh%m4QQUL(iV(EI~g;#y;BpzIKvpWtw@tXwxjvRuzU&F|zt8GMbF(?(Sea1l|O4cvc^Yk0_rI3kM=xg=I^;SK~7z)mx zXFP4ZjFrz2NQ0H;YDnfitz)bcAeG-~J#0OXx&L!30LgEmU1hI!dDOAaNzOorcP10f z^TXUZa~hw*^Zp0XOIrPXF*o^zdxcf#EsqJu1|AY$lHQQ^N}PNQM*Up*26?u&3~Ss^ zwBz*Q`egkpeY`o_9AU+|GUq*zI$i@e54VTfqioeqwF~UK?a_|vjBze>u5`9LTp2db zaqH7~i5~|U;wH?L@AGZ^jeb>#!zyZya4XhNk6_hg2TG(HvEErJt(6{?K80L0Q2s0A zggxLI&nhn}8R}fjEN`i2K@z%Cdt7^4%g`^^7wW6@=g=3vh2(gwafNXe`tcXWS6E}W z8NVAnO!^kohx>2G{I(l2NelW|D$(obyB^w8LQ<6NXbo7n{)_Ni;yGbC^;IkPO_XLXUI8n zk;@;K$d%xZtHCig$o29TaECL1GFKK)kVnZ@sQDzwG{BF9IZ&3 zua#>{v`TG-wpy#vHfZ(e!Hwv{yRnYkueEB2z{jW;5739`Biue5@Alyo$SgT}kv?B9 z*O%y(=*g?~8gRIJeT&|xZ^!zxMcBKvU zPLeajU6bcKrB0bs;Vi?hSv6$!T1e}gv3Ju1X}uY1zXMp!a7|(OsttVrE177%KkwsX zu#2biv99z!gHOY%CZ8|m%OGhj6b!Ut?)0y+Opce4l`LDWd8<#6ZlQDe=oRA8zk3AaGL&t zPl$m8s|v9~f{-N4z-k~%$QMe5GR!f{gevR{tizsO9rp7Yu$Q+}XcqPg2QYtg*dvGz z^bhy~F#$fH24b;SkQA5^NW(s4exMZ6Zw2JRD(w2L!(LNeU^B*0Q(!07^m|?DkP{=t zXtBTO6Jtak`+%`xf|w-E5YxmgF<&ed%OE!{6RWV3vQDfO>#(Y85SzrEVzamxW|&281P6H>w*MGMl--4v%nim!51sQ6RRLiuETn-4m_~|{BWn#jCte$_#y|M z7%lggeR7N|L&nMpkRWHsX>yj#9SDQI9lRIo9{~Ce0fk3^#v-U}g3j@vbRuY-3~Hx< z-Wi~H4rpEks?P`A%R%`ipnWB%zXJ4MjTWdu8*D%;)T14?pd}j779HGwuYZ6048REy zXc?LX`k{3OpnZm*g+`!_M6{BLc8W(!C8Dj8(OM~JuMD(U4%(~;tu`O+R*sfig0`zf z>#achrMN4eGR&BjF2AaWoVNwsvITsy4ePilJzDRt^Lnfv@9uh}=xNxAD}y{!3GTQK z{IOQA)0?m+X#rbF*_JBrU?8myJKLg{w6#F7ejAib~-+(dSVC=-0Z+1t01jc)R z?3awdXpc1$uqMpMNG~@l+>u^`QQhAi&52gNJAPMV+%{vkAPRd%G1v!FT^>3Ey9UHP zmqCiC#*S%?U2E61kIlXA=!|q?u(r&?%Cf>)jq%q&`z?5OOKb8-j5FFP&&MjJ3gc-f z#!x?uA8OSZZY!3#?MAIdEws~}jiX(PvyqVkN|%DBb;5RxgEpZ*di@Oa^m6p^&6pqd z1|rdy6GYt17tW=i|HR{tiTrB5hTp)~^IP~vemlRLZ{hc2y>*C>fV|odJ!}Yimx!Jf zk6x9G9+iRKRD_;X-fho0B$Zwo&mW26s24>te%(+>Zb@MUr zmSW~D!`xee*_ZlL6=vX$d2j(7&26AMeDB9D#Xw2I3imYtA+W5i@| Mj4Go2zw!0|0BS0p)&Kwi diff --git a/MFIGamepadFeeder/Configs/Nimbus.mficonfiguration b/MFIGamepadFeeder/Configs/Nimbus.mficonfiguration index fc6ef2e..4c6b972 100644 --- a/MFIGamepadFeeder/Configs/Nimbus.mficonfiguration +++ b/MFIGamepadFeeder/Configs/Nimbus.mficonfiguration @@ -1,130 +1,148 @@ { "ConfigItems": [ { - "Type": 6, + "Type": 3, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": null + "ButtonType": null, + "DPadType": null, + "AxisType": null }, { "Type": 2, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": null + "ButtonType": null, + "DPadType": 1, + "AxisType": null }, { - "Type": 3, + "Type": 2, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": null + "ButtonType": null, + "DPadType": 8, + "AxisType": null }, { - "Type": 4, + "Type": 2, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": null + "ButtonType": null, + "DPadType": 2, + "AxisType": null }, { - "Type": 5, + "Type": 2, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": null + "ButtonType": null, + "DPadType": 4, + "AxisType": null }, { "Type": 1, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": 1 + "ButtonType": 4096, + "DPadType": null, + "AxisType": null }, { "Type": 1, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": 2 + "ButtonType": 8192, + "DPadType": null, + "AxisType": null }, { "Type": 1, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": 3 + "ButtonType": 16384, + "DPadType": null, + "AxisType": null }, { "Type": 1, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": 4 + "ButtonType": 32768, + "DPadType": null, + "AxisType": null }, { "Type": 1, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": 5 + "ButtonType": 256, + "DPadType": null, + "AxisType": null }, { "Type": 1, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": 6 + "ButtonType": 512, + "DPadType": null, + "AxisType": null }, { "Type": 0, - "InvertAxis": false, - "ConvertAxis": false, - "TargetUsage": 54, - "TargetButtonId": null + "InvertAxis": null, + "ConvertAxis": null, + "ButtonType": null, + "DPadType": null, + "AxisType": 4 }, { "Type": 0, - "InvertAxis": false, - "ConvertAxis": false, - "TargetUsage": 55, - "TargetButtonId": null + "InvertAxis": null, + "ConvertAxis": null, + "ButtonType": null, + "DPadType": null, + "AxisType": 5 }, { "Type": 1, "InvertAxis": null, "ConvertAxis": null, - "TargetUsage": null, - "TargetButtonId": 7 + "ButtonType": 16, + "DPadType": null, + "AxisType": null }, { "Type": 0, "InvertAxis": false, "ConvertAxis": true, - "TargetUsage": 48, - "TargetButtonId": null + "ButtonType": null, + "DPadType": null, + "AxisType": 2 }, { "Type": 0, - "InvertAxis": true, + "InvertAxis": false, "ConvertAxis": true, - "TargetUsage": 49, - "TargetButtonId": null + "ButtonType": null, + "DPadType": null, + "AxisType": 3 }, { "Type": 0, "InvertAxis": false, "ConvertAxis": true, - "TargetUsage": 51, - "TargetButtonId": null + "ButtonType": null, + "DPadType": null, + "AxisType": 0 }, { "Type": 0, - "InvertAxis": true, + "InvertAxis": false, "ConvertAxis": true, - "TargetUsage": 52, - "TargetButtonId": null + "ButtonType": null, + "DPadType": null, + "AxisType": 1 } ] } \ No newline at end of file diff --git a/MFIGamepadFeeder/Gamepads/GamepadManager.cs b/MFIGamepadFeeder/Gamepads/GamepadManager.cs index 17b4891..c225f5b 100644 --- a/MFIGamepadFeeder/Gamepads/GamepadManager.cs +++ b/MFIGamepadFeeder/Gamepads/GamepadManager.cs @@ -10,28 +10,27 @@ using MFIGamepadShared; using MFIGamepadShared.Configuration; using Newtonsoft.Json; +using vGenWrapper; namespace MFIGamepadFeeder.Gamepads { internal class GamepadManager { + private readonly Thread _currentDeviceUpdateThread; private readonly HidDeviceLoader _hidDeviceLoader; - - private readonly Thread _currentDeviceUpdateThread - ; + private readonly VGenWrapper _vGenWrapper; private Thread _currentGamepadThread; public GamepadManager() { _hidDeviceLoader = new HidDeviceLoader(); + _vGenWrapper = new VGenWrapper(); FoundDevices = new ObservableCollection(); SelectedDevice = JsonConvert.DeserializeObject(Settings.Default.SelectedHidDevice); - if (SelectedDevice != null && !FoundDevices.Contains(SelectedDevice)) - { + if ((SelectedDevice != null) && !FoundDevices.Contains(SelectedDevice)) FoundDevices.Add(SelectedDevice); - } _currentDeviceUpdateThread = new Thread(() => { @@ -42,12 +41,11 @@ public GamepadManager() hidDevices.Select(hidDevice => new HidDeviceRepresentation(hidDevice)).ToList(); foreach (var newDevice in currentDevices.Where(device => !FoundDevices.Contains(device))) - { Application.Current.Dispatcher.Invoke(() => FoundDevices.Add(newDevice)); - } Thread.Sleep(TimeSpan.FromSeconds(10)); } + // ReSharper disable once FunctionNeverReturns }); _currentDeviceUpdateThread.Start(); } @@ -68,12 +66,11 @@ public void Refresh() var selectedHidDevice = Settings.Default.SelectedHidDevice; var vJoyId = Settings.Default.SelectedJoyId; - if (selectedConfigFile == string.Empty || selectedHidDevice == string.Empty) + if ((selectedConfigFile == string.Empty) || (selectedHidDevice == string.Empty)) { Log("Configuration incomplete"); return; - } - ; + } GamepadConfiguration configuration = null; HidDeviceRepresentation hidDeviceRepresentation = null; @@ -91,6 +88,17 @@ public void Refresh() Log($"Using {hidDeviceRepresentation}, vJoy {vJoyId}, configuration file: {selectedConfigFile}"); + var vBusExists = _vGenWrapper.vbox_isVBusExist(); + if (vBusExists == NtStatus.Success) + { + Log("XBox bus installed"); + } + else + { + Log($"XBox bus not installed ({vBusExists})"); + } + + SetupGamepad(hidDeviceRepresentation, vJoyId, configuration); }); _currentGamepadThread.Start(); @@ -107,53 +115,51 @@ public void SetupGamepad(HidDeviceRepresentation hidDeviceRepresentation, uint g hidDeviceRepresentation.ProductId, hidDeviceRepresentation.ProductVersion, hidDeviceRepresentation.SerialNumber - ).First(); + ).First(); - if (device == null) - { - Log(@"Failed to open device."); - return; - } + if (device == null) + { + Log(@"Failed to open device."); + return; + } - HidStream stream; - if (!device.TryOpen(out stream)) - { - Log("Failed to open device."); - return; - } + HidStream stream; + if (!device.TryOpen(out stream)) + { + Log("Failed to open device."); + return; + } - var gamepad = new Gamepad(config, gamePadId, Gamepad_ErrorOccuredEvent); + var gamepad = new Gamepad(config, gamePadId, _vGenWrapper, Gamepad_ErrorOccuredEvent); - Log("Successfully initialized gamepad"); + Log("Successfully initialized gamepad"); - using (stream) - { - while (true) + using (stream) { - var bytes = new byte[device.MaxInputReportLength]; - int count; - try - { - count = stream.Read(bytes, 0, bytes.Length); - } - catch (TimeoutException) + while (true) { - continue; - } + var bytes = new byte[device.MaxInputReportLength]; + int count; + try + { + count = stream.Read(bytes, 0, bytes.Length); + } + catch (TimeoutException) + { + continue; + } catch (Exception ex) { Log(ex.Message); break; } - if (count > 0) - { - gamepad.UpdateState(bytes); + if (count > 0) + gamepad.UpdateState(bytes); } } } - } catch (Exception ex) { Log(ex.Message); diff --git a/MFIGamepadFeeder/MFIGamepadFeeder.csproj b/MFIGamepadFeeder/MFIGamepadFeeder.csproj index 14b186f..4351088 100644 --- a/MFIGamepadFeeder/MFIGamepadFeeder.csproj +++ b/MFIGamepadFeeder/MFIGamepadFeeder.csproj @@ -56,7 +56,7 @@ true - bin\x64\Debug %28Local%29\ + bin\x64\Debug\ DEBUG;TRACE full x64 @@ -74,7 +74,7 @@ MinimumRecommendedRules.ruleset - bin\x64\Release %28Local%29\ + bin\x64\Release\ TRACE true pdbonly @@ -206,12 +206,6 @@ Settings.settings True - - Always - - - Always - ResXFileCodeGenerator Resources.Designer.cs @@ -260,11 +254,8 @@ - MOVE /Y $(OutDir)\vJoySDK\$(PlatformName)\* $(OutDir) -MOVE /Y $(OutDir)\vGenSDK\$(PlatformName)\* $(OutDir) - -rd /s /q "$(OutDir)\vJoySDK\" -rd /s /q "$(OutDir)\vGenSDK\" + + _IyKEL)VA(P}M9Gvx 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 diff --git a/MFIGamepadFeeder/vJoySDK/x86/vJoyInterface.dll b/MFIGamepadFeeder/vJoySDK/x86/vJoyInterface.dll deleted file mode 100644 index 309de0e5ab1f5da55908dfbae95b398673224ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147456 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