Skip to content

Commit

Permalink
Merge branch 'main' into xcode15.3-bump
Browse files Browse the repository at this point in the history
  • Loading branch information
dalexsoto authored May 29, 2024
2 parents 84638c6 + 1c7604c commit 48c1384
Show file tree
Hide file tree
Showing 13 changed files with 90 additions and 60 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/bump-global-json.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}

- name: 'Update global.json'
env:
PR_NUMBER: ${{ github.event.number }}
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
set -exo pipefail
touch Make.config.inc # create a dummy file to avoid logic we don't need executed here
Expand All @@ -32,5 +35,5 @@ jobs:
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
git checkout "$GITHUB_HEAD_REF"
git commit -m "Re-generate global.json"
git commit -m "Re-generate global.json for PR #$PR_NUMBER: $PR_TITLE"
git push
4 changes: 3 additions & 1 deletion src/Foundation/NSUrlSessionHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -889,7 +889,9 @@ void DidReceiveResponseImpl (NSUrlSession session, NSUrlSessionDataTask dataTask
Content = content,
RequestMessage = inflight.Request
};
httpResponse.RequestMessage.RequestUri = absoluteUri;
var wasRedirected = dataTask.CurrentRequest?.Url?.AbsoluteString != dataTask.OriginalRequest?.Url?.AbsoluteString;
if (wasRedirected)
httpResponse.RequestMessage.RequestUri = absoluteUri;

foreach (var v in urlResponse.AllHeaderFields) {
// NB: Cocoa trolling us so hard by giving us back dummy dictionary entries
Expand Down
9 changes: 4 additions & 5 deletions src/Network/NWAdvertiseDescriptor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,15 +140,14 @@ public void SetTxtRecord (string txt)
}

[DllImport (Constants.NetworkLibrary)]
static extern void nw_advertise_descriptor_set_no_auto_rename (IntPtr handle, [MarshalAs (UnmanagedType.I1)] bool no_auto_rename);
static extern void nw_advertise_descriptor_set_no_auto_rename (IntPtr handle, byte no_auto_rename);

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_advertise_descriptor_get_no_auto_rename (IntPtr handle);
static extern byte nw_advertise_descriptor_get_no_auto_rename (IntPtr handle);

public bool NoAutoRename {
set => nw_advertise_descriptor_set_no_auto_rename (GetCheckedHandle (), value);
get => nw_advertise_descriptor_get_no_auto_rename (GetCheckedHandle ());
set => nw_advertise_descriptor_set_no_auto_rename (GetCheckedHandle (), value.AsByte ());
get => nw_advertise_descriptor_get_no_auto_rename (GetCheckedHandle ()) != 0;
}

#if NET
Expand Down
9 changes: 4 additions & 5 deletions src/Network/NWBrowserDescriptor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,15 +121,14 @@ public static NWBrowserDescriptor CreateBonjourService (string type, string? dom
public static NWBrowserDescriptor CreateBonjourService (string type) => CreateBonjourService (type, null);

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_browse_descriptor_get_include_txt_record (OS_nw_browse_descriptor descriptor);
static extern byte nw_browse_descriptor_get_include_txt_record (OS_nw_browse_descriptor descriptor);

[DllImport (Constants.NetworkLibrary)]
static extern void nw_browse_descriptor_set_include_txt_record (OS_nw_browse_descriptor descriptor, [MarshalAs (UnmanagedType.I1)] bool include_txt_record);
static extern void nw_browse_descriptor_set_include_txt_record (OS_nw_browse_descriptor descriptor, byte include_txt_record);

public bool IncludeTxtRecord {
get => nw_browse_descriptor_get_include_txt_record (GetCheckedHandle ());
set => nw_browse_descriptor_set_include_txt_record (GetCheckedHandle (), value);
get => nw_browse_descriptor_get_include_txt_record (GetCheckedHandle ()) != 0;
set => nw_browse_descriptor_set_include_txt_record (GetCheckedHandle (), value.AsByte ());
}

[DllImport (Constants.NetworkLibrary, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
Expand Down
29 changes: 12 additions & 17 deletions src/Network/NWFramer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,9 @@ public class NWFramer : NativeObject {
internal NWFramer (NativeHandle handle, bool owns) : base (handle, owns) { }

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_framer_write_output_no_copy (OS_nw_framer framer, nuint output_length);
static extern byte nw_framer_write_output_no_copy (OS_nw_framer framer, nuint output_length);

public bool WriteOutputNoCopy (nuint outputLength) => nw_framer_write_output_no_copy (GetCheckedHandle (), outputLength);
public bool WriteOutputNoCopy (nuint outputLength) => nw_framer_write_output_no_copy (GetCheckedHandle (), outputLength) != 0;

[DllImport (Constants.NetworkLibrary)]
static extern void nw_framer_write_output_data (OS_nw_framer framer, OS_dispatch_data output_data);
Expand Down Expand Up @@ -288,14 +287,13 @@ public NWFramerMessage CreateMessage ()
=> new NWFramerMessage (nw_framer_message_create (GetCheckedHandle ()), owns: true);

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_framer_prepend_application_protocol (OS_nw_framer framer, OS_nw_protocol_options protocol_options);
static extern byte nw_framer_prepend_application_protocol (OS_nw_framer framer, OS_nw_protocol_options protocol_options);

public bool PrependApplicationProtocol (NWProtocolOptions options)
{
if (options is null)
ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (options));
return nw_framer_prepend_application_protocol (GetCheckedHandle (), options.Handle);
return nw_framer_prepend_application_protocol (GetCheckedHandle (), options.Handle) != 0;
}

[DllImport (Constants.NetworkLibrary)]
Expand All @@ -319,14 +317,13 @@ public bool PrependApplicationProtocol (NWProtocolOptions options)
public void MarkFailedWithError (int errorCode) => nw_framer_mark_failed_with_error (GetCheckedHandle (), errorCode);

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_framer_deliver_input_no_copy (OS_nw_framer framer, nuint input_length, OS_nw_protocol_metadata message, [MarshalAs (UnmanagedType.I1)] bool is_complete);
static extern byte nw_framer_deliver_input_no_copy (OS_nw_framer framer, nuint input_length, OS_nw_protocol_metadata message, byte is_complete);

public bool DeliverInputNoCopy (nuint length, NWFramerMessage message, bool isComplete)
{
if (message is null)
ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (message));
return nw_framer_deliver_input_no_copy (GetCheckedHandle (), length, message.Handle, isComplete);
return nw_framer_deliver_input_no_copy (GetCheckedHandle (), length, message.Handle, isComplete.AsByte ()) != 0;
}

[DllImport (Constants.NetworkLibrary)]
Expand Down Expand Up @@ -372,8 +369,7 @@ public void ScheduleAsync (Action handler)
}

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern unsafe bool nw_framer_parse_output (OS_nw_framer framer, nuint minimum_incomplete_length, nuint maximum_length, byte* temp_buffer, BlockLiteral* parse);
static extern unsafe byte nw_framer_parse_output (OS_nw_framer framer, nuint minimum_incomplete_length, nuint maximum_length, byte* temp_buffer, BlockLiteral* parse);

#if !NET
delegate void nw_framer_parse_output_t (IntPtr block, IntPtr buffer, nuint buffer_length, byte is_complete);
Expand Down Expand Up @@ -408,13 +404,12 @@ public bool ParseOutput (nuint minimumIncompleteLength, nuint maximumLength, Mem
block.SetupBlockUnsafe (static_ParseOutputHandler, handler);
#endif
using (var mh = tempBuffer.Pin ())
return nw_framer_parse_output (GetCheckedHandle (), minimumIncompleteLength, maximumLength, (byte*) mh.Pointer, &block);
return nw_framer_parse_output (GetCheckedHandle (), minimumIncompleteLength, maximumLength, (byte*) mh.Pointer, &block) != 0;
}
}

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern unsafe bool nw_framer_parse_input (OS_nw_framer framer, nuint minimum_incomplete_length, nuint maximum_length, byte* temp_buffer, BlockLiteral* parse);
static extern unsafe byte nw_framer_parse_input (OS_nw_framer framer, nuint minimum_incomplete_length, nuint maximum_length, byte* temp_buffer, BlockLiteral* parse);

#if !NET
delegate nuint nw_framer_parse_input_t (IntPtr block, IntPtr buffer, nuint buffer_length, byte is_complete);
Expand Down Expand Up @@ -450,20 +445,20 @@ public bool ParseInput (nuint minimumIncompleteLength, nuint maximumLength, Memo
block.SetupBlockUnsafe (static_ParseInputHandler, handler);
#endif
using (var mh = tempBuffer.Pin ())
return nw_framer_parse_input (GetCheckedHandle (), minimumIncompleteLength, maximumLength, (byte*) mh.Pointer, &block);
return nw_framer_parse_input (GetCheckedHandle (), minimumIncompleteLength, maximumLength, (byte*) mh.Pointer, &block) != 0;
}
}

[DllImport (Constants.NetworkLibrary)]
unsafe static extern void nw_framer_deliver_input (OS_nw_framer framer, byte* input_buffer, nuint input_length, OS_nw_protocol_metadata message, [MarshalAs (UnmanagedType.I1)] bool is_complete);
unsafe static extern void nw_framer_deliver_input (OS_nw_framer framer, byte* input_buffer, nuint input_length, OS_nw_protocol_metadata message, byte is_complete);

public void DeliverInput (ReadOnlySpan<byte> buffer, NWFramerMessage message, bool isComplete)
{
if (message is null)
ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (message));
unsafe {
fixed (byte* mh = buffer)
nw_framer_deliver_input (GetCheckedHandle (), mh, (nuint) buffer.Length, message.Handle, isComplete);
nw_framer_deliver_input (GetCheckedHandle (), mh, (nuint) buffer.Length, message.Handle, isComplete.AsByte ());
}
}

Expand Down
5 changes: 2 additions & 3 deletions src/Network/NWFramerMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,7 @@ public void SetData (string key, byte [] value)
}

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
unsafe static extern bool nw_framer_message_access_value (OS_nw_protocol_metadata message, IntPtr key, BlockLiteral* access_value);
unsafe static extern byte nw_framer_message_access_value (OS_nw_protocol_metadata message, IntPtr key, BlockLiteral* access_value);
#if !NET
delegate byte nw_framer_message_access_value_t (IntPtr block, IntPtr data);
static nw_framer_message_access_value_t static_AccessValueHandler = TrampolineAccessValueHandler;
Expand Down Expand Up @@ -147,7 +146,7 @@ public bool GetData (string key, int dataLength, out ReadOnlySpan<byte> outData)
#endif
// the callback is inlined!!!
using var keyPtr = new TransientString (key);
var found = nw_framer_message_access_value (GetCheckedHandle (), keyPtr, &block);
var found = nw_framer_message_access_value (GetCheckedHandle (), keyPtr, &block) != 0;
if (found) {
unsafe {
outData = new ReadOnlySpan<byte> ((void*) outPointer, dataLength);
Expand Down
8 changes: 4 additions & 4 deletions src/Network/NWWebSocketOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,13 @@ public void AddSubprotocol (string subprotocol)
}

[DllImport (Constants.NetworkLibrary)]
static extern void nw_ws_options_set_auto_reply_ping (OS_nw_protocol_options options, [MarshalAs (UnmanagedType.I1)] bool auto_reply_ping);
static extern void nw_ws_options_set_auto_reply_ping (OS_nw_protocol_options options, byte auto_reply_ping);

public bool AutoReplyPing {
get { return autoReplyPing; }
set {
autoReplyPing = value;
nw_ws_options_set_auto_reply_ping (GetCheckedHandle (), value);
nw_ws_options_set_auto_reply_ping (GetCheckedHandle (), value.AsByte ());
}
}

Expand All @@ -94,13 +94,13 @@ public nuint MaximumMessageSize {
}

[DllImport (Constants.NetworkLibrary)]
static extern void nw_ws_options_set_skip_handshake (OS_nw_protocol_options options, [MarshalAs (UnmanagedType.I1)] bool skip_handshake);
static extern void nw_ws_options_set_skip_handshake (OS_nw_protocol_options options, byte skip_handshake);

public bool SkipHandShake {
get { return skipHandShake; }
set {
skipHandShake = value;
nw_ws_options_set_skip_handshake (GetCheckedHandle (), value);
nw_ws_options_set_skip_handshake (GetCheckedHandle (), value.AsByte ());
}
}

Expand Down
6 changes: 2 additions & 4 deletions src/Network/NWWebSocketRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ public class NWWebSocketRequest : NativeObject {
internal NWWebSocketRequest (NativeHandle handle, bool owns) : base (handle, owns) { }

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
unsafe static extern bool nw_ws_request_enumerate_additional_headers (OS_nw_ws_request request, BlockLiteral* enumerator);
unsafe static extern byte nw_ws_request_enumerate_additional_headers (OS_nw_ws_request request, BlockLiteral* enumerator);

#if !NET
delegate void nw_ws_request_enumerate_additional_headers_t (IntPtr block, IntPtr header, IntPtr value);
Expand Down Expand Up @@ -79,8 +78,7 @@ public void EnumerateAdditionalHeaders (Action<string?, string?> handler)
}

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
unsafe static extern bool nw_ws_request_enumerate_subprotocols (OS_nw_ws_request request, BlockLiteral* enumerator);
unsafe static extern byte nw_ws_request_enumerate_subprotocols (OS_nw_ws_request request, BlockLiteral* enumerator);

#if !NET
delegate void nw_ws_request_enumerate_subprotocols_t (IntPtr block, IntPtr subprotocol);
Expand Down
5 changes: 2 additions & 3 deletions src/Network/NWWebSocketResponse.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,7 @@ static string nw_ws_response_get_selected_subprotocol (OS_nw_ws_response respons
public NWWebSocketResponseStatus Status => nw_ws_response_get_status (GetCheckedHandle ());

[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
unsafe static extern bool nw_ws_response_enumerate_additional_headers (OS_nw_ws_response response, BlockLiteral* enumerator);
unsafe static extern byte nw_ws_response_enumerate_additional_headers (OS_nw_ws_response response, BlockLiteral* enumerator);

#if !NET
delegate void nw_ws_response_enumerate_additional_headers_t (IntPtr block, IntPtr header, IntPtr value);
Expand Down Expand Up @@ -103,7 +102,7 @@ public bool EnumerateAdditionalHeaders (Action<string?, string?> handler)
using var block = new BlockLiteral ();
block.SetupBlockUnsafe (static_EnumerateHeadersHandler, handler);
#endif
return nw_ws_response_enumerate_additional_headers (GetCheckedHandle (), &block);
return nw_ws_response_enumerate_additional_headers (GetCheckedHandle (), &block) != 0;
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/appkit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15049,7 +15049,7 @@ interface NSSplitViewItem : NSAnimatablePropertyContainer, NSCoding {
[Export ("titlebarSeparatorStyle", ArgumentSemantic.Assign)]
NSTitlebarSeparatorStyle TitlebarSeparatorStyle { get; set; }

[Mac (14, 0)]
[Mac (10, 14)]
[Export ("canCollapseFromWindowResize")]
bool CanCollapseFromWindowResize { get; set; }

Expand Down
16 changes: 0 additions & 16 deletions tests/cecil-tests/BlittablePInvokes.KnownFailures.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,10 @@ public partial class BlittablePInvokes {
"AVFoundation.AVSampleCursorSyncInfo ObjCRuntime.Messaging::AVSampleCursorSyncInfo_objc_msgSend(System.IntPtr,System.IntPtr)",
"AVFoundation.AVSampleCursorSyncInfo ObjCRuntime.Messaging::AVSampleCursorSyncInfo_objc_msgSendSuper_stret(System.IntPtr,System.IntPtr)",
"AVFoundation.AVSampleCursorSyncInfo ObjCRuntime.Messaging::AVSampleCursorSyncInfo_objc_msgSendSuper(System.IntPtr,System.IntPtr)",
"System.Boolean Network.NWAdvertiseDescriptor::nw_advertise_descriptor_get_no_auto_rename(System.IntPtr)",
"System.Boolean Network.NWBrowserDescriptor::nw_browse_descriptor_get_include_txt_record(System.IntPtr)",
"System.Boolean Network.NWConnectionGroup::nw_connection_group_reinsert_extracted_connection(System.IntPtr,System.IntPtr)",
"System.Boolean Network.NWContentContext::nw_content_context_get_is_final(System.IntPtr)",
"System.Boolean Network.NWEstablishmentReport::nw_establishment_report_get_proxy_configured(System.IntPtr)",
"System.Boolean Network.NWEstablishmentReport::nw_establishment_report_get_used_proxy(System.IntPtr)",
"System.Boolean Network.NWFramer::nw_framer_deliver_input_no_copy(System.IntPtr,System.UIntPtr,System.IntPtr,System.Boolean)",
"System.Boolean Network.NWFramer::nw_framer_parse_input(System.IntPtr,System.UIntPtr,System.UIntPtr,System.Byte*,ObjCRuntime.BlockLiteral*)",
"System.Boolean Network.NWFramer::nw_framer_parse_output(System.IntPtr,System.UIntPtr,System.UIntPtr,System.Byte*,ObjCRuntime.BlockLiteral*)",
"System.Boolean Network.NWFramer::nw_framer_prepend_application_protocol(System.IntPtr,System.IntPtr)",
"System.Boolean Network.NWFramer::nw_framer_write_output_no_copy(System.IntPtr,System.UIntPtr)",
"System.Boolean Network.NWFramerMessage::nw_framer_message_access_value(System.IntPtr,System.IntPtr,ObjCRuntime.BlockLiteral*)",
"System.Boolean Network.NWMulticastGroup::nw_group_descriptor_add_endpoint(System.IntPtr,System.IntPtr)",
"System.Boolean Network.NWMulticastGroup::nw_multicast_group_descriptor_get_disable_unicast_traffic(System.IntPtr)",
"System.Boolean Network.NWParameters::nw_parameters_get_fast_open_enabled(System.IntPtr)",
Expand All @@ -60,19 +52,13 @@ public partial class BlittablePInvokes {
"System.Boolean Network.NWTxtRecord::nw_txt_record_access_key(System.IntPtr,System.IntPtr,ObjCRuntime.BlockLiteral*)",
"System.Boolean Network.NWTxtRecord::nw_txt_record_apply(System.IntPtr,ObjCRuntime.BlockLiteral*)",
"System.Boolean Network.NWTxtRecord::nw_txt_record_is_equal(System.IntPtr,System.IntPtr)",
"System.Boolean Network.NWWebSocketRequest::nw_ws_request_enumerate_additional_headers(System.IntPtr,ObjCRuntime.BlockLiteral*)",
"System.Boolean Network.NWWebSocketRequest::nw_ws_request_enumerate_subprotocols(System.IntPtr,ObjCRuntime.BlockLiteral*)",
"System.Boolean Network.NWWebSocketResponse::nw_ws_response_enumerate_additional_headers(System.IntPtr,ObjCRuntime.BlockLiteral*)",
"System.Byte* Network.NWEndpoint::nw_endpoint_get_signature(System.IntPtr,System.UIntPtr&)",
"System.Int32 AudioUnit.AUGraph::NewAUGraph(System.IntPtr&)",
"System.IntPtr ObjCRuntime.Selector::GetHandle(System.String)",
"System.IntPtr Security.SecKey::SecKeyCreateEncryptedData(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr&)",
"System.Void Network.NWAdvertiseDescriptor::nw_advertise_descriptor_set_no_auto_rename(System.IntPtr,System.Boolean)",
"System.Void Network.NWBrowserDescriptor::nw_browse_descriptor_set_include_txt_record(System.IntPtr,System.Boolean)",
"System.Void Network.NWConnection::nw_connection_send(System.IntPtr,System.IntPtr,System.IntPtr,System.Boolean,ObjCRuntime.BlockLiteral*)",
"System.Void Network.NWConnectionGroup::nw_connection_group_set_receive_handler(System.IntPtr,System.UInt32,System.Boolean,ObjCRuntime.BlockLiteral*)",
"System.Void Network.NWContentContext::nw_content_context_set_is_final(System.IntPtr,System.Boolean)",
"System.Void Network.NWFramer::nw_framer_deliver_input(System.IntPtr,System.Byte*,System.UIntPtr,System.IntPtr,System.Boolean)",
"System.Void Network.NWMulticastGroup::nw_multicast_group_descriptor_set_disable_unicast_traffic(System.IntPtr,System.Boolean)",
"System.Void Network.NWParameters::nw_parameters_set_fast_open_enabled(System.IntPtr,System.Boolean)",
"System.Void Network.NWParameters::nw_parameters_set_include_peer_to_peer(System.IntPtr,System.Boolean)",
Expand All @@ -83,8 +69,6 @@ public partial class BlittablePInvokes {
"System.Void Network.NWParameters::nw_parameters_set_requires_dnssec_validation(System.IntPtr,System.Boolean)",
"System.Void Network.NWParameters::nw_parameters_set_reuse_local_address(System.IntPtr,System.Boolean)",
"System.Void Network.NWPrivacyContext::nw_privacy_context_require_encrypted_name_resolution(System.IntPtr,System.Boolean,System.IntPtr)",
"System.Void Network.NWWebSocketOptions::nw_ws_options_set_auto_reply_ping(System.IntPtr,System.Boolean)",
"System.Void Network.NWWebSocketOptions::nw_ws_options_set_skip_handshake(System.IntPtr,System.Boolean)",
"System.Void ObjCRuntime.Messaging::void_objc_msgSend_GCDualSenseAdaptiveTriggerPositionalAmplitudes_float(System.IntPtr,System.IntPtr,GameController.GCDualSenseAdaptiveTriggerPositionalAmplitudes,System.Single)",
"System.Void ObjCRuntime.Messaging::void_objc_msgSend_GCDualSenseAdaptiveTriggerPositionalResistiveStrengths(System.IntPtr,System.IntPtr,GameController.GCDualSenseAdaptiveTriggerPositionalResistiveStrengths)",
"System.Void ObjCRuntime.Messaging::void_objc_msgSendSuper_GCDualSenseAdaptiveTriggerPositionalAmplitudes_float(System.IntPtr,System.IntPtr,GameController.GCDualSenseAdaptiveTriggerPositionalAmplitudes,System.Single)",
Expand Down
Loading

0 comments on commit 48c1384

Please sign in to comment.